From dc3165a1fb2b4341b86c23e52bc8536cd618880f Mon Sep 17 00:00:00 2001 From: Heitor Ramon Ribeiro Date: Fri, 24 Sep 2021 07:39:57 -0300 Subject: [PATCH 001/151] chore: sync `version-2.4` to `main` branch (#6312) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove duplicate dependency (#6094) * test(commercetools): code review feedback * fix: getter for product sku * docs: updated changelog * Add `git` as a requirement to the Installation doc (#6105) * Fix `useCart` example in CT docs (#6106) * cr fix * Fix integration logos (#6109) * smartphone only promo code input added * changelog added * feat(commercetools): added channelId logic * fix(commercetools): fixed request payload prop * [Docs] Update commercetools homepage (#6113) * Fix links to selfhosted integration logos (#6114) * Update project description * Satisfy eslint * Upgrade VuePress and delete AboutYou docs (#6117) * Update (#6120) * fix(commercetools): fixed duplicated modal title * fix(commercetools): fixed wrong locale display * Link Auth0 docs (#6124) * Add `checkout.js` middleware (#6121) * Switch places between country and state inputs in billing form * Same changes for billing and shipping address forms * fix: fixed Nuxt-CLI spamming babel warning due plugin configuration (#6123) * fix(commercetools:theme): fixed Nuxt-CLI spamming babel warning due plugin configuration * fix(boilerplate:theme): fixed Nuxt-CLI spamming babel warning due plugin configuration * docs(core): added the changelog for #6123 * fix(boilerplate:theme): applied eslint rules * Move and refactor the helper * Add unit tests * Refactor unit tests to use AAA pattern * Store expected statusCode in a separate const * fix(ct/core): update locale links * fix(ct/core): add changelog * refactor: updates form validation scheme for street, number and city (#6122) * refactor(commercetools:theme): updated form validation rules * refactor(core:nuxt-theme-modules): updated form validation rules * docs(core): added changelog file for PR #6122 * docs(commercetools): added changelog file for PR #6122 * fix-#6132(ct:api-client): add total to query * fix-#6132(ct:composable): return all orders from query * fix-#6132(core): change default orders value * fix-#6132(ct:composable): create getOrdersTotal getter * fix-#6132(core:theme): adjust template to new orders * fix-#6132(core/ct): fix unit tests * fix-#6132(core): add changelogs * fix-#6132(docs): add docs for new changes * fix-#6132(test): fix types and tests * Fix validate boilerplate * fix(ct/core): use object syntax for links * [Docs] Update Integrations page (#6135) * fix-#6132(ct): add other fields to query * [Docs] Update integrations page (#6139) * Minor fixes in core (#6061) * Fix images in docs (#6140) * test * test * test * test * test * test * test * remove unused commands * update docs build commands * workaround for api-extractor * remove typedoc * Generate md flies command * update * test * test * test * test * test * test * test * test * test * test * test * test size 1024 * test size 2048 * test size 4096 * remove commands * Synchronize with the Boilerplate repository (#6125) * test * uncomment deploy action * docs: add migration guide v2.4.0 * docs: add 2.4.0 doc link to index.md * Update Readme (Supported platforms) Update links & status of Supported platforms * Update: Shopify DOC * Add support section * fix(core): use orderGetters for id * docs: add missing changes in migration guide * Update packages/core/docs/general/support.md Co-authored-by: igorwojciechowski * Update packages/core/docs/general/support.md Co-authored-by: igorwojciechowski * Update packages/core/docs/general/support.md Co-authored-by: igorwojciechowski * Update packages/core/docs/general/support.md Co-authored-by: igorwojciechowski * chore: algolia docs link and typo fix * Update first page of Shopify Docs * Shopify Docs first page - Links listing repair * Updated suggessons * Linking repaired * Updated Shopify DOC * Updated vuepress config.js * refactor(api-cliente): removed Customer changes * chore: removed beta tag from Shopify (#6143) * chore(core:cli): removed beta tag from Shopify * chore: removed beta tag from Shopify * chore(docs): adds the changelog file to PR #6143 * chore(chore:cli): applied eslint rules * feat(api-client): added getInventory api * Updated maintainers pictures * feat(commercetools:api-client): add config channel * refactor: generate api ref on server side * feat(ct): add InventoryMode to createCart - extend middleware config with inventoryMode - update Cart fragment - update Payment template - notification is being displayed on make order error * Add changelog file * docs(ct): update configuration docs with inventoryMode - remove `inventoryMode` option from middleware config * refactor(commercetools): fix the frontend client bundling the commercetools-sdk and apollo client (#6066) * refactor: updated the applyCoupon interface to match the removeCoupon (#6126) * chore: enterprise * fix: fix conflicts with next branch * fix(commercetools): removed wrong config * fix: add api ref to gitignore * new line at the end of file * fix: address house number field mapping * Add changelog file * fix: MyAccount page rendering * chore: add changelog * fix-#5886: lint fix * fix-#5886: cr fixes * Revert "Sync next" * docs: add inventory mode note to ct migration guide * feat(commercetools): added changeChannel feature * feat(commercetools): added product Availability * fix(commercetools): wrong prop access * fix(commercetools): fix object prop * refactor(commercetools:api-client): updated the addToCart method to new signature * refactor(commercetools:composeables): updated the useCart composable to match the addToCart * docs(commercetools): added the base changelog * refactor(commercetools): removed channel cookie * refactor(commercetools): updated changelog * Update packages/core/docs/commercetools/changelog/6161.js * docs: add multistore note to ct migration guide * docs: add missing punctuation * chore: versions bump - core to 2.4 and ct to 1.3 * chore(docs): changelog update * refactor(api-client): applied eslint rules * refactor(composables): applied eslint rules * refactor(composables): fixed useCart test * refactor(composables): fixed addToCart test * refactor(api-client): applied eslint rules * fix(commercetools): fixed useStore tests * fix: add missing mobile menu for ct * chore: changelog * revert onMounted * fix * docs: update demo url * chore: version bump for ct theme * fix: ct theme package schema * test * api refs generated correct * fix * add commands to yarn dev * fix path to types * Get rid of unnecessary part * build test * test * Fix missing index.d.ts * update path to types in package.json * bp fix * tsconfig update * fix: remove merge conflict tags * docs: restore missing changes * Use tilde in VSF dependencies (#6197) * Backport fixes from boilerplate repo (#6199) * Fix `@vue-storefront/cache` package (#6198) * Use `isomorphic-git` instead of native GIT client (#6201) * Revert changes to Webpack configuration and Google font loading (#6203) * tests(e2e): update addToCart request body * docs: add changelog for #6205 * chore: version bump to 2.4.1 for core and 1.3.1 for ct * chore: changelog update * chore: ct changelog update * Sync `release-2.4` with `release/next` (#6237) * Sync `release-2.4` with `release/next` (#6263) * Sync `release-2.4` with `release/next` (#6269) * Update the docs after 2.4 release (#6217) * Remove CLI preview image, because it's outdated (#6223) * [Docs] Update Integrations page and optimize SVG logos (#6220) * [Docs] Add "Added in 1.3" badges to useForgotPassword and useStore in commercetools * [Docs] Add Odoo to Integrations page (#6224) * Export missing methods for api-extractor * Add api-extractor-data file * Update Vendure maintainers (#6230) * Fix typings generation, update API references and CT Composables pages (#6235) * Fix docs build (#6238) * Docs grammar and typos check (#6064) * Update Integrations page (#6244) * [Docs] Reorganize docs into smaller categories (#6243) * [Docs] Disable prefetching (#6255) * Fix `labeler` for docs (#6256) * feat: update Vendure integration status to beta * Update maintainers of SFCC integration (#6259) * Optimize homepage diagram (#6260) * Use Node v12.22.4 for deployment * Update Dockerfile * Update * Update * Revert * Update * [Docs] Add "Extending Vue Storefront" and "Extending integrations" pages (#6252) Co-authored-by: Lukas Borawski Co-authored-by: ljedrasik Co-authored-by: igorwojciechowski Co-authored-by: Baroshem Co-authored-by: Jakub Andrzejewski <37120330+Baroshem@users.noreply.github.com> Co-authored-by: mkoszut * Fix loading user and cart information (#6265) * Fix loading user and cart information * Add changelogs * tests(e2e): fix tests data and selectors (#6277) * Use categorySearch for fetching the category tree (#6273) * Use categorySearch for fetching the category tree * Remove unused typenames and add typings for params * chore: updated GitHub files to match main * [commercetools] Add server-specific API client (#6321) * Add server-specific API client * Update Config type * Update docs * Add changelog * Typos * Revert change to the token reset debugger * Fix for Auth0 * chore: version bump to 2.4.2 for Core and 1.3.2 for CT * docs: changelog update * fix: typo Co-authored-by: Tom Anioł <33483514+tom-aniol@users.noreply.github.com> Co-authored-by: Patryk Andrzejewski Co-authored-by: Filip Sobol Co-authored-by: Alef Barbeli Co-authored-by: Justyna Co-authored-by: v.vlad Co-authored-by: Łukasz Co-authored-by: Łukasz Co-authored-by: Baroshem Co-authored-by: ljedrasik Co-authored-by: Igor Wojciechowski Co-authored-by: Jakub Andrzejewski <37120330+Baroshem@users.noreply.github.com> Co-authored-by: Aureatelabs Team Co-authored-by: Fifciuu Co-authored-by: Filip Rakowski Co-authored-by: lsliwaradioluz <39009379+lsliwaradioluz@users.noreply.github.com> Co-authored-by: Filip Jędrasik Co-authored-by: Razz21 Co-authored-by: lukasborawski Co-authored-by: mkoszut Co-authored-by: Sam Riley --- .github/PULL_REQUEST_TEMPLATE.md | 1 - .github/labeler.yml | 5 +- .github/workflows/deploy-docs.yml | 4 +- .github/workflows/deploy-lighthouse.yml | 3 +- .../deploy-preview-storefrontcloud.yml | 4 +- .github/workflows/deploy-storefrontcloud.yml | 7 +- .github/workflows/run-e2e-regression.yml | 10 +- .github/workflows/run-e2e-tests.yml | 8 +- .github/workflows/test.yml | 18 +- README.md | 7 +- cypress.json | 1 + package.json | 87 +- packages/boilerplate/api-client/package.json | 4 +- packages/boilerplate/composables/package.json | 6 +- .../src/getters/checkoutGetters.ts | 35 + packages/boilerplate/composables/src/index.ts | 1 + packages/boilerplate/theme/lang/de.js | 11 +- packages/boilerplate/theme/lang/en.js | 11 +- packages/boilerplate/theme/package.json | 10 +- .../commercetools/api-client/package.json | 4 +- .../src/api/categorySearch/defaultQuery.ts | 56 + .../src/api/categorySearch/index.ts | 40 + .../commercetools/api-client/src/api/index.ts | 1 + .../helpers/commercetoolsLink/authHelpers.ts | 12 +- .../createCommerceToolsConnection.ts | 22 +- .../helpers/commercetoolsLink/linkHandlers.ts | 156 +- .../commercetoolsLink/restrictedOperations.ts | 18 +- .../api-client/src/helpers/search/index.ts | 19 + .../api-client/src/helpers/utils.ts | 1 - .../api-client/src/index.server.ts | 33 +- .../commercetools/api-client/src/types/Api.ts | 2 + .../api-client/src/types/setup.ts | 6 + .../composables/__tests__/setup.ts | 4 - .../__tests__/useStore/factoryParams.spec.ts | 15 +- .../commercetools/composables/jest.config.js | 10 +- .../commercetools/composables/package.json | 8 +- .../src/getters/categoryGetters.ts | 11 +- .../composables/src/types/index.ts | 3 +- .../composables/src/useFacet/index.ts | 5 +- .../composables/src/useUser/factoryParams.ts | 1 + .../theme/components/AppHeader.vue | 8 +- .../Checkout/UserBillingAddresses.vue | 2 +- .../MyAccount/BillingAddressForm.vue | 9 +- .../MyAccount/PasswordResetForm.vue | 10 +- .../MyAccount/ProfileUpdateForm.vue | 10 +- .../MyAccount/ShippingAddressForm.vue | 9 +- .../theme/components/UserBillingAddress.vue | 9 +- .../theme/components/UserShippingAddress.vue | 9 +- packages/commercetools/theme/lang/de.js | 11 +- packages/commercetools/theme/lang/en.js | 11 +- .../commercetools/theme/middleware.config.js | 14 + packages/commercetools/theme/package.json | 10 +- .../theme/pages/Checkout/Billing.vue | 6 +- .../theme/pages/Checkout/Payment.vue | 6 +- .../theme/pages/Checkout/Shipping.vue | 10 +- .../theme/pages/Checkout/ThankYou.vue | 2 +- .../theme/pages/MyAccount/MyProfile.vue | 7 +- .../theme/tests/e2e/api/requests.ts | 50 +- .../e2e-checkout-billing-validation.json | 46 +- .../e2e-checkout-shipping-validation.json | 22 +- .../fixtures/test-data/e2e-place-order.json | 8 +- .../e2e-checkout-billing-validation.spec.ts | 2 +- .../e2e-checkout-shipping-validation.spec.ts | 2 +- .../e2e/integration/e2e-place-order.spec.ts | 4 - .../e2e/integration/e2e-user-login.spec.ts | 2 +- .../integration/e2e-user-registration.spec.ts | 2 +- .../theme/tests/e2e/pages/checkout.ts | 14 +- .../theme/tests/e2e/pages/factory.ts | 5 +- .../theme/tests/e2e/pages/home.ts | 3 + .../theme/tests/e2e/pages/my-account.ts | 76 +- .../theme/tests/e2e/types/types.ts | 6 +- .../theme/tests/e2e/utils/network.ts | 13 - packages/core/cache/package.json | 4 +- .../core/cache/src/composables/useCache.ts | 4 +- packages/core/cache/src/index.ts | 2 +- .../core/cli/src/utils/getIntegrations.ts | 3 +- packages/core/core/__tests__/setup.ts | 4 - packages/core/core/package.json | 14 +- packages/core/core/src/types.ts | 9 + .../components/CommerceIntegrationLinks.vue | 2 +- packages/core/docs/.vuepress/config.js | 232 +- packages/core/docs/.vuepress/integrations.js | 27 +- packages/core/docs/README.md | 79 +- packages/core/docs/advanced/architecture.md | 4 +- packages/core/docs/advanced/context.md | 8 +- .../advanced/creating-custom-composables.md | 86 + .../advanced/extending-graphql-queries.md | 10 +- .../docs/advanced/internationalization.md | 12 +- packages/core/docs/advanced/logging.md | 16 +- packages/core/docs/advanced/performance.md | 12 +- .../core/docs/advanced/server-middleware.md | 81 +- packages/core/docs/advanced/ssr-cache.md | 10 +- .../commercetools/authorization-strategy.md | 2 +- packages/core/docs/commercetools/changelog.md | 156 +- .../commercetools/composables/use-cart.md | 16 +- .../commercetools/composables/use-category.md | 6 +- .../commercetools/composables/use-facet.md | 6 +- .../composables/use-make-order.md | 2 +- .../commercetools/composables/use-product.md | 6 +- .../commercetools/composables/use-review.md | 2 +- .../composables/use-shipping-provider.md | 4 +- .../commercetools/composables/use-shipping.md | 6 +- .../composables/use-user-billing.md | 16 +- .../composables/use-user-order.md | 10 +- .../composables/use-user-shipping.md | 10 +- .../commercetools/composables/use-user.md | 18 +- .../commercetools/composables/use-wishlist.md | 36 +- .../core/docs/commercetools/configuration.md | 25 +- .../commercetools/enterprise/use-wishlist.md | 39 +- .../docs/commercetools/getting-started.md | 17 +- .../commercetools/guide/authentication.md | 207 + .../core/docs/commercetools/guide/cart.md | 248 + .../core/docs/commercetools/guide/checkout.md | 365 + .../commercetools/guide/product-catalog.md | 249 + .../docs/commercetools/guide/user-profile.md | 289 + .../core/docs/commercetools/guide/wishlist.md | 430 + .../docs/commercetools/images/faceting.jpg | Bin 0 -> 142306 bytes .../core/docs/commercetools/maintainers.md | 2 +- .../commercetools/migrate/1.2.0-rc.2/index.md | 35 + .../commercetools/migrate/1.2.0-rc.3/index.md | 18 + .../docs/commercetools/migrate/1.2.0/index.md | 33 + .../docs/commercetools/migrate/1.3.0/index.md | 27 + .../core/docs/commercetools/migrate/index.md | 6 + packages/core/docs/commercetools/use-facet.md | 4 +- packages/core/docs/composables/use-cart.md | 2 +- packages/core/docs/composables/use-user.md | 2 +- .../core/docs/composables/use-wishlist.md | 2 +- packages/core/docs/contributing/README.md | 52 +- .../contributing/api-design-philosophy.md | 30 +- packages/core/docs/contributing/changelog.md | 367 +- .../docs/contributing/creating-changelog.md | 24 +- .../contributing/server-side-rendering.md | 20 +- packages/core/docs/contributing/themes.md | 22 +- packages/core/docs/core/composables.md | 29 +- packages/core/docs/core/use-cart.md | 28 +- packages/core/docs/core/use-product.md | 8 +- packages/core/docs/core/use-wishlist.md | 18 +- .../docs/core/utils/server-side-rendering.md | 12 +- packages/core/docs/enterprise/feature-list.md | 83 +- packages/core/docs/general/enterprise.md | 4 +- packages/core/docs/general/installation.md | 2 +- packages/core/docs/general/key-concepts.md | 8 +- packages/core/docs/guide/composables.md | 10 +- packages/core/docs/guide/configuration.md | 8 +- packages/core/docs/guide/getters.md | 6 +- packages/core/docs/guide/theme.md | 7 +- .../docs/images/high-level-architecture.png | Bin 0 -> 37604 bytes packages/core/docs/integrate/cache-driver.md | 2 +- packages/core/docs/integrate/cms.md | 15 +- .../docs/integrate/extending-integrations.md | 65 + .../integrate/extending-vue-storefront.md | 98 + .../core/docs/integrate/integration-guide.md | 2 +- packages/core/docs/integrations/adyen.md | 24 +- .../core/docs/integrations/bazaarvoice.md | 14 +- .../docs/migrate/2.1.0-rc.1/integrators.md | 2 +- .../core/docs/migrate/2.1.0-rc.1/overview.md | 129 +- .../core/docs/migrate/2.2.0/integrators.md | 2 +- packages/core/docs/migrate/2.2.0/overview.md | 46 +- .../docs/migrate/2.3.0-rc.2/integrators.md | 2 +- .../core/docs/migrate/2.3.0-rc.2/overview.md | 2 +- .../docs/migrate/2.3.0-rc.3/integrators.md | 2 +- .../core/docs/migrate/2.3.0-rc.3/overview.md | 2 +- .../core/docs/migrate/2.3.0/integrators.md | 2 +- packages/core/docs/migrate/2.3.0/overview.md | 2 +- .../core/docs/migrate/2.4.0/integrators.md | 2 +- packages/core/docs/migrate/2.4.0/overview.md | 14 +- packages/core/docs/migrate/index.md | 35 +- packages/core/docs/package.json | 11 +- packages/core/docs/scripts/changelog.js | 78 +- .../core/docs/scripts/templates/change.hbs | 10 + .../core/docs/scripts/templates/version.hbs | 3 + packages/core/docs/shopify/README.md | 11 + .../core/docs/shopify/api-client-reference.md | 13424 ++++++++++++++++ packages/core/docs/shopify/auth-middleware.md | 1 + .../docs/shopify/authorization-strategy.md | 5 + packages/core/docs/shopify/checkout.md | 171 + packages/core/docs/shopify/composables.md | 29 + packages/core/docs/shopify/configuration.md | 69 + packages/core/docs/shopify/feature-list.md | 178 + packages/core/docs/shopify/getting-started.md | 30 + packages/core/docs/shopify/maintainers.md | 22 + packages/core/docs/shopify/use-cart.md | 132 + packages/core/docs/shopify/use-category.md | 71 + packages/core/docs/shopify/use-content.md | 63 + packages/core/docs/shopify/use-product.md | 165 + packages/core/docs/shopify/use-search.md | 106 + packages/core/docs/shopify/use-user-order.md | 54 + packages/core/docs/shopify/use-user.md | 108 + packages/core/jest.config.js | 26 + packages/core/middleware/package.json | 3 +- packages/core/middleware/src/createServer.ts | 2 +- packages/core/nuxt-module/package.json | 2 +- packages/core/nuxt-theme-module/index.js | 2 +- packages/core/nuxt-theme-module/package.json | 2 +- .../theme/components/CartSidebar.vue | 13 +- .../theme/composables/useUiState.ts | 8 - .../core/nuxt-theme-module/theme/lang/de.js | 11 +- .../core/nuxt-theme-module/theme/lang/en.js | 11 +- .../theme/pages/Category.vue | 5 +- .../nuxt-theme-module/theme/pages/Home.vue | 27 +- .../theme/pages/MyAccount/OrderHistory.vue | 23 +- packages/jest.base.config.js | 3 - scripts/package.json | 13 + scripts/release/constants.ts | 33 + scripts/release/index.ts | 147 + scripts/release/packageTypes.ts | 53 + scripts/release/updatePackageVersion.ts | 64 + scripts/tsconfig.json | 21 + tsconfig.json | 9 +- yarn.lock | 5671 +++---- 210 files changed, 21081 insertions(+), 4982 deletions(-) create mode 100644 packages/boilerplate/composables/src/getters/checkoutGetters.ts create mode 100644 packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts create mode 100644 packages/commercetools/api-client/src/api/categorySearch/index.ts create mode 100644 packages/core/docs/advanced/creating-custom-composables.md create mode 100644 packages/core/docs/commercetools/guide/authentication.md create mode 100644 packages/core/docs/commercetools/guide/cart.md create mode 100644 packages/core/docs/commercetools/guide/checkout.md create mode 100644 packages/core/docs/commercetools/guide/product-catalog.md create mode 100644 packages/core/docs/commercetools/guide/user-profile.md create mode 100644 packages/core/docs/commercetools/guide/wishlist.md create mode 100644 packages/core/docs/commercetools/images/faceting.jpg create mode 100644 packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md create mode 100644 packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md create mode 100644 packages/core/docs/commercetools/migrate/1.2.0/index.md create mode 100644 packages/core/docs/commercetools/migrate/1.3.0/index.md create mode 100644 packages/core/docs/commercetools/migrate/index.md create mode 100644 packages/core/docs/images/high-level-architecture.png create mode 100644 packages/core/docs/integrate/extending-integrations.md create mode 100644 packages/core/docs/integrate/extending-vue-storefront.md create mode 100644 packages/core/docs/scripts/templates/change.hbs create mode 100644 packages/core/docs/scripts/templates/version.hbs create mode 100755 packages/core/docs/shopify/README.md create mode 100644 packages/core/docs/shopify/api-client-reference.md create mode 100644 packages/core/docs/shopify/auth-middleware.md create mode 100644 packages/core/docs/shopify/authorization-strategy.md create mode 100644 packages/core/docs/shopify/checkout.md create mode 100755 packages/core/docs/shopify/composables.md create mode 100644 packages/core/docs/shopify/configuration.md create mode 100644 packages/core/docs/shopify/feature-list.md create mode 100755 packages/core/docs/shopify/getting-started.md create mode 100644 packages/core/docs/shopify/maintainers.md create mode 100644 packages/core/docs/shopify/use-cart.md create mode 100644 packages/core/docs/shopify/use-category.md create mode 100644 packages/core/docs/shopify/use-content.md create mode 100644 packages/core/docs/shopify/use-product.md create mode 100644 packages/core/docs/shopify/use-search.md create mode 100644 packages/core/docs/shopify/use-user-order.md create mode 100644 packages/core/docs/shopify/use-user.md create mode 100644 packages/core/jest.config.js create mode 100644 scripts/package.json create mode 100644 scripts/release/constants.ts create mode 100644 scripts/release/index.ts create mode 100644 scripts/release/packageTypes.ts create mode 100644 scripts/release/updatePackageVersion.ts create mode 100644 scripts/tsconfig.json diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 87f637ae12..2a06c8c17d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -54,4 +54,3 @@ #### Docs - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - diff --git a/.github/labeler.yml b/.github/labeler.yml index 8b9116cf70..ae88686b58 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -14,9 +14,10 @@ commercetools: boilerplate: - packages/boilerplate/**/* -# Add 'docs' label to any change to packages/core/docs files EXCEPT for the changelog +# Add 'docs' label to any change to packages/core/docs files docs: -- any: ['packages/core/docs/**/*', '!packages/core/docs/changelog/**/*'] +- packages/core/docs/**/* +- packages/core/docs/.vuepress/**/* # Add 'ci' label to any change to continuous integration files inside .github folder ci: diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 86cfce3815..f137427b06 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -22,7 +22,9 @@ jobs: id: get_version run: echo ::set-output name=VERSION::$(cat version.txt) - name: Build and publish docker image - uses: elgohr/Publish-Docker-Github-Action@master + # uses: elgohr/Publish-Docker-Github-Action@master + # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 + uses: elgohr/Publish-Docker-Github-Action@3.04 with: name: docs-storefrontcloud-io/v2:${{ steps.get_version.outputs.VERSION }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/deploy-lighthouse.yml b/.github/workflows/deploy-lighthouse.yml index 8e6b54f6c5..7fa0db0980 100644 --- a/.github/workflows/deploy-lighthouse.yml +++ b/.github/workflows/deploy-lighthouse.yml @@ -7,8 +7,7 @@ on: types: - completed branches: - - master - - main + - next jobs: deploy: diff --git a/.github/workflows/deploy-preview-storefrontcloud.yml b/.github/workflows/deploy-preview-storefrontcloud.yml index da9cf9a3c9..4ffcc1dd64 100644 --- a/.github/workflows/deploy-preview-storefrontcloud.yml +++ b/.github/workflows/deploy-preview-storefrontcloud.yml @@ -13,7 +13,9 @@ jobs: with: node-version: "12.x" - name: Build and publish docker image - uses: elgohr/Publish-Docker-Github-Action@master + # uses: elgohr/Publish-Docker-Github-Action@master + # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 + uses: elgohr/Publish-Docker-Github-Action@3.04 with: name: vsf-next-demo-storefrontcloud-io/vue-storefront:${{ github.sha }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/deploy-storefrontcloud.yml b/.github/workflows/deploy-storefrontcloud.yml index 9ce4ab77bc..1829c328e7 100644 --- a/.github/workflows/deploy-storefrontcloud.yml +++ b/.github/workflows/deploy-storefrontcloud.yml @@ -2,8 +2,7 @@ name: Deploy to Storefrontcloud on: push: branches: - - master - - main + - next - release/next - test/next jobs: @@ -17,7 +16,9 @@ jobs: with: node-version: "12.x" - name: Build and publish docker image - uses: elgohr/Publish-Docker-Github-Action@master + # uses: elgohr/Publish-Docker-Github-Action@master + # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 + uses: elgohr/Publish-Docker-Github-Action@3.04 with: name: vsf-next-demo-storefrontcloud-io/vue-storefront:${{ github.sha }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/run-e2e-regression.yml b/.github/workflows/run-e2e-regression.yml index bbb5a6887e..a1cd960598 100644 --- a/.github/workflows/run-e2e-regression.yml +++ b/.github/workflows/run-e2e-regression.yml @@ -13,8 +13,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v2 - with: - ref: develop - name: Setup node uses: actions/setup-node@v2 @@ -32,15 +30,13 @@ jobs: - name: Install dependencies run: yarn install - - name: Build package - run: yarn build:${{ matrix.package }} - env: - NUXT_ENV_E2E: true + - name: Build tools + run: yarn build:${{ matrix.package }}:tools - name: Run cypress tests uses: cypress-io/github-action@v2.8.2 with: - start: yarn start:${{ matrix.package }} + start: yarn dev:${{ matrix.package }} wait-on: 'http://localhost:3000' wait-on-timeout: 180 command: yarn run test:e2e:${{ matrix.package }}:hl diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 5cdc5bee8b..836f970afe 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -40,15 +40,13 @@ jobs: - name: Install dependencies run: yarn install - - name: Build package - run: yarn build:${{ github.event.inputs.package }} - env: - NUXT_ENV_E2E: true + - name: Build tools + run: yarn build:${{ github.event.inputs.package }}:tools - name: Run cypress tests uses: cypress-io/github-action@v2.8.2 with: - start: yarn start:${{ github.event.inputs.package }} + start: yarn dev:${{ github.event.inputs.package }} wait-on: 'http://localhost:3000' wait-on-timeout: 180 command: yarn run test:e2e:${{ github.event.inputs.package }}:hl diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a6d0471d95..101274446b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,14 +3,10 @@ name: Run tests on: push: branches: - - main - - develop - - release-** + - next pull_request: branches: - - main - - develop - - release-** + - next jobs: prepare_dependencies: @@ -78,17 +74,11 @@ jobs: - name: Build core run: yarn build:core - - name: Test cache - run: yarn test:cache --coverage - - - name: Test CLI - run: yarn test:cli --coverage - - name: Test core run: yarn test:core --coverage - - name: Test middleware - run: yarn test:middleware --coverage + - name: Test CLI + run: yarn test:cli --coverage validate_integrations: name: Validate ${{ matrix.integration }} diff --git a/README.md b/README.md index a7cc33ad76..0422b03ef4 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ ![Vue Storefront](https://camo.githubusercontent.com/48c886ac0703e3a46bc0ec963e20f126337229fc/68747470733a2f2f643968687267346d6e767a6f772e636c6f756466726f6e742e6e65742f7777772e76756573746f726566726f6e742e696f2f32383062313964302d6c6f676f2d76735f3062793032633062793032633030303030302e6a7067) -# Vue Storefront 2 +# Vue Storefront 2 (previously known as Next) -[![Coverage Status](https://coveralls.io/repos/github/vuestorefront/vue-storefront/badge.svg?branch=next) ](https://coveralls.io/github/vuestorefront/vue-storefront/?branch=next) -[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) -[![Discord](https://img.shields.io/discord/770285988244750366?label=join%20discord&logo=Discord&logoColor=white)](https://discord.vuestorefront.io) +[![Coverage Status](https://coveralls.io/repos/github/vuestorefront/vue-storefront/badge.svg?branch=next) ](https://coveralls.io/github/vuestorefront/vue-storefront/?branch=next)![Discord](https://img.shields.io/discord/770285988244750366?label=join%20discord&logo=Discord&logoColor=white) Vue Storefront is the most popular and most advanced Frontend Platform for eCommerce - [Documentation](https://docs.vuestorefront.io/v2/) @@ -78,3 +76,4 @@ Vue Storefront is a Community effort brought to You by our great Core Team and s Vue Storefront source code is completely free and released under the [MIT License](https://github.com/vuestorefront/vue-storefront/blob/master/LICENSE). [![analytics](http://www.google-analytics.com/collect?v=1&t=pageview&_s=1&dl=https%3A%2F%2Fgithub.com%2FDivanteLtd%2Fvue-storefront&_u=MAC~&cid=1757014354.1393964045&tid=UA-108235765-10)]() + diff --git a/cypress.json b/cypress.json index d5fd315327..197acc5456 100644 --- a/cypress.json +++ b/cypress.json @@ -2,5 +2,6 @@ "baseUrl": "https://lovecrafts-demo.storefrontcloud.io/", "viewportWidth": 1280, "viewportHeight": 1024 + } \ No newline at end of file diff --git a/package.json b/package.json index ef70943adc..2520d6fd0d 100644 --- a/package.json +++ b/package.json @@ -1,66 +1,71 @@ { "name": "root", "private": true, + "engines": { + "node": ">=10.x" + }, "scripts": { - "build:bp": "yarn build:bp:tools && yarn build:bp:theme", - "build:bp:api-client": "cd packages/boilerplate/api-client && yarn build", - "build:bp:composables": "cd packages/boilerplate/composables && yarn build", - "build:bp:theme": "cd packages/boilerplate/theme && yarn build", - "build:bp:tools": "yarn build:core && yarn build:bp:api-client && yarn build:bp:composables", + "build:docs": "cd packages/core/docs && yarn build", + "dev:docs": "cd packages/core/docs && yarn dev", "build:core": "yarn build:core:core && yarn build:core:cache && yarn build:core:middleware", "build:core:core": "cd packages/core/core && yarn build", "build:core:cache": "cd packages/core/cache && yarn build", "build:core:middleware": "cd packages/core/middleware && yarn build", - "build:ct": "yarn build:ct:tools && yarn build:ct:theme", + "build:spr:api-client": "cd packages/spryker/api-client && yarn build", + "build:spr:composables": "cd packages/spryker/composables && yarn build", + "build:spr:tools": "yarn build:core && yarn build:spr:api-client && yarn build:spr:composables", + "build:spr:theme": "cd packages/spryker/theme && yarn build", + "build:spr": "yarn build:spr:tools && yarn build:spr:theme", + "dev:spr": "cd packages/spryker/theme && yarn dev", + "dev:spr:api-client": "cd packages/spryker/api-client && yarn dev", + "dev:spr:composables": "cd packages/spryker/composables && yarn dev", + "build:bp:api-client": "cd packages/boilerplate/api-client && yarn build", + "build:bp:composables": "cd packages/boilerplate/composables && yarn build", + "build:bp:tools": "yarn build:core && yarn build:bp:api-client && yarn build:bp:composables", + "build:bp:theme": "cd packages/boilerplate/theme && yarn build", + "build:bp": "yarn build:bp:tools && yarn build:bp:theme", + "dev:bp": "cd packages/boilerplate/theme && yarn dev", "build:ct:api-client": "cd packages/commercetools/api-client && yarn build", "build:ct:composables": "cd packages/commercetools/composables && yarn build", - "build:ct:theme": "cd packages/commercetools/theme && yarn build", - "build:ct:tools": "yarn build:core && yarn build:ct:api-client && yarn build:ct:composables", - "build:docs": "cd packages/core/docs && yarn build", "build:middleware": "cd packages/core/middleware && yarn build", - "cli": "cd packages/core/cli && yarn cli", - "commit": "cz", - "core:changelog": "cd packages/core/docs/scripts && node changelog", - "ct:changelog": "cd packages/core/docs/scripts && node changelog --in ../commercetools/changelog --out ../commercetools/changelog.md", - "dev:bp": "cd packages/boilerplate/theme && yarn dev", - "dev:ct": "cd packages/commercetools/theme && yarn dev", + "build:ct:tools": "yarn build:core && yarn build:ct:api-client && yarn build:ct:composables", + "build:ct:theme": "cd packages/commercetools/theme && yarn build", + "build:ct": "yarn build:core && yarn build:ct:tools && yarn build:ct:theme", + "build:sp:tools": "yarn build:core && yarn build:sp:api-client && yarn build:sp:composables", + "build:sp": "yarn build:core && yarn build:sp:tools && yarn build:sp:theme", + "test:ct:api-client": "cd packages/commercetools/api-client && yarn test", + "test:ct:composables": "cd packages/commercetools/composables && yarn test", + "test:core": "jest -c ./packages/core/jest.config.js", + "test:ct": "yarn test:ct:api-client && yarn test:ct:composables", + "test:e2e": "./node_modules/.bin/cypress open", + "test:cli": "cd packages/core/cli && yarn test", + "start:ct": "cd packages/commercetools/theme && yarn start", "dev:ct:api-client": "cd packages/commercetools/api-client && yarn dev", "dev:ct:composables": "cd packages/commercetools/composables && yarn dev", - "dev:docs": "cd packages/core/docs && yarn dev", + "dev:ct": "cd packages/commercetools/theme && yarn dev", "link-packages": "lerna link --force-local", "lint": "eslint . --ext .js,.ts,.vue", - "start:bp": "cd packages/boilerplate/theme && yarn start", - "start:ct": "cd packages/commercetools/theme && yarn start", - "test:cache": "cd packages/core/cache && yarn test", - "test:cli": "cd packages/core/cli && yarn test", - "test:core": "cd packages/core/core && yarn test", - "test:middleware": "cd packages/core/middleware && yarn test", - "test:ct": "yarn test:ct:api-client && yarn test:ct:composables", - "test:ct:api-client": "cd packages/commercetools/api-client && yarn test", - "test:ct:composables": "cd packages/commercetools/composables && yarn test", - "test:e2e": "./node_modules/.bin/cypress open", + "release": "cd scripts && yarn release", + "cli": "cd packages/core/cli && yarn cli", "test:e2e:bp": "cd packages/boilerplate/theme && yarn run test:e2e", - "test:e2e:bp:generate:report": "cd packages/boilerplate/theme && yarn run test:e2e:generate:report", "test:e2e:bp:hl": "cd packages/boilerplate/theme && yarn run test:e2e:hl", + "test:e2e:bp:generate:report": "cd packages/boilerplate/theme && yarn run test:e2e:generate:report", "test:e2e:ct": "cd packages/commercetools/theme && yarn run test:e2e", + "test:e2e:ct:hl": "cd packages/commercetools/theme && yarn run test:e2e:hl", "test:e2e:ct:generate:report": "cd packages/commercetools/theme && yarn run test:e2e:generate:report", - "test:e2e:ct:hl": "cd packages/commercetools/theme && yarn run test:e2e:hl" + "core:changelog": "cd packages/core/docs/scripts && node changelog --in ../changelog --out ../contributing/changelog.md", + "ct:changelog": "cd packages/core/docs/scripts && node changelog --in ../commercetools/changelog --out ../commercetools/changelog.md" }, "devDependencies": { "@babel/core": "^7.10.5", - "@commitlint/cli": "^13.1.0", - "@commitlint/config-conventional": "^13.1.0", - "@commitlint/config-lerna-scopes": "^13.1.0", "@rollup/plugin-babel": "^5.1.0", "@rollup/plugin-replace": "^2.3.3", - "@types/jest": "^26.0.24", + "@types/jest": "^24.0.23", "@types/node": "^12.12.14", "@typescript-eslint/eslint-plugin": "^4.15.2", "@typescript-eslint/parser": "^4.15.2", "@vue/eslint-config-typescript": "^7.0.0", - "commitizen": "^4.2.4", "cross-env": "^6.0.3", - "cz-conventional-changelog": "^3.3.0", "eslint": "^7.20.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", @@ -69,14 +74,14 @@ "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.6.0", "husky": "^4.2.3", - "jest": "^27.0.6", + "jest": "^24.9.0", "lerna": "^3.15.0", "lint-staged": "^10.0.7", "rimraf": "^3.0.2", "rollup": "^1.25.2", "rollup-plugin-terser": "^5.1.2", "rollup-plugin-typescript2": "^0.30.0", - "ts-jest": "^27.0.3", + "ts-jest": "^24.2.0", "ts-node": "^8.4.1", "tslib": "^2.1.0", "typescript": "^4.2.2", @@ -95,15 +100,5 @@ }, "lint-staged": { "*.{js,ts,vue}": "eslint --fix" - }, - "config": { - "commitizen": { - "path": "cz-conventional-changelog", - "maxHeaderWidth": 100, - "maxLineWidth": 100 - } - }, - "engines": { - "node": ">=12.x" } } diff --git a/packages/boilerplate/api-client/package.json b/packages/boilerplate/api-client/package.json index 102a11129f..2f345e51ce 100644 --- a/packages/boilerplate/api-client/package.json +++ b/packages/boilerplate/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-api", - "version": "2.4.1", + "version": "2.4.2", "private": true, "sideEffects": false, "server": "server/index.js", @@ -14,7 +14,7 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/core": "~2.4.1" + "@vue-storefront/core": "~2.4.2" }, "devDependencies": { "rollup-plugin-typescript2": "^0.30.0", diff --git a/packages/boilerplate/composables/package.json b/packages/boilerplate/composables/package.json index a961d40817..88882997c4 100644 --- a/packages/boilerplate/composables/package.json +++ b/packages/boilerplate/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate", - "version": "2.4.1", + "version": "2.4.2", "private": true, "sideEffects": false, "main": "lib/index.cjs.js", @@ -13,8 +13,8 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/boilerplate-api": "~2.4.1", - "@vue-storefront/core": "~2.4.1" + "@vue-storefront/boilerplate-api": "~2.4.2", + "@vue-storefront/core": "~2.4.2" }, "devDependencies": { "rollup-plugin-typescript2": "^0.30.0", diff --git a/packages/boilerplate/composables/src/getters/checkoutGetters.ts b/packages/boilerplate/composables/src/getters/checkoutGetters.ts new file mode 100644 index 0000000000..6b5c328c1b --- /dev/null +++ b/packages/boilerplate/composables/src/getters/checkoutGetters.ts @@ -0,0 +1,35 @@ +import { CheckoutGetters } from '@vue-storefront/core'; +import type { ShippingMethod } from '@vue-storefront/boilerplate-api/src/types'; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getShippingMethodId(method: ShippingMethod): string { + return ''; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getShippingMethodName(method: ShippingMethod): string { + return ''; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getShippingMethodDescription(method: ShippingMethod): string { + return ''; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getShippingMethodPrice(method: ShippingMethod): number { + return 0; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getFormattedPrice(price: number): string { + return ''; +} + +export const checkoutGetters: CheckoutGetters = { + getShippingMethodId, + getShippingMethodName, + getShippingMethodDescription, + getFormattedPrice, + getShippingMethodPrice +}; diff --git a/packages/boilerplate/composables/src/index.ts b/packages/boilerplate/composables/src/index.ts index 3d9324e153..4dd24c0aa8 100644 --- a/packages/boilerplate/composables/src/index.ts +++ b/packages/boilerplate/composables/src/index.ts @@ -19,6 +19,7 @@ export { useWishlist } from './useWishlist'; // Getters export { cartGetters } from './getters/cartGetters'; export { categoryGetters } from './getters/categoryGetters'; +export { checkoutGetters } from './getters/checkoutGetters'; export { facetGetters } from './getters/facetGetters'; export { forgotPasswordGetters } from './getters/forgotPasswordGetters'; export { orderGetters } from './getters/orderGetters'; diff --git a/packages/boilerplate/theme/lang/de.js b/packages/boilerplate/theme/lang/de.js index 8d83e80a01..b1c7ea702d 100644 --- a/packages/boilerplate/theme/lang/de.js +++ b/packages/boilerplate/theme/lang/de.js @@ -142,14 +142,5 @@ export default { 'Password': 'Passwort', 'Repeat Password': 'Wiederhole das Passwort', 'Forgot Password Modal Email': 'E-Mail, mit der Sie sich anmelden:', - forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.', - subscribeToNewsletterModalContent: - 'Wenn Sie sich für den Newsletter angemeldet haben, erhalten Sie spezielle Angebote und Nachrichten von VSF per E-Mail. Wir werden Ihre E-Mail zu keinem Zeitpunkt an Dritte verkaufen oder weitergeben. Bitte beachten Sie unsere {0}.', - 'Subscribe': 'Abonnieren', - 'Subscribe to newsletter': 'Anmeldung zum Newsletter', - 'Email address': 'E-Mail Adresse', - 'I confirm subscription': 'Ich bestätige das Abonnement', - 'You can unsubscribe at any time': 'Sie können sich jederzeit abmelden', - 'show more': 'mehr anzeigen', - 'hide': 'ausblenden' + forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.' }; diff --git a/packages/boilerplate/theme/lang/en.js b/packages/boilerplate/theme/lang/en.js index 482677f5a8..489d52df67 100644 --- a/packages/boilerplate/theme/lang/en.js +++ b/packages/boilerplate/theme/lang/en.js @@ -142,14 +142,5 @@ export default { 'Password': 'Password', 'Repeat Password': 'Repeat Password', 'Forgot Password Modal Email': 'Email you are using to sign in:', - forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.', - subscribeToNewsletterModalContent: - 'After signing up for the newsletter, you will receive special offers and messages from VSF via email. We will not sell or distribute your email to any third party at any time. Please see our {0}.', - 'Subscribe': 'Subscribe', - 'Subscribe to newsletter': 'Subscribe to newsletter', - 'Email address': 'Email address', - 'I confirm subscription': 'I confirm subscription', - 'You can unsubscribe at any time': 'You can unsubscribe at any time', - 'show more': 'show more', - 'hide': 'hide' + forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.' }; diff --git a/packages/boilerplate/theme/package.json b/packages/boilerplate/theme/package.json index c11e58bb60..ab8fe18cf6 100644 --- a/packages/boilerplate/theme/package.json +++ b/packages/boilerplate/theme/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-theme", - "version": "2.4.1", + "version": "2.4.2", "private": true, "scripts": { "dev": "nuxt", @@ -14,10 +14,10 @@ }, "dependencies": { "@storefront-ui/vue": "^0.10.3", - "@vue-storefront/boilerplate": "~2.4.1", - "@vue-storefront/middleware": "~2.4.1", - "@vue-storefront/nuxt": "~2.4.1", - "@vue-storefront/nuxt-theme": "~2.4.1", + "@vue-storefront/boilerplate": "~2.4.2", + "@vue-storefront/middleware": "~2.4.2", + "@vue-storefront/nuxt": "~2.4.2", + "@vue-storefront/nuxt-theme": "~2.4.2", "cookie-universal-nuxt": "^2.1.3", "core-js": "^2.6.5", "nuxt": "^2.13.3", diff --git a/packages/commercetools/api-client/package.json b/packages/commercetools/api-client/package.json index a111eb4a6c..94a8401696 100644 --- a/packages/commercetools/api-client/package.json +++ b/packages/commercetools/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools-api", - "version": "1.3.1", + "version": "1.3.2", "sideEffects": false, "server": "server/index.js", "main": "lib/index.cjs.js", @@ -15,7 +15,7 @@ "dependencies": { "@apollo/client": "^3.3.21", "@commercetools/sdk-auth": "^3.0.12", - "@vue-storefront/core": "~2.4.1", + "@vue-storefront/core": "~2.4.2", "apollo-cache-inmemory": "^1.6.6", "apollo-client": "^2.6.10", "apollo-link": "^1.2.14", diff --git a/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts b/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts new file mode 100644 index 0000000000..d0f311caaa --- /dev/null +++ b/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts @@ -0,0 +1,56 @@ +import gql from 'graphql-tag'; + +export default gql` + query ($filter: [SearchFilter!], $acceptLanguage: [Locale!]) { + categorySearch(filters: $filter) { + offset + count + total + results { + id + slug(acceptLanguage: $acceptLanguage) + name(acceptLanguage: $acceptLanguage) + description(acceptLanguage: $acceptLanguage) + childCount + stagedProductCount + parent { + ...DefaultCategorySearch + parent { + ...DefaultCategorySearch + parent { + ...DefaultCategorySearch + } + } + } + children { + ...DefaultCategorySearch + } + } + } +} + +fragment DefaultCategorySearch on CategorySearch { + id + slug(acceptLanguage: $acceptLanguage) + name(acceptLanguage: $acceptLanguage) + childCount + stagedProductCount + children { + ...CategorySearchChildren + children { + ...CategorySearchChildren + children { + ...CategorySearchChildren + } + } + } +} + +fragment CategorySearchChildren on CategorySearch { + id + slug(acceptLanguage: $acceptLanguage) + name(acceptLanguage: $acceptLanguage) + childCount + stagedProductCount +} +`; diff --git a/packages/commercetools/api-client/src/api/categorySearch/index.ts b/packages/commercetools/api-client/src/api/categorySearch/index.ts new file mode 100644 index 0000000000..9b82a47cf1 --- /dev/null +++ b/packages/commercetools/api-client/src/api/categorySearch/index.ts @@ -0,0 +1,40 @@ +import gql from 'graphql-tag'; +import defaultQuery from './defaultQuery'; +import { CategorySearchResult } from '../../types/GraphQL'; +import { buildCategoryFilter } from '../../helpers/search'; +import ApolloClient from 'apollo-client'; +import { CustomQuery } from '@vue-storefront/core'; +import { CategoryWhereSearch } from '@vue-storefront/commercetools-api'; + +export interface CategoryData { + categorySearch: CategorySearchResult; +} + +export interface CategorySearchParams { + filter?: CategoryWhereSearch; + limit?: number; + offset?: number; +} + +const categorySearch = async (context, params?: CategorySearchParams, customQuery?: CustomQuery) => { + const { acceptLanguage } = context.config; + const defaultVariables = params ? { + filter: buildCategoryFilter(context.config, params), + limit: params.limit, + offset: params.offset, + acceptLanguage + } : { acceptLanguage }; + + const { categorySearch } = context.extendQuery(customQuery, + { categorySearch: { query: defaultQuery, variables: defaultVariables } } + ); + const request = await (context.client as ApolloClient).query({ + query: gql`${categorySearch.query}`, + variables: categorySearch.variables, + fetchPolicy: 'no-cache' + }); + + return request; +}; + +export default categorySearch; diff --git a/packages/commercetools/api-client/src/api/index.ts b/packages/commercetools/api-client/src/api/index.ts index 4197c828bc..bdd26c64b8 100644 --- a/packages/commercetools/api-client/src/api/index.ts +++ b/packages/commercetools/api-client/src/api/index.ts @@ -10,6 +10,7 @@ export { default as customerUpdateMe } from './customerUpdateMe'; export { default as deleteCart } from './deleteCart'; export { default as getCart } from './getCart'; export { default as getCategory } from './getCategory'; +export { default as categorySearch } from './categorySearch'; export { default as getMe } from './getMe'; export { default as getOrders } from './getOrders'; export { default as getProduct } from './getProduct'; diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts index 743834e000..7756ce3ffb 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts @@ -1,7 +1,6 @@ import SdkAuth, { TokenProvider } from '@commercetools/sdk-auth'; -import { Logger } from '@vue-storefront/core'; import { Config, ApiConfig } from '../../types/setup'; -import { isAnonymousSession, isUserSession, getAccessToken } from '../utils'; +import { isAnonymousSession, isUserSession } from '../utils'; import fetch from 'isomorphic-fetch'; export const createAuthClient = (config: ApiConfig): SdkAuth => { @@ -25,13 +24,8 @@ export const createTokenProvider = (settings: Config, { return new TokenProvider({ sdkAuth, fetchTokenInfo: (sdkAuthInstance) => sdkAuthInstance.clientCredentialsFlow(), - onTokenInfoChanged: (tokenInfo) => { - Logger.debug('TokenProvider.onTokenInfoChanged', getAccessToken(tokenInfo)); - settings.auth.onTokenChange(tokenInfo); - }, - onTokenInfoRefreshed: (tokenInfo) => { - Logger.debug('TokenProvider.onTokenInfoRefreshed', getAccessToken(tokenInfo)); - } + onTokenInfoChanged: (tokenInfo) => settings.auth.onTokenChange(tokenInfo), + onTokenInfoRefreshed: (tokenInfo) => settings.auth.onTokenChange(tokenInfo) }, currentToken); }; diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts index 7205beaaa5..72d212d779 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts @@ -1,6 +1,5 @@ import { Config } from '../../types/setup'; import { Logger } from '@vue-storefront/core'; -import { getAccessToken } from '../utils'; import { createHttpLink } from 'apollo-link-http'; import { createErrorHandler } from './graphqlError'; import { setContext } from 'apollo-link-context'; @@ -12,8 +11,6 @@ import { createAuthClient, createTokenProvider } from './authHelpers'; export const createCommerceToolsConnection = (settings: Config): any => { let currentToken: any = settings.auth.onTokenRead(); - Logger.debug('createCommerceToolsConnection', getAccessToken(currentToken)); - const sdkAuth = createAuthClient(settings.api); const tokenProvider = createTokenProvider(settings, { sdkAuth, currentToken }); const httpLink = createHttpLink({ uri: settings.api.uri, fetch }); @@ -21,8 +18,14 @@ export const createCommerceToolsConnection = (settings: Config): any => { const authLinkBefore = setContext(async (apolloReq, { headers }) => { Logger.debug('Apollo authLinkBefore', apolloReq.operationName); - currentToken = await handleBeforeAuth({ sdkAuth, tokenProvider, apolloReq, currentToken }); - Logger.debug('Apollo authLinkBefore, finished, generated token: ', getAccessToken(currentToken)); + + currentToken = await handleBeforeAuth({ + settings, + sdkAuth, + tokenProvider, + apolloReq, + currentToken + }); return { headers: { @@ -47,11 +50,16 @@ export const createCommerceToolsConnection = (settings: Config): any => { }); const errorRetry = new RetryLink({ - attempts: handleRetry({ tokenProvider }), + attempts: handleRetry({ settings, tokenProvider }), delay: () => 0 }); - const apolloLink = ApolloLink.from([onErrorLink, errorRetry, authLinkBefore, authLinkAfter.concat(httpLink)]); + const apolloLink = ApolloLink.from([ + onErrorLink, + errorRetry, + authLinkBefore, + authLinkAfter.concat(httpLink) + ]); return { apolloLink, diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts index 24ce19b397..594701ce25 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts @@ -1,49 +1,153 @@ import { Logger } from '@vue-storefront/core'; -import { isAnonymousSession, isUserSession, getAccessToken } from '../utils'; -import { isAnonymousOperation, isUserOperation } from './restrictedOperations'; +import { isAnonymousSession, isUserSession } from '../utils'; +import { isServerOperation, isAnonymousOperation, isUserOperation } from './restrictedOperations'; -export const handleBeforeAuth = async ({ sdkAuth, tokenProvider, apolloReq, currentToken }) => { - const isAnonymous = isAnonymousSession(currentToken); - const isUser = isUserSession(currentToken); - const isGuest = !isAnonymous && !isUser; +/** + * Returns access token for the Server Middleware. It usually has more permissions than anonymous / user access token. + * + * If the configuration doesn't specify server-specific API client configuration, it will fallback to customer access tokens configuration. + */ +async function generateServerAccessToken({ + settings, + apolloReq, + sdkAuth +}): Promise { + Logger.debug(`Generating server access token for operation "${ apolloReq.operationName }"`); - if (isGuest && isAnonymousOperation(apolloReq.operationName)) { - Logger.debug('Apollo authLinkBefore, anonymousFlow', apolloReq.operationName); + const { clientId, clientSecret, scopes } = settings.serverApi || settings.api; - const token = await sdkAuth.anonymousFlow(); - tokenProvider.setTokenInfo(token); - Logger.debug('Apollo authLinkBefore, anonymousFlow, generated token: ', getAccessToken(token)); + const token = await sdkAuth.clientCredentialsFlow({ + credentials: { + clientId, + clientSecret + }, + scopes + }); - return token; + Logger.debug(`Successfully generated server access token for operation "${ apolloReq.operationName }"`); + + return token; +} + +/** + * Returns access token for the anonymous session. + */ +async function generateAnonymousAccessToken({ + apolloReq, + sdkAuth, + tokenProvider +}): Promise { + Logger.debug(`Generating anonymous access token for operation "${ apolloReq.operationName }"`); + + const token = await sdkAuth.anonymousFlow(); + tokenProvider.setTokenInfo(token); + + Logger.debug(`Successfully generated anonymous access token for operation "${ apolloReq.operationName }"`); + + return token; +} + +/** + * Returns access token for the logged in customer. + */ +async function generateUserAccessToken({ + apolloReq, + sdkAuth, + tokenProvider +}): Promise { + Logger.debug(`Generating user access token for operation "${ apolloReq.operationName }"`); + + const { email, password } = apolloReq.variables.draft; + const token = await sdkAuth.customerPasswordFlow({ username: email, password }); + tokenProvider.setTokenInfo(token); + + Logger.debug(`Successfully generated user access token for operation "${ apolloReq.operationName }"`); + + return token; +} + +/** + * The handler that checks if it's necessary to generate a server or anonymous access token. + */ +export const handleBeforeAuth = async ({ + settings, + sdkAuth, + tokenProvider, + apolloReq, + currentToken +}) => { + const isGuest = !isAnonymousSession(currentToken) && !isUserSession(currentToken) && isAnonymousOperation(apolloReq.operationName); + const isServer = isServerOperation(apolloReq.operationName); + + const customToken = await settings.customToken?.({ + settings, + isGuest, + isServer, + sdkAuth, + tokenProvider, + apolloReq, + currentToken + }); + + if (customToken) { + return customToken; + } + + if (isServer) { + return await generateServerAccessToken({ + settings, + apolloReq, + sdkAuth + }); + } + + if (isGuest) { + return await generateAnonymousAccessToken({ + apolloReq, + sdkAuth, + tokenProvider + }); } return tokenProvider.getTokenInfo(); }; +/** + * The handler that generates an access token for the user if all three conditions are met: + * - the customer is not already logged in; + * - the customer performed one of the user-specific operations; + * - response from the commercetools doesn't contain any errors, meaning that the given credentials are valid; + */ export const handleAfterAuth = async ({ sdkAuth, tokenProvider, apolloReq, currentToken, response }) => { - if (!isUserSession(currentToken) && isUserOperation(apolloReq.operationName)) { - const { email, password } = apolloReq.variables.draft; - Logger.debug('Apollo authLinkAfter, customerPasswordFlow', apolloReq.operationName); - - if (!response.errors?.length) { - const token = await sdkAuth.customerPasswordFlow({ username: email, password }); - tokenProvider.setTokenInfo(token); - Logger.debug('Apollo authLinkAfter, customerPasswordFlow, generated token: ', getAccessToken(token)); - - return token; - } - - return currentToken; + if (!isUserSession(currentToken) && isUserOperation(apolloReq.operationName) && !response.errors?.length) { + return generateUserAccessToken({ + apolloReq, + sdkAuth, + tokenProvider + }); } return currentToken; }; -export const handleRetry = ({ tokenProvider }) => (count, operation, error) => { +/** + * The handler that retries requests to the commercetools server if specific conditions are met. + */ +export const handleRetry = ({ settings, tokenProvider }) => (count, operation, error) => { if (count > 3) { return false; } + const customRetry = settings.customRetry?.({ + count, + operation, + error + }); + + if (customRetry) { + return true; + } + if (error?.result?.message === 'invalid_token') { Logger.debug(`Apollo retry-link, the operation (${operation.operationName}) sent with wrong token, creating a new one... (attempt: ${count})`); tokenProvider.invalidateTokenInfo(); diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts index f3623e64b3..2f08e9c5ba 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts @@ -1,5 +1,10 @@ /* istanbul ignore file */ const restrictedOperations = { + server: [ + 'customerCreatePasswordResetToken', + 'createReview', + 'reviews' + ], anonymous: [ 'createCart', 'createMyShoppingList' @@ -10,5 +15,14 @@ const restrictedOperations = { ] }; -export const isAnonymousOperation = (operationName) => restrictedOperations.anonymous.includes(operationName); -export const isUserOperation = (operationName) => restrictedOperations.user.includes(operationName); +export function isServerOperation(operationName: string): boolean { + return restrictedOperations.server.includes(operationName); +} + +export function isAnonymousOperation(operationName: string): boolean { + return restrictedOperations.anonymous.includes(operationName); +} + +export function isUserOperation(operationName: string): boolean { + return restrictedOperations.user.includes(operationName); +} diff --git a/packages/commercetools/api-client/src/helpers/search/index.ts b/packages/commercetools/api-client/src/helpers/search/index.ts index 63ec298859..48ce064827 100644 --- a/packages/commercetools/api-client/src/helpers/search/index.ts +++ b/packages/commercetools/api-client/src/helpers/search/index.ts @@ -105,6 +105,24 @@ const buildCategoryWhere = (settings: Config, search: CategoryWhereSearch) => { return undefined; }; +const buildCategoryFilter = (settings: Config, filter: CategoryWhereSearch) => { + const { acceptLanguage } = settings; + + if (filter?.catId) { + return [`id:"${filter.catId}"`]; + } + + if (filter?.slug) { + return [`slug.${acceptLanguage[0]}:"${filter.slug}"`]; + } + + if (filter?.key) { + return [`key:"${filter.key}"`]; + } + + return undefined; +}; + const buildOrderWhere = (search: OrderWhereSearch): string => { if (search?.id) { return `id="${search.id}"`; @@ -120,6 +138,7 @@ const buildOrderWhere = (search: OrderWhereSearch): string => { export { buildProductWhere, buildCategoryWhere, + buildCategoryFilter, buildOrderWhere, buildInventoryEntriesWhere }; diff --git a/packages/commercetools/api-client/src/helpers/utils.ts b/packages/commercetools/api-client/src/helpers/utils.ts index 9c7d4c3cd2..d0191f9c74 100644 --- a/packages/commercetools/api-client/src/helpers/utils.ts +++ b/packages/commercetools/api-client/src/helpers/utils.ts @@ -1,6 +1,5 @@ export const isAnonymousSession = (token) => token?.scope?.includes('anonymous_id'); export const isUserSession = (token) => token?.scope?.includes('customer_id'); -export const getAccessToken = (token) => token ? token.access_token : null; export const getStoreKey = (store: string | undefined) => store ? ({ storeKey: store?.split('/')[0] }) : {}; diff --git a/packages/commercetools/api-client/src/index.server.ts b/packages/commercetools/api-client/src/index.server.ts index 5af3fe3b7d..9c08a7d5af 100644 --- a/packages/commercetools/api-client/src/index.server.ts +++ b/packages/commercetools/api-client/src/index.server.ts @@ -2,7 +2,7 @@ import ApolloClient from 'apollo-client'; import { InMemoryCache } from 'apollo-cache-inmemory'; import * as api from './api'; -import { Config, ClientInstance } from './types/setup'; +import { Config, ClientInstance, CT_COOKIE_NAME } from './types/setup'; import { createCommerceToolsConnection } from './helpers/commercetoolsLink/createCommerceToolsConnection'; import { defaultSettings } from './helpers/apiClient/defaultSettings'; import { apiClientFactory, ApiClientExtension } from '@vue-storefront/core'; @@ -80,28 +80,15 @@ const tokenExtension: ApiClientExtension = { ...configuration, ...getI18nConfig(req, configuration), auth: { - onTokenChange: (newToken) => { - if (!currentToken || currentToken.access_token !== newToken.access_token) { - res.cookie( - 'vsf-commercetools-token', - JSON.stringify(newToken), - newToken?.expires_at ? { expires: new Date(newToken.expires_at) } : {} - ); - } - }, - - onTokenRead: () => { - res.cookie( - 'vsf-commercetools-token', - rawCurrentToken, - currentToken?.expires_at ? { expires: new Date(currentToken.expires_at) } : {} - ); - return currentToken; - }, - - onTokenRemove: () => { - delete req.cookies['vsf-commercetools-token']; - } + onTokenChange: (token) => res.cookie( + CT_COOKIE_NAME, + JSON.stringify(token), + token?.expires_at ? { expires: new Date(token.expires_at) } : {} + ), + + onTokenRead: () => currentToken, + + onTokenRemove: () => res.clearCookie(CT_COOKIE_NAME) } }) }; diff --git a/packages/commercetools/api-client/src/types/Api.ts b/packages/commercetools/api-client/src/types/Api.ts index 4cc2b015ad..5497c87feb 100644 --- a/packages/commercetools/api-client/src/types/Api.ts +++ b/packages/commercetools/api-client/src/types/Api.ts @@ -21,6 +21,7 @@ import { Address, LineItem, CategoryQueryResult, + CategorySearchResult, ProductQueryResult, Me, CartQueryInterface, @@ -127,6 +128,7 @@ interface ApiMethods { deleteCart ({ id, version }: CartDetails): Promise; getCart (cartId: string): Promise; getCategory (params): Promise>; + categorySearch (params): Promise>; getMe (params?: GetMeParams): Promise<{ data: { me: Me } }>; getOrders (params): Promise<{ data: { me: Me } }>; getProduct (params): Promise>; diff --git a/packages/commercetools/api-client/src/types/setup.ts b/packages/commercetools/api-client/src/types/setup.ts index c6778bfff3..f57e374f74 100644 --- a/packages/commercetools/api-client/src/types/setup.ts +++ b/packages/commercetools/api-client/src/types/setup.ts @@ -2,6 +2,11 @@ import SdkAuth, { TokenProvider } from '@commercetools/sdk-auth'; import ApolloClient, { ApolloClientOptions } from 'apollo-client'; +/** + * Name of the cookie storing the commercetools access token. + */ +export const CT_COOKIE_NAME = 'vsf-commercetools-token'; + export interface ClientInstance extends ApolloClient { sdkAuth?: SdkAuth; tokenProvider?: TokenProvider; @@ -73,6 +78,7 @@ export interface CustomerCredentials { export interface Config { client?: ApolloClient; api: ApiConfig; + serverApi?: Pick; customOptions?: ApolloClientOptions; currency: string; locale: string; diff --git a/packages/commercetools/composables/__tests__/setup.ts b/packages/commercetools/composables/__tests__/setup.ts index e98a3f1270..ca35865e01 100644 --- a/packages/commercetools/composables/__tests__/setup.ts +++ b/packages/commercetools/composables/__tests__/setup.ts @@ -1,8 +1,4 @@ -require('jsdom-global')(); import Vue from 'vue'; import VueCompositionApi from '@vue/composition-api'; -Vue.config.productionTip = false; -Vue.config.devtools = false; - Vue.use(VueCompositionApi); diff --git a/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts b/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts index ae0f47c5a7..ae6e7ab5f7 100644 --- a/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts +++ b/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts @@ -37,9 +37,16 @@ describe('[commercetools-composables] useStore factoryParams', () => { it('changes selected store and reloads page', async () => { const STORES_ID = 'stores id'; - Object.defineProperty(window, 'location', { - writable: true, - value: { reload: jest.fn() } + const location = { + reload: jest.fn() + }; + + const _window = jest.spyOn( + global, 'window', 'get' + ); + + _window.mockImplementation(function () { + return ({ location } as unknown) as Window & typeof globalThis; }); const storeService = { @@ -64,6 +71,6 @@ describe('[commercetools-composables] useStore factoryParams', () => { expect(await useStoreFactoryParams.change((context as unknown) as Context, (params as unknown) as UseStoreFactoryChangeParamArguments)).toBe(null); expect(storeService.changeCurrentStore).toHaveBeenCalledWith(STORES_ID); - expect(window.location.reload).toHaveBeenCalled(); + expect(location.reload).toHaveBeenCalled(); }); }); diff --git a/packages/commercetools/composables/jest.config.js b/packages/commercetools/composables/jest.config.js index aa3a7af6f5..23dd554685 100644 --- a/packages/commercetools/composables/jest.config.js +++ b/packages/commercetools/composables/jest.config.js @@ -2,14 +2,22 @@ const baseConfig = require('./../../jest.base.config'); module.exports = { ...baseConfig, + coverageReporters: ['html', 'lcov', 'text'], rootDir: __dirname, setupFilesAfterEnv: ['./__tests__/setup.ts'], + watchPathIgnorePatterns: ['/node_modules/'], coveragePathIgnorePatterns: [ '/node_modules/', '/src/context.d.ts', // Ignore mocked composables 'UserBilling', - 'UserShipping' + 'UserShipping', + + // TODO: https://github.com/DivanteLtd/vue-storefront/issues/5136 + '/src/getters/cartGetters.ts', + '/src/getters/checkoutGetters.ts', + '/src/getters/userGetters.ts', + '/src/getters/productGetters.ts' ] }; diff --git a/packages/commercetools/composables/package.json b/packages/commercetools/composables/package.json index a47e10f810..a07fa56c84 100644 --- a/packages/commercetools/composables/package.json +++ b/packages/commercetools/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools", - "version": "1.3.1", + "version": "1.3.2", "sideEffects": false, "main": "lib/index.cjs.js", "module": "lib/index.es.js", @@ -13,15 +13,13 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/commercetools-api": "~1.3.1", - "@vue-storefront/core": "~2.4.1", + "@vue-storefront/commercetools-api": "~1.3.2", + "@vue-storefront/core": "~2.4.2", "js-cookie": "^2.2.1", "vue": "^2.6.x" }, "devDependencies": { "@vue/test-utils": "^1.0.0-beta.30", - "jsdom": "^16.6.0", - "jsdom-global": "^3.0.2", "vue-template-compiler": "^2.6.x" }, "publishConfig": { diff --git a/packages/commercetools/composables/src/getters/categoryGetters.ts b/packages/commercetools/composables/src/getters/categoryGetters.ts index dad423c138..32e937e92f 100644 --- a/packages/commercetools/composables/src/getters/categoryGetters.ts +++ b/packages/commercetools/composables/src/getters/categoryGetters.ts @@ -1,14 +1,15 @@ import { CategoryGetters, AgnosticCategoryTree } from '@vue-storefront/core'; -import { Category } from './../types/GraphQL'; +import { Category, CategorySearch } from './../types/GraphQL'; -export const getCategoryTree = (category: Category): AgnosticCategoryTree | null => { - const getRoot = (category: Category): Category => (category.parent ? getRoot(category.parent) : category); - const buildTree = (rootCategory: Category) => ({ +export const getCategoryTree = (category: Category | CategorySearch): AgnosticCategoryTree | null => { + const getRoot = (category: Category | CategorySearch): Category => (category.parent ? getRoot(category.parent) : category) as Category; + const buildTree = (rootCategory: Category | CategorySearch) => ({ label: rootCategory.name, slug: rootCategory.slug, id: rootCategory.id, isCurrent: rootCategory.id === category.id, - items: rootCategory.children.map(buildTree) + items: rootCategory.children?.map(buildTree), + count: rootCategory.stagedProductCount }); if (!category) { diff --git a/packages/commercetools/composables/src/types/index.ts b/packages/commercetools/composables/src/types/index.ts index f3b2ee7b21..a30a0c1685 100644 --- a/packages/commercetools/composables/src/types/index.ts +++ b/packages/commercetools/composables/src/types/index.ts @@ -2,6 +2,7 @@ import { Filter, ProductVariant, Category, + CategorySearch, ResetPasswordResponse, CreatePasswordResetTokenResponse, Store @@ -29,7 +30,7 @@ export interface ProductsSearchParams { export interface FacetResultsData { products: ProductVariant[]; - categories: Category[]; + categories: Category[]|CategorySearch[]; facets: Record; total: number; perPageOptions: number[]; diff --git a/packages/commercetools/composables/src/useFacet/index.ts b/packages/commercetools/composables/src/useFacet/index.ts index 46d6d9278c..a7dc2bed0e 100644 --- a/packages/commercetools/composables/src/useFacet/index.ts +++ b/packages/commercetools/composables/src/useFacet/index.ts @@ -10,9 +10,8 @@ const ITEMS_PER_PAGE = [20, 40, 100]; const useFacetFactoryParams = { search: async (context: Context, params: FacetSearchResult): Promise => { const itemsPerPage = params.input.itemsPerPage; - - const categoryResponse = await context.$ct.api.getCategory({ slug: params.input.categorySlug }); - const categories = categoryResponse.data.categories.results; + const categoryResponse = await context.$ct.api.categorySearch({ slug: params.input.categorySlug }); + const categories = categoryResponse.data.categorySearch.results; const inputFilters = params.input.filters; const filters = Object.keys(inputFilters).reduce((prev, curr) => ([ ...prev, diff --git a/packages/commercetools/composables/src/useUser/factoryParams.ts b/packages/commercetools/composables/src/useUser/factoryParams.ts index 58a3306553..b9e1060fb1 100644 --- a/packages/commercetools/composables/src/useUser/factoryParams.ts +++ b/packages/commercetools/composables/src/useUser/factoryParams.ts @@ -15,6 +15,7 @@ const load = async (context: Context, {customQuery}) => { } const profile = await context.$ct.api.getMe({ customer: true }, customQuery); + context.setCart(profile.data.me.activeCart); return profile.data.me.customer; }; diff --git a/packages/commercetools/theme/components/AppHeader.vue b/packages/commercetools/theme/components/AppHeader.vue index f16136981c..baeae478d5 100644 --- a/packages/commercetools/theme/components/AppHeader.vue +++ b/packages/commercetools/theme/components/AppHeader.vue @@ -97,6 +97,7 @@ +``` + +## Checking if the user is logged in + +Many interactions in the application are only available ( `useUser` prefixed functions like `useUserOrder`) or look different if the customer is logged in. To check if the user is authenticated, we will use `isAuthenticated` method from `useUser`. + +Like with all other composables, it's important to remember to call `load` before accessing any other property or function of `useUser`. Otherwise, `isAuthenticated` will always return `false`. + +```js{8,16} +import { useUser } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; + +export default { + setup () { + const { + load, + isAuthenticated + } = useUser(); + + onSSR(async () => { + await load(); + }); + + return { + isAuthenticated + }; + } +} +``` + +## Logging in + +Signing in can be done using `login` method. +```vue + + + +``` +`user` [ref](https://v3.vuejs.org/api/refs-api.html#ref) either contains an object of the signed-in user or equals `null` + +## Logging out + +Signing out can be done using `logout` method. +```vue + + + +``` + +## Forgot Password + +Usually, the process of resetting a user password consists of two steps: + +1. Generating reset password token for a given email address: + +```vue + + + +``` + +2. Setting a new user password using the token and new password. + +```vue + + + +``` + +## How does it work in integrations? + +Below you can find detailed information on how we're handling authentication in different integrations. + diff --git a/packages/core/docs/commercetools/guide/cart.md b/packages/core/docs/commercetools/guide/cart.md new file mode 100644 index 0000000000..9ddbbc65dd --- /dev/null +++ b/packages/core/docs/commercetools/guide/cart.md @@ -0,0 +1,248 @@ +# Cart + +Customer's cart can be loaded using `useCart` composable and data can be accessed using `cartGetters`. + +## Loading and creating the cart + +The `load` method will load your cart from the server or create a new one if it doesn't exist. The `cart` object will be `null` until you load it. + + +```js +import { useCart } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; +export default { + setup() { + const { + cart, + load + } = useCart(); + + onSSR(async () => { + await load(); + }); + + return { + cart, + load + }; + } +}; +``` + + +## Adding item to the cart + +To add the product to the cart you can use `addItem` method: + +```vue + + +``` + +## Removing items and changing their quantity + +To remove an item from the cart use `removeItem` method, and similarly to update quantity use `updateItemQty` method: + +```vue + + + +``` + +## Checking if an item is in the cart + +To check if a specific product configuration is already in the cart, pass it to `isInCart` method: + +```js +import { computed } from '@vue/composition-api'; +import { useCart } from '@vue-storefront/commercetools'; + +export default { + props: { + products: { + type: Array, + required: true + } + }, + setup() { + const { isInCart } = useCart(); + + return { + isInCart + }; + } +}; + +``` + +## Removing all cart items at once + +To clear cart items (not delete it) use `clear` method. + +```vue + + +``` + + +## Applying and removing discount coupons + +You can apply promotional coupons to your cart with `applyCoupon` and remove with `removeCoupon` method: + +```vue + + +``` diff --git a/packages/core/docs/commercetools/guide/checkout.md b/packages/core/docs/commercetools/guide/checkout.md new file mode 100644 index 0000000000..bd146701e8 --- /dev/null +++ b/packages/core/docs/commercetools/guide/checkout.md @@ -0,0 +1,365 @@ +# Checkout + +> This document only outlines the general checkout flow. Each eCommerce platform, Payment provider, or Shipping provider could implement it slightly differently. Please follow the instructions from the documentation of your payment or shipping provider to learn about its caveats + +Checkout is a process of providing shipping and billing addresses and selecting shipping and payment methods needed to place an order and pay for it. + +## Collecting and saving shipping details + +Shipping details are information about the recipient's address required to ship the order. + +You can load shipping details by calling the `load` method in `useShipping` composable and accessing the `shipping` property after loading is done. +```js{8,16} +import { useShipping } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; + +export default { + setup () { + const { + load, + shipping + } = useShipping(); + + onSSR(async () => { + await load(); + }); + + return { + shipping + }; + } +} +``` +`shipping` property returns `null` if the `load` function was not invoked or nothing is saved. + +You can use the `save` method to save shipping details, so they are available next time you `load` them. + +```vue{2,15,24} + + + +``` + +## Selecting a shipping method + +`VsfShippingProvider` is a component that aggregates one or more shipping methods from a single provider like FedEx or DHL. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. + +The component is responsible for: +- Loading and displaying available shipping methods. +- Loading selected shipping method. +- Selecting and configuring shipping method. + +All you have to do is to import a component and add it to the template. + +```vue + +``` + +`VsfShippingProvider` sets `state.value._status` property of `useShippingProvider` to `true` or `false`. The property informs whether a user is ready to go to the next step (`true`) or not (`false`). + +### Extending `VsfShippingProvider` and reacting to its events + +You can pass asynchronous functions to the `VsfShippingProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". + +Because every shipping provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. + +- **beforeLoad** `(config => config)` - Called before loading shipping methods. +- **afterLoad** `(shippingMethodsResponse => shippingMethodsResponse.shippingMethods)` - Called after loading shipping methods. +- **beforeSelect** `(shippingMethod => shippingMethod)` - Called before selecting shipping method. +- **afterSelect** `(selectedShippingMethod => void)` - Called after selecting shipping method. +- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked shipping method, e.g. selecting parcel locker on the map. +- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked shipping method. +- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. + +```vue + +``` + +### Accessing current shipping method's details outside the component + +Sometimes you have to show the information about a selected shipping method in a different place than the `VsfShippingProvider` component. + +For such cases, you can use `useShippingProvider` composable. It has been made for loading and saving a current shipping method. After loading the data via the `load` method, it stores the information in some property of a `state` object, so you can access it from many places. + +```ts +import { useShippingProvider } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; +import { computed } from '@vue/composition-api'; + +export default { + setup () { + const { load, state } = useShippingProvider(); + + onSSR(async () => { + await load(); + }); + + return { + selectedShippingMethod: computed(() => ...) + } + } +} +``` + +## Collecting and saving billing details + +Billing details are information about the payer's address used by store owners to prepare invoices and payment providers to evaluate the probability of fraud payment. + +You can load billing details by calling the `load` method in `useBilling` composable and accessing the `billing` property after loading is done. + +```js{8,16} +import { useBilling } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; + +export default { + setup () { + const { + load, + billing + } = useBilling(); + + onSSR(async () => { + await load(); + }); + + return { + billing + }; + } +} +``` +`billing` property returns `null` if the `load` function was not invoked or nothing is saved. + +You can use the `save` method to save billing details. + +```vue{2,15,24} + + + +``` + +## Making an order + +After the user has provided all the information required by your eCommerce, you are ready to *make an order*. To do that, you have to call a `make` method from the `useMakeOrder` composable. +```js +import { useMakeOrder } from '@vue-storefront/commercetools'; + +export default { + setup () { + const { make } = useMakeOrder(); + + return { + make + } + } +} +``` + +When the order is created, you can redirect the user to the page thanking them for making an order and refresh the cart. + +```js +import { useMakeOrder, useCart } from '@vue-storefront/commercetools'; + +export default { + setup (_, context) { + const { make, order } = useMakeOrder(); + const { setCart } = useCart(); + + const processOrder = async () => { + await make(); + context.root.$router.push(`/checkout/thank-you?order=${order.value.id}`); + setCart(null); + } + } +} +``` + +## Payment providers + +A `VsfPaymentProvider` is a component that provides one or more payment methods. One such component integrates one third-party provider of payments like Checkout.com or Adyen. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. + +The component is responsible for: +- Loading and displaying available payment methods. +- Loading selected payment method. +- Picking and configuring payment method. + +The first thing you have to do is to import the component and add it to the template. + +```vue + + + +``` + +The next step is making a payment. Each package with a payment provider might use a slightly different approach, but we described the two most common below. + +### SDK takes the full control + +If the payment provider's SDK handles the whole payment and you can only provide your own callbacks for certain events. You want to make an order in the `beforePay` async hook. +```vue + + + +``` + +### SDK allows externalizing pay method + +If the payment provider's SDK handles the process of configuring payment but allows you to decide when to finalize then: +- Composable shares a `pay` method. +- Composable shares a `status` boolean ref that informs if you are ready to call `pay`. + +```vue + + + +``` + +### Extending `VsfPaymentProvider` and reacting to its events + +You can pass asynchronous functions to the `VsfPaymentProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". + +Because every payment provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. + +- **beforeLoad** `(config => config)` - Called before loading payment methods. +- **afterLoad** `(paymentMethodsResponse => paymentMethodsResponse.paymentMethods)` - Called after loading payment methods. +- **beforeSelect** `(paymentMethod => paymentMethod)` - Called before selecting payment method. +- **afterSelect** `(selectedPaymentMethod => void)` - Called after selecting payment method. +- **beforePay** `(paymentDetails => paymentDetails)` - Called before pay. +- **afterPay** `(paymentResponse => void)` - Called after pay. +- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked payment method, e.g. changing credit card's details. +- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked payment method, e.g. changing credit card's details. +- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. + +```vue + +``` + +### Why some integrations have a mocked `VsfPaymentProvider`? + +There are eCommerce backends that do not provide any payment methods out-of-the-box, e.g., commercetools. For these, you provide a mock component with the same interface as a real integration, so you can easily swap it with a payment integration of your choice. You can find available payment integrations [here](/v2/integrations/). diff --git a/packages/core/docs/commercetools/guide/product-catalog.md b/packages/core/docs/commercetools/guide/product-catalog.md new file mode 100644 index 0000000000..56ee4d2d93 --- /dev/null +++ b/packages/core/docs/commercetools/guide/product-catalog.md @@ -0,0 +1,249 @@ +# Product catalog + +There are two composables used to interact with the product catalog - `useProduct` and `useFacet`. + +`useProduct` allows loading products and their variants when some parameters like IDs, SKUs, or slugs are already known. + +`useFacet` allows more complex queries where categories, search terms, filters, and other options can narrow down and sort the results. + +## Fetching a single product and its variants + +`useProduct` composable is used primarily on the Product Details Page to display information about a single product and its variants. + +Use the `search` method to fetch the product and its variants. The response is available in the `products` object. + +```vue + + +``` + +## Accessing product data + +Once products are loaded using `useProduct`, access them using `productGetters`. Depending on the product, configuration, and integration used, the response might contain one or more products or variants. Use the `getFiltered` getter to access them. + +For a full list of available getters, please refer to the [ProductGetters ](../core/api-reference/core.productgetters.html) interface. + +### Accessing products list + +Use the `getFiltered` getter without the second parameter to get the list of all products. + +```vue{4,18-24} + +``` + +### Accessing master variant + +In most of the eCommerce backends, there is a so-called _master variant_. You can think of it as a default configuration for the product displayed to the user if they haven't selected any other configuration. + +Let's use the `getFiltered` getter again, but this time pass `{ master: true }` as a second parameter to only get the master variant. + +```vue{4,18-24} + +``` + +:::warning `getFiltered` always returns an array +Even when `{ master: true }` is passed, the `getFiltered` getter still returns an array of products. In the example above, we used `[0]` to access the first element, but it might differ depending on the integration. +::: + +### Accessing products with specific attributes + +To only get the products with specific attributes, pass the `{ attributes }` object as a second parameter. + +```vue{4,18-29} + +``` + +## Fetching a list of products and available filters + +Faceted search allows users to narrow down search results by applying multiple filters (called dimensions) to the catalog data. In the clothing shop, facet (dimension) would be a brand, size, color, etc. + +`useFacet` composable is used primarily on the Category Page to display products matching specified filters. + +Use the `search` method to fetch the products. The response is available in the `result` object. + +```vue + +``` + +For a full list of parameters, please refer to the [AgnosticFacetSearchParams](../core/api-reference/core.agnosticfacetsearchparams.html) interface. + +## Accessing catalog data + +Once data is loaded using `useFacet`, access it using `facetGetters`. Get the data such as products, sorting and filtering options, pagination, and much more. + +```vue{4,22-36} + +``` + +For a full list of available getters, please refer to the [FacetsGetters](../core/api-reference/core.facetsgetters.html) interface. + +The image below shows where each of these getters fits into a Category page. + +![An example showing how each getter provides data for different parts of the Category page](./../images/faceting.jpg) diff --git a/packages/core/docs/commercetools/guide/user-profile.md b/packages/core/docs/commercetools/guide/user-profile.md new file mode 100644 index 0000000000..b8a823f245 --- /dev/null +++ b/packages/core/docs/commercetools/guide/user-profile.md @@ -0,0 +1,289 @@ +# User profile + +## Loading current user + +To access the data of the currently logged-in user, you can use the `user` property of `useUser` composable. + +```js{8,16} +import { useUser } from '@vue-storefront/commercetools'; +import { onSSR } from '@vue-storefront/core'; + +export default { + setup () { + const { + load, + user + } = useUser(); + + onSSR(async () => { + await load(); + }); + + return { + user + }; + } +} +``` + +`user` property will return `null` if the user is not logged in. `userGetters` should handle such cases and return empty data like `''`, `[]` etc., depending on the expected return data type. To prevent empty elements in the template, it's a good practice to check if the user is logged in before using getters. + +```vue{3-5} + + + +``` + +## Updating user credentials + +Updating user data (except for the current password, which is described in the [Changing password](#changing-password) section) can be done using `updateUser` method in `useUser` composable. + +```js +import { useUser } from '@vue-storefront/commercetools'; + +export default { + setup () { + const { error, updateUser } = useUser(); + + const onSubmit = async (formData) => { + await updateUser({ user: formData }); + // "error.value.updateUser" should be empty if request was successful + }; + + return { + onSubmit + }; + } +} +``` + +## Changing password + +Updating user password can be done using `changePassword` method in `useUser` composable. It requires the current and new password to confirm user identity. + +```js +import { useUser } from '@vue-storefront/commercetools'; + +export default { + setup () { + const { error, changePassword } = useUser(); + + const onSubmit = async (formData) => { + await changePassword({ + current: formData.currentPassword, + new: formData.newPassword + }); + // "error.value.changePassword" should be empty if request was successful + }; + + return { + onSubmit + }; + } +} +``` + +## Managing addresses (billing and shipping) + +Managing billing and shipping addresses is done using [useUserBilling](/core/api-reference/core.useuserbilling.html) and [useUserShipping](/core/api-reference/core.useusershipping.html) composables. + +Both have an almost identical signature (properties, methods, and getters), so the examples below will only show usage of `useUserBilling`. + +### Displaying a list of addresses + +To get a list of addresses, use `load` and `billing` or `shipping` properties and `getAddresses` method on the corresponding getter. + +```vue + + + +``` + +### Adding, updating, and deleting addresses + +`useUserBilling` and `useUserShipping` composables expose number of methods to manage addresses: + +* `addAddress` +* `deleteAddress` +* `updateAddress` +* `setDefault` + +Below is the example of using `deleteAddress` method. + +```vue{7-9,23,32} + + + +``` + +For more information, please refer to documentation for [useUserBilling](/core/api-reference/core.useuserbilling.html) and [useUserShipping](/core/api-reference/core.useusershipping.html) composables. + +## Displaying user orders + +To get a list of orders, use `search` and `orders` properties and `getItems` method on `orderGetters`. + +```vue + + + +``` + +For more information, please refer to documentation for [useUserOrder](/core/api-reference/core.useuserorder.html) composable. + +## Protecting user profile routes + +If there is a page that should be accessible only to logged-in users, such as user profile, you can use `is-authenticated` middleware in the page-level component: + +```js +export default { + middleware: [ + 'is-authenticated' + ] +} +``` +## Integration References + +### `useUser` + + + +### `useUserBilling` + + + +### `useUserShipping` + + diff --git a/packages/core/docs/commercetools/guide/wishlist.md b/packages/core/docs/commercetools/guide/wishlist.md new file mode 100644 index 0000000000..516c81471b --- /dev/null +++ b/packages/core/docs/commercetools/guide/wishlist.md @@ -0,0 +1,430 @@ +# Wishlist + +Customer's cart can be loaded using `useWishlist` composable and data can be accessed using `wishlistGetters`. + +## Loading and creating the wishlist + +The `load` method will load your cart from the server or create a new one if it doesn't exist. The `wishlist` object will be `null` until you load it. + +```vue + +``` + + +## Adding an item to the wishlist + +To add the product to the wishlist, you can use `addItem` method: + +```vue + + +``` + +## Removing an item from the wishlist + +To remove an item from the cart, use `removeItem` method. + +```vue + + +``` + +## Checking if an item is on the wishlist + +To check if a product is already on the wishlist, pass it to `isInWishlist` method: + +```vue + + +``` + +## Removing all wishlist items at once + +Cleaning the wishlist can be achieved by `clear` property. + +```vue + + +``` + +## Summary + +### Common usage example + +Here is an example of how both composables can be used in real-life applications. We have three components: a product list, a cart, and a wishlist. In the examples, we cover the logic of adding/removing items from the wish list and cart, working with getters, and loading state. + +The product list: + +```vue + + +``` + +The cart component: + +```vue + + +``` + +The wishlist component: + +```vue + + +``` diff --git a/packages/core/docs/commercetools/images/faceting.jpg b/packages/core/docs/commercetools/images/faceting.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49f6372266f4155f45790e2c1c3569a299777cdd GIT binary patch literal 142306 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 S_bOcd=kWd?_<#F%_WuIqy^~)6 literal 0 HcmV?d00001 diff --git a/packages/core/docs/commercetools/maintainers.md b/packages/core/docs/commercetools/maintainers.md index 8b7112aa72..58519aaa8e 100644 --- a/packages/core/docs/commercetools/maintainers.md +++ b/packages/core/docs/commercetools/maintainers.md @@ -1,6 +1,6 @@ # Maintainers and support -The Commercetools integration is developed and maintained by **Vue Storefront core team**. +The commercetools integration is developed and maintained by **Vue Storefront core team**. ## Support diff --git a/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md b/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md new file mode 100644 index 0000000000..b91df269d6 --- /dev/null +++ b/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md @@ -0,0 +1,35 @@ +# Upgrading to 1.2.0-rc.2 + +## Introduction + +This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.2. + +For more information about this version, refer to the [Overview](./overview.md) page. + +## Changes + +We made changes to the following files: +- added new composable `useBilling`, +- added new composable `useShipping`, +- added new composable `useShippingProvider` +- added new component `components/Checkout/VsfShippingProvider`, +- added new component `components/Checkout/VsfPaymentProviderMock`, +- added new components `pages/Checkout/Billing.vue`, +- added new helper `helpers/Checkout/getShippingMethodPrice.ts`, +- added new middleware `middleware/is-authenticated.js`, +- added `middleware.config.js`, +- updated `components/Checkout/UserBillingAddresses.vue`, +- updated `components/Checkout/UserShippingAddresses.vue`, +- updated `composables/useUiHelpers/index.ts`: + - renamed `changeSearchTerm` to `setTermForUrl`, + - added `getSearchTermFromUrl`, +- updated translations in `theme/lang`, +- updated `middleware/checkout.js`, +- updated `pages/Checkout.vue`, +- updated `pages/Checkout/Payment.vue`, +- updated `pages/Checkout/Shipping.vue`, +- updated icons in `static/icons`, +- updated `nuxt.config.js`, +- updated `package.json`, +- deleted component `pages/Checkout/OrderReview.vue`, +- deleted component `pages/Checkout/PersonalDetails.vue`. \ No newline at end of file diff --git a/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md b/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md new file mode 100644 index 0000000000..8e6791cd26 --- /dev/null +++ b/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md @@ -0,0 +1,18 @@ +# Upgrading to 1.2.0-rc.3 + +## Introduction + +This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.3. + +For more information about this version, refer to the [Overview](./overview.md) page. + +## Changes + +- Fixed mapping for product attributes with type `set`. +- Fixed cart getters to not throw errors when some properties are missing. +- Fixed error thrown by the Composition API plugin when importing `useWishlist`. + +We also made changes to the following files: +- updated `components/Checkout/VsfShippingProvider.vue`, +- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersForUrl.js`, +- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersFromUrl.js`. diff --git a/packages/core/docs/commercetools/migrate/1.2.0/index.md b/packages/core/docs/commercetools/migrate/1.2.0/index.md new file mode 100644 index 0000000000..34d2a35354 --- /dev/null +++ b/packages/core/docs/commercetools/migrate/1.2.0/index.md @@ -0,0 +1,33 @@ +# Upgrading to 1.2.0 + +## Introduction + +This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0. + +For more information about this version, refer to the [Overview](./overview.md) page. + +## Changes + +- Added E2E (cypress) tests: + - use `yarn test:e2e` to start Cypress, + - use `test:e2e:hl` to run Cypress tests in headless mode. Useful for running the tests in CI/CD workflows, + - use `test:e2e:generate:report` to generate Cypress report. +- **[BREAKING]** Fixed helpers used for search on the Category page to read `phrase` URL query string instead of `term`. +- Added `SfLoader` to `VsfShippingProvider` to correctly handle the loading state. +- Added expiration time to `vsf-commercetools-token` cookie matching token expiration time received from commercetools. Previously session cookies were used, which browsers delete when the current session ends. This forced users to log in more often than necessary. +- Fixed an issue in the cart where API calls would result in `HTTP 413 Payload Too Large` error code due to large payload size. Cart method calls will now only include cart `id` and `version` instead of the whole cart object. + +We also made changes to the following files: +- updated `components/Checkout/CartPreview.vue`, +- updated `components/Checkout/UserBillingAddresses.vue`, +- updated `components/Checkout/UserShippingAddresses.vue`, +- updated `components/Checkout/VsfPaymentProviderMock.vue`, +- updated `components/Checkout/VsfShippingProvider.vue`, +- updated `components/MyAccount/BillingAddressForm.vue`, +- updated `components/MyAccount/PasswordResetForm.vue`, +- updated `components/MyAccount/ProfileUpdateForm.vue`, +- updated `components/MyAccount/ShippingAddressForm.vue`, +- updated `pages/Checkout/Billing.vue`, +- updated `pages/Checkout/Payment.vue`, +- updated `pages/Checkout/Shipping.vue`, +- updated `pages/Checkout/ThankYou.vue`. diff --git a/packages/core/docs/commercetools/migrate/1.3.0/index.md b/packages/core/docs/commercetools/migrate/1.3.0/index.md new file mode 100644 index 0000000000..3e2344a3ed --- /dev/null +++ b/packages/core/docs/commercetools/migrate/1.3.0/index.md @@ -0,0 +1,27 @@ +# Upgrading to 1.3.0 + +## Introduction + +In 2.4.0 release, we introduce Forgot Password functionality and basic support for Stores and Channels in commercetools - you can now select a specific store and its corresponding channel, e.g., to display prices for a selected channel. We also fix some bugs related to Checkout forms and add new getters. + +## Changes + +- **[BREAKING]** Enable the purchase of an item with selected supply channel and distribution channel +- Added `storeGetters`, `useStore` composable and plugin for creating locale, currency, and country cookies +- Added `forgotPasswordGetters` and `useForgotPassword` composable +- Added `getProductSku` getter to `productGetters` +- Extended `middleware.config.js` with `inventoryMode` optional property - when added to the configuration, Inventory Mode is set on cart creation +- Added smartphone only promo code input +- Removed hardcoded link to the category in `SearchResults.vue` +- Replaced mocked email address in MyProfile password change tab to active user email +- Fixed bug with input characters limits on Checkout forms preventing submitting the form with a street name less than five characters long and apartment number with less than two characters long +- Added e2e tests for Checkout + +We also made changes to the following files: +- Added `pages/MyAccount/MyProfile.vue`. +- Updated `components/MyAccount/BillingAddressForm.vue`. +- Updated `components/MyAccount/ShippingAddressForm.vue`. +- Updated `pages/Checkout/Billing.vue`. +- Updated `pages/Checkout/Payment.vue`. +- Updated `pages/Checkout/Shipping.vue`. +- Updated `lang/de.js` and `lang/en.js`. diff --git a/packages/core/docs/commercetools/migrate/index.md b/packages/core/docs/commercetools/migrate/index.md new file mode 100644 index 0000000000..493b2ae9a2 --- /dev/null +++ b/packages/core/docs/commercetools/migrate/index.md @@ -0,0 +1,6 @@ +# Migration guides + +- [1.3.0](./1.3.0/index.md) +- [1.2.0](./1.2.0/index.md) +- [1.2.0-rc.3](./1.2.0-rc.3/index.md) +- [1.2.0-rc.2](./1.2.0-rc.2/index.md) diff --git a/packages/core/docs/commercetools/use-facet.md b/packages/core/docs/commercetools/use-facet.md index 856c0282df..e2f523423a 100644 --- a/packages/core/docs/commercetools/use-facet.md +++ b/packages/core/docs/commercetools/use-facet.md @@ -1,7 +1,7 @@ # `useFacet` :::warning -This feature is a part of our commercial offering but also exists in the Open Source version of our commercetools integration. +This feature is a part of our commercial offering but also exists in the open-source version of our commercetools integration. Open Source implementation relies on GraphQL API (internally using `getProduct` and `getCategory` composables), which doesn't provide full faceting capabilities as does the dedicated REST-based faceting API offered in our Enterprise version. Please [contact our Sales team](https://www.vuestorefront.io/contact/sales) if you'd like to get access to it. ::: @@ -42,7 +42,7 @@ interface AgnosticFacetSearchParams { - `loading` - reactive object containing information about the loading state of `search`. -- `error` - reactive object containing the error message, if `search` failed for any reason. +- `error` - reactive object containing the error message if `search` failed for any reason. ```ts interface UseFacetErrors { diff --git a/packages/core/docs/composables/use-cart.md b/packages/core/docs/composables/use-cart.md index ce0a2b44c1..f37de360f4 100644 --- a/packages/core/docs/composables/use-cart.md +++ b/packages/core/docs/composables/use-cart.md @@ -3,7 +3,7 @@ ## When to use it? Use `useCart` to: -- fetch current cart +- fetch the current cart - add/remove/change quantity of cart items - apply/remove discount coupons - check if a product is already in the cart diff --git a/packages/core/docs/composables/use-user.md b/packages/core/docs/composables/use-user.md index 04fb3d30ec..69b7111962 100644 --- a/packages/core/docs/composables/use-user.md +++ b/packages/core/docs/composables/use-user.md @@ -4,7 +4,7 @@ Use `useUser` to: - manage user authentication -- manage authentication data like email address, login or password. +- manage authentication data like email address, login, or password. If you want to fetch/save other user data you should use the following composables: - [`useUserBilling`](./use-user-billing.md) diff --git a/packages/core/docs/composables/use-wishlist.md b/packages/core/docs/composables/use-wishlist.md index 171d2f2f0e..d1a9ae88d0 100644 --- a/packages/core/docs/composables/use-wishlist.md +++ b/packages/core/docs/composables/use-wishlist.md @@ -5,7 +5,7 @@ Use `useWishlist` to: - fetch current wishlist - add/remove/change quantity of wishlist items -- check if a product is already in the wishlist +- check if a product is already on the wishlist ## How to use it in your project? diff --git a/packages/core/docs/contributing/README.md b/packages/core/docs/contributing/README.md index 01cee5af0a..73488d55c2 100644 --- a/packages/core/docs/contributing/README.md +++ b/packages/core/docs/contributing/README.md @@ -1,46 +1,12 @@ -# Contributing +# Contribution basics -We are delighted that you want to contribute to Vue Storefront. But first, you need to know that we use some standards to maintain a good community and have an aligned code history. +If you want to contribute to Vue Storefront 2 you should: -## Starting +1. Pick an issue from [our GitHub](https://github.com/vuestorefront/vue-storefront/) with a `Next` label +2. Comment on the issues that you'd like to work on it. +3. Fork our repository and create a new branch where you will develop the issue. +4. When you finish work on your issue, follow this [instruction](/contributing/creating-changelog) to create information regarding this issue for our changelog. +5. Propose a Pull Request with title following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) +6. Wait for a review of a core team member. We will write down our suggestions to your Pull Request or just merge it. -To start your contribution, you first can pick an issue from our [GitHub](https://github.com/DivanteLtd/vue-storefront/) that has a label [`bug`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3Abug), [`feature request`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature+request%22), [`docs`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3Adocs), [`good first issue`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or you can create your issue alongside your pull request. - -## Coding Rules - -To keep the code base of our repository neat, we apply a set of rules for our contributors. These rules are established by our core maintainers, so you will find an organized code repository no matter where you come. - -## Code Standards - -- `eslint` is king -- Favor micro-library over swiss army knives (`rimraf`, `ncp` vs. `fs-extra`) - Just in case you really need one :) -- Follow the coding naming [style and conventions](api-design-philosophy.html) -- Always provide a [changelog](creating-changelog.html) and update the documentation if needed -- Add tests for your changes, and see if the current tests are no conflicting with the changes you made - -## Commit standards - -To create a commit history line where everyone can understand and follow the core maintainers, use a set of common rules that is simple and easy to use. - ->To make everyone's life easier, the repository is commitizen friendly and provides the npm run-script `commit`. - -- Use the [conventional-changelog](https://github.com/conventional-changelog) pattern -- We have husky commit message hook available -- Always use present tense phrases -- The commit message must have a maximum of 100 characters -- The commit message format must be in the format `$type($scope): $message` - -## Create a pull request - -Being part of an open-source project is one of a kind experience. Where you will learn, improve your skill and help everyone in the community at the same time. - -We have to remember to check our checklist before opening a pull request and make sure that the PR follows the standards so it can be approved faster. - -- The code follow our [code standards](#code-standards) -- The commit line follow our [commit standards](#commit-standards) -- The docs have been updated (if needed) -- The changelog has been updated -- The pull request template is fully filled with information about the PR -- The CLA on the PR is signed by the commits authors -- There are no conflicts on the pull request -- All GitHub actions has passed +Thank you for your involvement! \ No newline at end of file diff --git a/packages/core/docs/contributing/api-design-philosophy.md b/packages/core/docs/contributing/api-design-philosophy.md index 2a4cbc7d76..498e457e98 100644 --- a/packages/core/docs/contributing/api-design-philosophy.md +++ b/packages/core/docs/contributing/api-design-philosophy.md @@ -1,17 +1,17 @@ # Vue Storefront API Design Philosophy -While designing something so complex as Vue Storefront it's vital to set up rules that will guide us when designing APIs. The purpose of those rules is to make sure that problems ale solved in a similar, predictable and consistent to understand way which will highly contribute to the learning curve of the framework itself. +While designing something so complex as Vue Storefront, it's vital to set up rules that will guide us when designing APIs. The purpose of those rules is to make sure that problems are solved in a similar, predictable, and consistent to understand way, which will highly contribute to the learning curve of the framework itself. ## General rules -1. We build **simple**, **declarative** and **general-purpose** APIs that are not tied to implementation details or a specific solution to a problem. That way we can ensure that our APIs will remain general-purpose and won't break on updates even if we do heavy changes in the underlying business logic. -2. API Surface should be possibly minimal. If there is a feature that can be achieved with already existing APIs we shouldn't add new ones just to make it simplier. -3. Focus on good defaults and embracing [convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) paradigm. Every API should work as it is for most of the use cases and have ability to be configured for other ones. -4. If you introduce a new, commonly used feature (like cache) try to provide a default configuration out of the box and let users customize it so they don't have to configure for the most common use cases, only for custom ones. This approach will dreastically reduce the number of boilerplate code users has to write. +1. We build **simple**, **declarative**, and **general-purpose** APIs that are not tied to implementation details or a specific solution to a problem. That way, we can ensure that our APIs will remain general-purpose and will not break on updates even if we do heavy changes in the underlying business logic. +2. API Surface should be possibly minimal. If there is a feature that can be achieved with already existing APIs, we shouldn't add new ones just to make it simpler. +3. Focus on good defaults and embracing [convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) paradigm. Every API should work as it is for most of the use cases and have the ability to be configured for other ones. +4. If you introduce a new, commonly used feature (like cache), try to provide a default configuration out of the box and let users customize it, so they don't have to configure for the most common use cases, only for custom ones. This approach will drastically reduce the number of boilerplate code users has to write. ```js -import { ueProduct } from '@vue-storefront/{eCommerce}' +import { useProduct } from '@vue-storefront/{INTEGRATION}' import { cacheManager } from '@vue-storefront/core' const { search } = useProduct() @@ -25,7 +25,7 @@ cacheManager.setTags((tags) => { return tags }) ``` -5. APIs should not limit the users. If we can't fulfill all use cases with parameters we should provide extension points so users can do this by themselves. +5. APIs should not limit the users. If we can't fulfill all use cases with parameters, we should provide extension points so users can do this by themselves. 6. Same code should work on every platform (excluding specific object properties and search params) 7. Follow Domain-Driven Design principles. Try to keep everything related to a specific domain within its composable. ``` @@ -57,18 +57,18 @@ const removeFromCart = async (product: CART_ITEM, customQuery?: CustomQuery) => logger: customLogger }] ``` -10. If a feature is platform-specific and not shared across whole application provide integration through its config/nuxt module. +10. If a feature is platform-specific and not shared across the whole application, provide integration through its config/nuxt module. 11. Provide a core interface for every feature, no matter if its paid or not (implementation can be paid, the way of implementing this feature by the user has to be always provided) ## Composables -We try to cover each subdomain of the eCommerce domain with a dedicated composable. For example we have a composable for Users Management domain, inventory domain, product catalog domain etc. If you have to add a new feature always think about business domain it correlates to and based on that decide if it should be a new composable or an existing one. +We try to cover each subdomain of the eCommerce domain with a dedicated composable. For example, we have a composable for Users Management domain, inventory domain, product catalog domain, etc. If you have to add a new feature, always think about the business domain it correlates to and, based on that, decide if it should be a new composable or an existing one. -If composables share the same category/prefix it means that they most likely also share the same context eg. `useUserOrder` `useUserShipping` `useUserBilling` are all subcomposables of `useUser` and their content depends on this composable. +If composables share the same category/prefix, it means that they most likely also share the same context, e.g., `useUserOrder` `useUserShipping` `useUserBilling` are all sub-composables of `useUser`, and their content depends on this composable. -Each composable has usually 3 pieces: -- main data object (eg `products`) -- supportive data object/s (eg `loading`, `error`) +Each composable usually has three pieces: +- main data object (e.g. `products`) +- supportive data object/s (e.g. `loading`, `error`) - search/load function (eg `search`) ```js @@ -77,5 +77,5 @@ const { search, products, loading, erro } = useProduct() ### search or load As a rule of thumb use -- `search` when you have to pass some search parameters (eg. in products search) -- `load` when you just have to load some content based on cookies/local storage etc (eg. cart load) \ No newline at end of file +- `search` when you have to pass some search parameters (e.g., in products search) +- `load` when you just have to load some content based on cookies/local storage etc. (e.g., cart load) \ No newline at end of file diff --git a/packages/core/docs/contributing/changelog.md b/packages/core/docs/contributing/changelog.md index d8af58f1d7..64f8a5aa58 100644 --- a/packages/core/docs/contributing/changelog.md +++ b/packages/core/docs/contributing/changelog.md @@ -1,235 +1,258 @@ # Changelog +## 2.4.2 + +- **[BREAKING]** Fix loading user and cart information ([6265](https://github.com/vuestorefront/vue-storefront/pull/6265/)) - [Filip Sobol](https://github.com/filipsobol) + + | Before | After | Comment | Module | + | ------ | ----- | ------- | ------ | + | &#x60;loadCart&#x60; was called directly inside &#x60;setup&#x60; method in &#x60;CartSidebar.vue&#x60; component | &#x60;loadCart&#x60; is called inside &#x60;onSSR&#x60; callback in &#x60;CartSidebar.vue&#x60; component | Calling &#x60;loadCart&#x60; directly inside &#x60;setup&#x60; method caused hydration issues, since cart information was not properly loaded during SSR | Base theme | + ## 2.4.1 -- Fix `@vue-storefront/cache` package ([#6198](https://github.com/vuestorefront/vue-storefront/pull/6198)) - [Filip Sobol](https://github.com/filipsobol) -, -- Revert changes to Webpack configuration and Google font loading ([#6203](https://github.com/vuestorefront/vue-storefront/pull/6203)) - [Filip Sobol](https://github.com/filipsobol) -, -- Fix addToCart request body structure in e2e tests ([#6205](https://github.com/vuestorefront/vue-storefront/pull/6207)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) +- Fix `@vue-storefront/cache` package ([#6198](https://github.com/vuestorefront/vue-storefront/pull/6198)) - [Filip Sobol](https://github.com/filipsobol) + +- Revert changes to Webpack configuration and Google font loading ([#6203](https://github.com/vuestorefront/vue-storefront/pull/6203)) - [Filip Sobol](https://github.com/filipsobol) + +- Fix addToCart request body structure in e2e tests ([#6205](https://github.com/vuestorefront/vue-storefront/pull/6207)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) ## 2.4.0 -- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) -, -- Updates Category.vue in nuxt-theme module; enables wishlist-related actions being triggered depending on current wishlist state ([#5756](https://github.com/vuestorefront/vue-storefront/issues/5756)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) -, -- Added customQuery parameter for useUserFactory methods ([#5883](https://github.com/vuestorefront/vue-storefront/pull/5823)) - [vn-vlad](https://github.com/vn-vlad) -, -- Fix locale links in core and commercetools integration ([#5886](https://github.com/vuestorefront/vue-storefront/issues/5886)) - [Baroshem](https://github.com/Baroshem) -, -- cart item qty selector disabled on loading ([#5924](https://github.com/vuestorefront/vue-storefront/pull/5924)) - [vn-vlad](https://github.com/vn-vlad) -, -- Add "useStoreFactory" function and related type definitions ([#5945](https://github.com/vuestorefront/vue-storefront/pull/5945)) - [vn-vlad](https://github.com/vn-vlad) -, -- Add forgot password functionality ([#5968](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) -, -- fix/my account page not loading content pages list ([#5982](https://github.com/vuestorefront/vue-storefront/pull/5986)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) -, -- Add useSearchFactory implementation ([#6015](https://github.com/vuestorefront/vue-storefront/pull/6015)) - [vn-vlad](https://github.com/andrzejewsky) -, -- Remove `generate` command from `package.json` ([#6035](https://github.com/vuestorefront/vue-storefront/pull/6035)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) -, -- Export `UseFacetFactoryParams` interface, add generics to the `Context` interface, add minor fixes to base theme ([#6061](https://github.com/vuestorefront/vue-storefront/pull/6061)) - [Filip Sobol](https://github.com/filipsobol) -, -- Removed buttons on hero slider on homepage ([#6068](https://github.com/vuestorefront/vue-storefront/pull/6068)) - [Justyna Gieracka](https://github.com/justyna-13) -, -- Removed "Download app" banner form product and homepage ([#6069](https://github.com/vuestorefront/vue-storefront/pull/6069)) - [Justyna Gieracka](https://github.com/justyna-13) -, -- Linked banner grids buttons on homepage ([#6070](https://github.com/vuestorefront/vue-storefront/pull/6070)) - [Justyna Gieracka](https://github.com/justyna-13) -, -- Switch places between state and country inputs in shipping form ([#6071](https://github.com/vuestorefront/vue-storefront/pull/6071)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) -, -- Implement mobile menu ([#6077](https://github.com/vuestorefront/vue-storefront/pull/6077)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) -, -- Removed hardcoded link to category in SearchResults.vue ([#6081](https://github.com/vuestorefront/vue-storefront/pull/6081)) - [Justyna Gieracka](https://github.com/justyna-13) -, -- change the core logger behavior to match the console ([#6085](https://github.com/vuestorefront/vue-storefront/pull/6085)) - [bloodf](https://github.com/bloodf) -, -- Cache-control headers for home, product and category page ([#6093](https://github.com/vuestorefront/vue-storefront/pull/6093)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -, -- Add `checkout.js` middleware ([#6121](https://github.com/vuestorefront/vue-storefront/pull/6121)) - [Filip Sobol](https://github.com/filipsobol) -, -- Updates form validation scheme for street, number and city in the checkout and profile editing pages ([#6122](https://github.com/vuestorefront/vue-storefront/pull/6122)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) -, -- Fixed Nuxt-CLI spamming babel warning due plugin configuration ([#6123](https://github.com/vuestorefront/vue-storefront/pull/6123)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) -, +- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) + +- Updates Category.vue in nuxt-theme module; enables wishlist-related actions being triggered depending on current wishlist state ([#5756](https://github.com/vuestorefront/vue-storefront/issues/5756)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) + +- Added customQuery parameter for useUserFactory methods ([#5883](https://github.com/vuestorefront/vue-storefront/pull/5823)) - [vn-vlad](https://github.com/vn-vlad) + +- Fix locale links in core and commercetools integration ([#5886](https://github.com/vuestorefront/vue-storefront/issues/5886)) - [Baroshem](https://github.com/Baroshem) + +- cart item qty selector disabled on loading ([#5924](https://github.com/vuestorefront/vue-storefront/pull/5924)) - [vn-vlad](https://github.com/vn-vlad) + +- Add "useStoreFactory" function and related type definitions ([#5945](https://github.com/vuestorefront/vue-storefront/pull/5945)) - [vn-vlad](https://github.com/vn-vlad) + +- Add forgot password functionality ([#5968](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) + +- fix/my account page not loading content pages list ([#5982](https://github.com/vuestorefront/vue-storefront/pull/5986)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) + +- Add useSearchFactory implementation ([#6015](https://github.com/vuestorefront/vue-storefront/pull/6015)) - [vn-vlad](https://github.com/andrzejewsky) + +- Remove `generate` command from `package.json` ([#6035](https://github.com/vuestorefront/vue-storefront/pull/6035)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) + +- Export `UseFacetFactoryParams` interface, add generics to the `Context` interface, add minor fixes to base theme ([#6061](https://github.com/vuestorefront/vue-storefront/pull/6061)) - [Filip Sobol](https://github.com/filipsobol) + +- Removed buttons on hero slider on homepage ([#6068](https://github.com/vuestorefront/vue-storefront/pull/6068)) - [Justyna Gieracka](https://github.com/justyna-13) + +- Removed "Download app" banner form product and homepage ([#6069](https://github.com/vuestorefront/vue-storefront/pull/6069)) - [Justyna Gieracka](https://github.com/justyna-13) + +- Linked banner grids buttons on homepage ([#6070](https://github.com/vuestorefront/vue-storefront/pull/6070)) - [Justyna Gieracka](https://github.com/justyna-13) + +- Switch places between state and country inputs in shipping form ([#6071](https://github.com/vuestorefront/vue-storefront/pull/6071)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) + +- Implement mobile menu ([#6077](https://github.com/vuestorefront/vue-storefront/pull/6077)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) + +- Removed hardcoded link to category in SearchResults.vue ([#6081](https://github.com/vuestorefront/vue-storefront/pull/6081)) - [Justyna Gieracka](https://github.com/justyna-13) + +- change the core logger behavior to match the console ([#6085](https://github.com/vuestorefront/vue-storefront/pull/6085)) - [bloodf](https://github.com/bloodf) + +- Cache-control headers for home, product and category page ([#6093](https://github.com/vuestorefront/vue-storefront/pull/6093)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) + +- Add `checkout.js` middleware ([#6121](https://github.com/vuestorefront/vue-storefront/pull/6121)) - [Filip Sobol](https://github.com/filipsobol) + +- Updates form validation scheme for street, number and city in the checkout and profile editing pages ([#6122](https://github.com/vuestorefront/vue-storefront/pull/6122)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) + +- Fixed Nuxt-CLI spamming babel warning due plugin configuration ([#6123](https://github.com/vuestorefront/vue-storefront/pull/6123)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) + - [BREAKING] updated the removeCoupon interface to match the applyCoupon ([#6126](https://github.com/vuestorefront/vue-storefront/pull/6126)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables, -- Add new getter for orders total and change return value of searchOrders ([#6132](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) -, -- Removed the beta tag from the Shopify integration ([#6143](https://github.com/vuestorefront/vue-storefront/pull/6143)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) -, -- Fixed MyAccount page rendering ([#6171](https://github.com/vuestorefront/vue-storefront/pull/6172)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables + +- Add new getter for orders total and change return value of searchOrders ([#6132](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) + +- Removed the beta tag from the Shopify integration ([#6143](https://github.com/vuestorefront/vue-storefront/pull/6143)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) + +- Fixed MyAccount page rendering ([#6171](https://github.com/vuestorefront/vue-storefront/pull/6172)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) ## 2.3.3 -- Add args parameter to custom queries ([#5854](https://github.com/vuestorefront/vue-storefront/issues/5854)) - [andrzejewsky](https://github.com/andrzejewsky) -, -- Make useUser `login` parameters optional ([#5868](https://github.com/vuestorefront/vue-storefront/pull/5868)) - [Filip Sobol](https://github.com/filipsobol) +- Add args parameter to custom queries ([#5854](https://github.com/vuestorefront/vue-storefront/issues/5854)) - [andrzejewsky](https://github.com/andrzejewsky) + +- Make useUser `login` parameters optional ([#5868](https://github.com/vuestorefront/vue-storefront/pull/5868)) - [Filip Sobol](https://github.com/filipsobol) ## 2.3.0 -- update Storefront UI version ([#5437](https://github.com/vuestorefront/vue-storefront/pull/5437/files)) - [Justyna Gieracka](https://github.com/justyna-13) -, +- update Storefront UI version ([#5437](https://github.com/vuestorefront/vue-storefront/pull/5437/files)) - [Justyna Gieracka](https://github.com/justyna-13) + - [BREAKING] update Storefront UI version ([#5691](https://github.com/vuestorefront/vue-storefront/issues/5691)) - [Justyna Gieracka](https://github.com/justyna-13) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -toggleCategoryGridView | changeToCategoryGridView, changeToCategoryListView | toggleCategoryGridView has been divided into two functions: changeToCategoryGridView and changeToCategoryListView | /composables/useUiState.ts, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | toggleCategoryGridView | changeToCategoryGridView, changeToCategoryListView | toggleCategoryGridView has been divided into two functions: changeToCategoryGridView and changeToCategoryListView | /composables/useUiState.ts + - [BREAKING] mocked results for search ([#5709](https://github.com/vuestorefront/vue-storefront/pull/5709/files)) - [Justyna Gieracka](https://github.com/justyna-13) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -term | phrase | term is changed to phrase | acomposables/useUiHelpers/index.ts , -- added SfLoader to VsfShippingProvider to correctly handle loading state ([#5725](https://github.com/vuestorefront/vue-storefront/issues/5725)) - [Baroshem](https://github.com/baroshem) -, -- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) -, -- customQuery support for user billing/shipping ([#5746](https://github.com/vuestorefront/vue-storefront/pull/5781)) - [vn-vlad](https://github.com/vn-vlad) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | term | phrase | term is changed to phrase | acomposables/useUiHelpers/index.ts + +- added SfLoader to VsfShippingProvider to correctly handle loading state ([#5725](https://github.com/vuestorefront/vue-storefront/issues/5725)) - [Baroshem](https://github.com/baroshem) + +- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) + +- customQuery support for user billing/shipping ([#5746](https://github.com/vuestorefront/vue-storefront/pull/5781)) - [vn-vlad](https://github.com/vn-vlad) + - [BREAKING] Pass integration configuration to 'extendApp' ([#5774](https://github.com/vuestorefront/vue-storefront/pull/5774)) - [Filip Sobol](https://github.com/filipsobol) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -`extendApp` accepted only Express.js app as a parameter: `extendApp(app)` | `extendApp` accepts object containing `app` and `configuration` properties: `extendApp({ app, configuration })` | Allow access to integration configuration when extending application. | @vue-storefront/middleware, -- added missing class for text button ([#5827](https://github.com/vuestorefront/vue-storefront/issues/5827)) - [Justyna Gieracka](https://github.com/justyna-13) -, -- add _key to enhanceProduct ([#5829](https://github.com/vuestorefront/vue-storefront/issues/5829)) - [Baroshem](https://github.com/baroshem) -, -- add functionality to search products by ids ([#5847](https://github.com/vuestorefront/vue-storefront/issues/5847)) - [Baroshem](https://github.com/baroshem) + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | `extendApp` accepted only Express.js app as a parameter: `extendApp(app)` | `extendApp` accepts object containing `app` and `configuration` properties: `extendApp({ app, configuration })` | Allow access to integration configuration when extending application. | @vue-storefront/middleware + +- added missing class for text button ([#5827](https://github.com/vuestorefront/vue-storefront/issues/5827)) - [Justyna Gieracka](https://github.com/justyna-13) + +- add _key to enhanceProduct ([#5829](https://github.com/vuestorefront/vue-storefront/issues/5829)) - [Baroshem](https://github.com/baroshem) + +- add functionality to search products by ids ([#5847](https://github.com/vuestorefront/vue-storefront/issues/5847)) - [Baroshem](https://github.com/baroshem) ## 2.3.0-rc.3 -- Fix VsfShippingProvider to correctly show errors related to no shipping methods available for certain country ([#5463](https://github.com/vuestorefront/vue-storefront/issues/5463)) - [Baroshem](https://github.com/Baroshem) -, +- Fix VsfShippingProvider to correctly show errors related to no shipping methods available for certain country ([#5463](https://github.com/vuestorefront/vue-storefront/issues/5463)) - [Baroshem](https://github.com/Baroshem) + - [BREAKING] Fix infinite loading for login and register by implementing error handling in core module and in LoginModal ([#5508](https://github.com/vuestorefront/vue-storefront/issues/5508)) - [Baroshem](https://github.com/Baroshem) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -There was no error handling and thats why the infinite loading was appearing | Errors are handled immediately | add try/catch to middleware, set more appriopriate value to err.value in useUserFactory, and implement error handling in LoginModal | core/middleware, LoginModal, -- revert change https://github.com/vuestorefront/vue-storefront/pull/5593 as it was breaking the mobile view after latest release ([#5514_1](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Baroshem](https://github.com/Baroshem) -, -- removed helpers/filters from @vue-storefront/nuxt-theme and @vue-storefront/commercetools-theme because they are useless now ([#5620](https://github.com/vuestorefront/vue-storefront/issues/5620)) - [Kacper Małkowski](https://github.com/porithe/) -, -- add error handling for GraphQL queries with complexity over limit ([#5692](https://github.com/vuestorefront/vue-storefront/issues/5692)) - [Baroshem](https://github.com/Baroshem) -, -- extend #5692 thrown error to fix also this issue ([#5693](https://github.com/vuestorefront/vue-storefront/issues/5693)) - [Baroshem](https://github.com/Baroshem) -, -- Add ability to access express instance in the middleware extensions ([#5714](https://github.com/vuestorefront/vue-storefront/pull/5714)) - [andrzejewsky](https://github.com/andrzejewsky) + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | There was no error handling and thats why the infinite loading was appearing | Errors are handled immediately | add try/catch to middleware, set more appriopriate value to err.value in useUserFactory, and implement error handling in LoginModal | core/middleware, LoginModal + +- revert change https://github.com/vuestorefront/vue-storefront/pull/5593 as it was breaking the mobile view after latest release ([#5514_1](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Baroshem](https://github.com/Baroshem) + +- removed helpers/filters from @vue-storefront/nuxt-theme and @vue-storefront/commercetools-theme because they are useless now ([#5620](https://github.com/vuestorefront/vue-storefront/issues/5620)) - [Kacper Małkowski](https://github.com/porithe/) + +- add error handling for GraphQL queries with complexity over limit ([#5692](https://github.com/vuestorefront/vue-storefront/issues/5692)) - [Baroshem](https://github.com/Baroshem) + +- extend #5692 thrown error to fix also this issue ([#5693](https://github.com/vuestorefront/vue-storefront/issues/5693)) - [Baroshem](https://github.com/Baroshem) + +- Add ability to access express instance in the middleware extensions ([#5714](https://github.com/vuestorefront/vue-storefront/pull/5714)) - [andrzejewsky](https://github.com/andrzejewsky) ## 2.3.0-rc.2 -- added MegaMenu to theme ([#5267](https://github.com/vuestorefront/vue-storefront/issues/5267)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) -, +- added MegaMenu to theme ([#5267](https://github.com/vuestorefront/vue-storefront/issues/5267)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) + - [BREAKING] Implementation of api middleware ([#5361](https://github.com/vuestorefront/vue-storefront/pull/5361)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -apiClientFactory | apiClientFactory | Api client factory is being called only on our middleware. It is no longer supported in the borwser. For client-side interaction please use proxied version | core, -- added useUiNotification composable ([#5363](https://github.com/vuestorefront/vue-storefront/issues/5363)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) -, -- Moved dependencies from integration themes to nuxt-theme-module ([#5404](https://github.com/vuestorefront/vue-storefront/issues/5404)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | apiClientFactory | apiClientFactory | Api client factory is being called only on our middleware. It is no longer supported in the borwser. For client-side interaction please use proxied version | core + +- added useUiNotification composable ([#5363](https://github.com/vuestorefront/vue-storefront/issues/5363)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) + +- Moved dependencies from integration themes to nuxt-theme-module ([#5404](https://github.com/vuestorefront/vue-storefront/issues/5404)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) + - [BREAKING] New part of checkout - shipping details, inside core and commercetools ([#5419](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -Using checkoutGetters | Removed checkoutGetters | Accesing checkout-related properties directly | core, -CartPreview.vue uses checkoutGetters | CartPreview.vue is implemented per integration as we do not use getters for checkout-related stuff | We have to implement CartPreview component per integration | nuxt-theme-module, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | Using checkoutGetters | Removed checkoutGetters | Accesing checkout-related properties directly | core, + CartPreview.vue uses checkoutGetters | CartPreview.vue is implemented per integration as we do not use getters for checkout-related stuff | We have to implement CartPreview component per integration | nuxt-theme-module + - [BREAKING] Added `is-authenticated` middleware to protect user profile routes from guest access. By default it emits an error message asking to implement vendor-specific validation. ([#5442_1](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -- | [Link](https://docs.vuestorefront.io/v2/integrate/integration-guide.html#creating-a-middleware) | Create new middleware that checks if customer is logged in, and if not, redirects to homepage. | middleware/is-authenticated.js, -- Updated the default logger to use matching console log levels, like debug, info, warn, error. ([#5442_2](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) -, -- Improvements for api middleware ([#5500](https://github.com/vuestorefront/vue-storefront/pull/5500)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -, -- Categories loader overlaping footer fixed ([#5507](https://github.com/vuestorefront/vue-storefront/issues/5507)) - [Justyna Gieracka](https://github.com/justyna-13) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | - | [Link](https://docs.vuestorefront.io/v2/integrate/integration-guide.html#creating-a-middleware) | Create new middleware that checks if customer is logged in, and if not, redirects to homepage. | middleware/is-authenticated.js + +- Updated the default logger to use matching console log levels, like debug, info, warn, error. ([#5442_2](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) + +- Improvements for api middleware ([#5500](https://github.com/vuestorefront/vue-storefront/pull/5500)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) + +- Categories loader overlaping footer fixed ([#5507](https://github.com/vuestorefront/vue-storefront/issues/5507)) - [Justyna Gieracka](https://github.com/justyna-13) + - [BREAKING] Unify case of theme's directories ([#5511](https://github.com/vuestorefront/vue-storefront/issues/5511)) - [Fifciu](https://github.com/Fifciu) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | nuxt-theme-module, -pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | commercetools-theme, -- removed overflow-x: hidden from html tag ([#5514](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Przemysław Rakowski](https://github.com/RakowskiPrzemyslaw) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | nuxt-theme-module, + pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | commercetools-theme + +- removed overflow-x: hidden from html tag ([#5514](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Przemysław Rakowski](https://github.com/RakowskiPrzemyslaw) + - [BREAKING] Update Cache library ([#5524](https://github.com/vuestorefront/vue-storefront/pull/5524)) - [Filip Sobol](https://github.com/filipsobol) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -- | - | Please see "Advanced > SSR Cache" and "Build integration > Cache drive" pages in the documentation for more information. | @vue-storefront/cache, -- Add typings for middleware ([#5530](https://github.com/vuestorefront/vue-storefront/pull/5530)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | - | - | Please see "Advanced > SSR Cache" and "Build integration > Cache drive" pages in the documentation for more information. | @vue-storefront/cache + +- Add typings for middleware ([#5530](https://github.com/vuestorefront/vue-storefront/pull/5530)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) + - [BREAKING] New part of checkout - useBillingFactory, inside core ([#5552](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -Integrations implement useCheckout | Integrations implement useBilling | New factories dedicated for the checkout | core, -- Added 'CartPreview.vue' components to 'components/Checkout' directory asking for integration-specific implementation. ([#5561](https://github.com/vuestorefront/vue-storefront/pull/5561)) - [Filip Sobol](https://github.com/filipsobol) -, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | Integrations implement useCheckout | Integrations implement useBilling | New factories dedicated for the checkout | core + +- Added 'CartPreview.vue' components to 'components/Checkout' directory asking for integration-specific implementation. ([#5561](https://github.com/vuestorefront/vue-storefront/pull/5561)) - [Filip Sobol](https://github.com/filipsobol) + - [BREAKING] Quick search ([#5566](https://github.com/vuestorefront/vue-storefront/issues/5566)) - [Justyna Gieracka](https://github.com/justyna-13) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -{ changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, - | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts, - | SearchResults.vue | Added new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, -AppHeader.vue | AppHeader.vue | Modified 'AppHeader.vue' to add use new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | { changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, + | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts, + | SearchResults.vue | Added new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, + AppHeader.vue | AppHeader.vue | Modified 'AppHeader.vue' to add use new 'SearchResults.vue' component | @vue-storefront/nuxt-theme + - [BREAKING] Implementation of api middleware ([#5577](https://github.com/vuestorefront/vue-storefront/pull/5577)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | core, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | core + - [BREAKING] Add 'useMakeOrder' and rename composable 'useUserOrders' to 'useUserOrder' ([#5584](https://github.com/vuestorefront/vue-storefront/pull/5584)) - [Filip Sobol](https://github.com/filipsobol) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -useUserOrders | useUserOrder | Renamed composable 'useUserOrders' to 'useUserOrder'. | core and commercetools, -'placeOrder' from 'useCheckout' composable was used to place new orders. | Added new 'useMakeOrder' composable and used it's 'make' function to place new orders. | Use new 'useMakeOrder' composable to place orders. | core and commercetools, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | useUserOrders | useUserOrder | Renamed composable 'useUserOrders' to 'useUserOrder'. | core and commercetools, + 'placeOrder' from 'useCheckout' composable was used to place new orders. | Added new 'useMakeOrder' composable and used it's 'make' function to place new orders. | Use new 'useMakeOrder' composable to place orders. | core and commercetools + - [BREAKING] New Payment API for Checkout ([#5587](https://github.com/vuestorefront/vue-storefront/pull/5587)) - [Fifciu](https://github.com/Fifciu) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | core, + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | core -- Fix subtotal prices displayed in CartSidebar.vue ([#5932](https://github.com/vuestorefront/vue-storefront/pull/5932)) - [Filip Sobol](https://github.com/filipsobol) +- Fix subtotal prices displayed in CartSidebar.vue ([#5932](https://github.com/vuestorefront/vue-storefront/pull/5932)) - [Filip Sobol](https://github.com/filipsobol) - [BREAKING] fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist ([#5592](https://github.com/vuestorefront/vue-storefront/issues/5592)) - [Jakub Andrzejewski](https://github.com/Baroshem) -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -variables and methods had names isOnCart and isOnWishlist | variables and methods have names isInCart and isInWishlist | fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist | useCart/useWishlist, -- Fix outside click handler for app header search ([#5595](https://github.com/vuestorefront/vue-storefront/pull/5595)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) -, -- save method for useShippingProvider, deprecated field ShippingMethod.description switched to ShippingMethod.localizedDescription, fixed cart getter for counting totals ([#5598](https://github.com/vuestorefront/vue-storefront/pull/5598)) - [Fifciu](https://github.com/Fifciu) -, -- state field in useShippingProvider instead of response, setState method ([#5624](https://github.com/vuestorefront/vue-storefront/pull/5624)) - [Fifciu](https://github.com/Fifciu) -, -- Make "ejs" a production dependency ([#5630](https://github.com/vuestorefront/vue-storefront/pull/5630)) - [Filip Sobol](https://github.com/filipsobol) -, -- Fix for error states reactivity in core factories and example of watching errors in docs ([#5654](https://github.com/vuestorefront/vue-storefront/pull/5654)) - [Fifciu](https://github.com/Fifciu) -, -- Properly parse module options by using "<%= serialize(options) %>" instead of "JSON.parse('<%= JSON.stringify(options) %>')" ([#5664](https://github.com/vuestorefront/vue-storefront/pull/5664)) - [Filip Sobol](https://github.com/filipsobol) -, -- Lazy hydrating sidebar on category's view when idle not when visible, so it works properly with EE useFacet ([#5667](https://github.com/vuestorefront/vue-storefront/pull/5667)) - [Fifciu](https://github.com/Fifciu) - - - -# 2.2.3 + | Before | After | Comment | Module + | ------ | ----- | ------ | ------ + | variables and methods had names isOnCart and isOnWishlist | variables and methods have names isInCart and isInWishlist | fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist | useCart/useWishlist + +- Fix outside click handler for app header search ([#5595](https://github.com/vuestorefront/vue-storefront/pull/5595)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) + +- save method for useShippingProvider, deprecated field ShippingMethod.description switched to ShippingMethod.localizedDescription, fixed cart getter for counting totals ([#5598](https://github.com/vuestorefront/vue-storefront/pull/5598)) - [Fifciu](https://github.com/Fifciu) + +- state field in useShippingProvider instead of response, setState method ([#5624](https://github.com/vuestorefront/vue-storefront/pull/5624)) - [Fifciu](https://github.com/Fifciu) + +- Make "ejs" a production dependency ([#5630](https://github.com/vuestorefront/vue-storefront/pull/5630)) - [Filip Sobol](https://github.com/filipsobol) + +- Fix for error states reactivity in core factories and example of watching errors in docs ([#5654](https://github.com/vuestorefront/vue-storefront/pull/5654)) - [Fifciu](https://github.com/Fifciu) + +- Properly parse module options by using "<%= serialize(options) %>" instead of "JSON.parse('<%= JSON.stringify(options) %>')" ([#5664](https://github.com/vuestorefront/vue-storefront/pull/5664)) - [Filip Sobol](https://github.com/filipsobol) + +- Lazy hydrating sidebar on category's view when idle not when visible, so it works properly with EE useFacet ([#5667](https://github.com/vuestorefront/vue-storefront/pull/5667)) - [Fifciu](https://github.com/Fifciu) + + + +## 2.2.3 - fix register function from CT useUser composable allows user to log in [#5613](https://github.com/vuestorefront/vue-storefront/issues/5613) -# 2.2.1 +## 2.2.1 - fixed `vue-lazy-hydration` dependency in `nuxt-theme-module` and improved typings in Boilerplate ([#5403](https://github.com/DivanteLtd/vue-storefront/issues/5403)) ## 2.2.0 diff --git a/packages/core/docs/contributing/creating-changelog.md b/packages/core/docs/contributing/creating-changelog.md index 9a71f0ba45..b157a41018 100644 --- a/packages/core/docs/contributing/creating-changelog.md +++ b/packages/core/docs/contributing/creating-changelog.md @@ -6,27 +6,27 @@ There are just a few steps to do in order to create the changelog. ## Steps -1. Go to folder `/changelog`, create a `.js` file, and give it the same name as a number of your current issue from GitHub. For example `4523.js` -2. Copy this code below, paste it inside your `.js` file and fill it in with your data +1. Go to folder `/changelog`, create a `.js` file, and give it the same name as a number of your current issue from GitHub. For example, `4523.js`. +2. Copy this code below, paste it inside your `.js` file and fill it in with your data. ```js module.exports = { - description: "description of your changes", - link: "link to your issue", + description: 'description of your changes', + link: 'link to your issue', isBreaking: true or false, //(depends if you applied some breaking changes), breakingChanges: [ //leave it empty if there aren't any breaking changes { - module: "affected module", - before: "how it was", - after: "how it is", - comment: "quick migration guide" + module: 'affected module', + before: 'how it was', + after: 'how it is', + comment: 'quick migration guide' } ], - author: "your name", - linkToGitHubAccount: "link to your github account", -} + author: 'your name', + linkToGitHubAccount: 'link to your github account' +}; ``` -3. Save all changes and that's all +3. Save all changes. @@ -92,7 +92,8 @@ export default ({ ``` -Inside your application you'll also need to register your UI components that willing to render. +Inside your application, you'll also need to register the UI components +to render. ## Usage example in the real application diff --git a/packages/core/docs/integrate/extending-integrations.md b/packages/core/docs/integrate/extending-integrations.md new file mode 100644 index 0000000000..6b65fb276b --- /dev/null +++ b/packages/core/docs/integrate/extending-integrations.md @@ -0,0 +1,65 @@ +# Extending integrations + +## Introduction + +Server Middleware extensions allow to extend Express.js server, register additional API endpoints, or inject into the lifecycle of a request sent to a given Server Middleware integration from the application. + +
+ Middleware Extensions +
+ +## Creating an extension + +You can define as many extensions as you want. Each extension has the following structure: + +```js +const extension = { + name: 'extension-name', + extendApiMethods: { + getProduct: async () => { /* ... */ } + }, + extendApp: (app) => { /* ... */ }, + hooks: (req, res) => { + return { + beforeCreate: ({ configuration }) => configuration, + afterCreate: ({ configuration }) => configuration, + beforeCall: ({ configuration, callName, args }) => args, + afterCall: ({ configuration, callName, args, response }) => response + } + } +} +``` + +- `name` - defines the unique name of the extension +- `extendApiMethods` - overrides the original functions from API-client +- `extendApp` - a function that gives you access to the express.js app +- `hooks` - defines lifecycle hooks of API-client +- `hooks:beforeCreate` - called before API-client creates a connection. It accepts configuration as an argument, and must return it as well. You can use it to modify the configuration or merge with the default values. +- `hooks:afterCreate` - similar to the previous function, but called after the connection has been created. It accepts configuration as an argument, and must return it as well. +- `hooks:beforeCall` - called before each API-client function. We have access to the configuration, function name, and its arguments. This function must return the arguments, and based on the input parameters we can change it. +- `hooks:afterCall` - called after each API-client function. We have access to the configuration, function name, and its arguments. This function must return the response, and based on the input parameters we can attach something to it. + +See the [ApiClientExtension interface](/core/api-reference/core.apiclientextension.html) for more information. + +## Registering an extension + +To register an extension, add it to the array returned from the `extensions` function of a given integration in the `middleware.config.js` file: + +```js +module.exports = { + integrations: { + : { + location: '@/server', + configuration: {} + extensions: (extensions) => [ + ...extensions, + { + name: 'our-extension' + hooks: () => { /* ... */} + } + ], + customQueries: {} + } + } +}; +``` diff --git a/packages/core/docs/integrate/extending-vue-storefront.md b/packages/core/docs/integrate/extending-vue-storefront.md new file mode 100644 index 0000000000..8749f19fc7 --- /dev/null +++ b/packages/core/docs/integrate/extending-vue-storefront.md @@ -0,0 +1,98 @@ +# Extending Vue Storefront + +## Introduction + +Extensibility is one of the key selling points of many frameworks, and Vue Storefront is no exception. There is a good reason for this - at some point, most projects need to extend the base of the framework to meet their needs, be it with a ready-to-use or a custom plugin. Well-thought-out extensions or plugins system enables flexibility to meet the demands of the most, even very diverse projects. On this page, we will discuss possible ways to extend Vue Storefront if the basic features are not enough for your project. + +First, you should consider which part of the application you need to extend - frontend, backend, or both. Depending on your needs, you may need to extend: + +- [Vue.js](#extending-vue-js) +- [Nuxt.js](#extending-nuxt-js) +- [Server Middleware](#extending-server-middleware) + +In the sections below, we describe when and how to extend each of them. Some also have links to ready-to-use extensions created by framework authors or the community to save you time. + +## Extending Vue.js + +Plugins allow adding global-level functionalities to Vue.js, such as components, methods, helpers, or directives. These mainly extend the frontend portion of the application and can be divided into two categories: + +- UI plugins; +- Non-UI plugins; + +:::tip Using Vue.js plugins in Nuxt.js project +See the [Nuxt.js plugins](#nuxt-js-plugins) section to see more information on using Vue.js plugins in the Nuxt.js project. +::: + +### Vue.js UI plugins + +UI plugins extend how the application looks or behaves on user interactions. They include plugins that add support for: + +- event handling; +- responsive design, resizing, scrolling, and animations; +- handling forms and validation; +- routing, lazy loading, lazy hydration, meta tags; + +For a list of Vue.js UI plugins, see the [UI Utilities](https://github.com/vuejs/awesome-vue#ui-utilities) section in [Awesome Vue.js](https://github.com/vuejs/awesome-vue) repository. + +### Vue.js non-UI plugins + +Non-UI plugins extend how the application works under the hood or handles state and storage. They include plugins that add support for: + +- making HTTP requests; +- internationalization (i18n); +- custom events; +- persistence (storage); +- state management; +- web workers; + +For a list of Vue.js UI plugins see the [Utilities](https://github.com/vuejs/awesome-vue#utilities) section in [Awesome Vue.js](https://github.com/vuejs/awesome-vue) repository. + +## Extending Nuxt.js + +Nuxt.js offers two ways of extending its functionalities: + +- plugins; +- modules and build modules; + +### Nuxt.js plugins + +Nuxt.js imports plugins in browser (client-only), server (server-only), or both before creating the root Vue.js application. For this reason, you can use them to register Vue.js plugins. + +See the [Plugins directory](https://nuxtjs.org/docs/2.x/directory-structure/plugins) page in Nuxt.js documentation to learn more. + +### Nuxt.js modules and build modules + +Nuxt.js modules can customize almost any aspect of your project. They are functions called sequentially on the server when the Nuxt.js application is booting. + +You can use them to: +- register Nuxt.js plugins; +- add support for various UI frameworks; +- enable PWA or AMP; +- optimize images and other static assets; +- create a sitemap, generate `robots.txt` file or meta tags for social media platforms; +- registering various HTTP clients, such as axios or Apollo; +- add Google Tag Manager, Google GTag; +- integrate with CMSs, payment providers, error monitoring software; + +See the [Modules](https://nuxtjs.org/docs/2.x/directory-structure/modules) page in Nuxt.js documentation to learn more and [Explore Nuxt Modules](https://modules.nuxtjs.org/) page to see a list of available modules. + +## Extending Server Middleware + +As you might have read on a page dedicated to the [Server Middleware](/advanced/server-middleware.html), it's an Express proxy that handles traffic between your application and external services, such as eCommerce or CMS platforms. Server Middleware configuration allows to: + +- register integrations; +- extend existing integrations using extensions; + +Integrations and extensions for Server Middleware are run only on the server. + +### Server Middleware integrations + +Server Middleware integrations connect Vue Storefront applications with other external services. For example, all eCommerce and CMS integrations listed on the [Integrations](/integrations/) page are Server Middleware integrations. + +See the [Server Middleware](/advanced/server-middleware.html) page to learn more and [Integrating eCommerce platform](/integrate/integration-guide.html) page if you want to create your integration. + +### Server Middleware extensions + +Server Middleware extensions add or modify functionalities of already existing Server Middleware integrations. They may extend the Express.js server, register additional API endpoints, or inject into the lifecycle of a request. + +See the [Extending integrations](/integrate/integration-guide.html) page to learn more. diff --git a/packages/core/docs/integrate/integration-guide.md b/packages/core/docs/integrate/integration-guide.md index 39ca5ebb64..2ec1ebd4b3 100644 --- a/packages/core/docs/integrate/integration-guide.md +++ b/packages/core/docs/integrate/integration-guide.md @@ -1,4 +1,4 @@ -# Integration guide +# Integrating eCommerce platform :::danger Don't forget to reload the application The application does not reload automatically after saving the changes in Server Middleware. Due to this, you have to restart the application manually. We are working on enabling Hot Reloading in future updates. diff --git a/packages/core/docs/integrations/adyen.md b/packages/core/docs/integrations/adyen.md index b1fa9dd40c..d3221cd7cd 100644 --- a/packages/core/docs/integrations/adyen.md +++ b/packages/core/docs/integrations/adyen.md @@ -121,13 +121,13 @@ type PaymentAndOrder = Payment & { order: Order } 5. Add an `origin` to the allowed origins in Adyen's dashboard. You can do it in the same place where you looked for the `clientKey`. -6. Commercetools shares [Adyen integration](https://github.com/commercetools/commercetools-adyen-integration). We recommend to deploy it as a Google Function or an AWS Lambda. Make sure to configure and deploy both [extension](https://github.com/commercetools/commercetools-adyen-integration/tree/master/extension) and [notification](https://github.com/commercetools/commercetools-adyen-integration/tree/master/notification) module. Check readme of [the repository](https://github.com/commercetools/commercetools-adyen-integration) for details. +6. commercetools shares [Adyen integration](https://github.com/commercetools/commercetools-adyen-integration). We recommend deploying it as a Google Function or an AWS Lambda. Make sure to configure and deploy both [extension](https://github.com/commercetools/commercetools-adyen-integration/tree/master/extension) and [notification](https://github.com/commercetools/commercetools-adyen-integration/tree/master/notification) module. Check readme of [the repository](https://github.com/commercetools/commercetools-adyen-integration) for details. :::warning Bigger permissions for extensions -As you can see in `commercetools-adyen-integration` repository, commercetools recommends to use `manage_project` scope for both notification and extension module. +As you can see in `commercetools-adyen-integration` repository, commercetools recommends using `manage_project` scope for both notification and extension module. ::: -7. Use `PaymentAdyenProvider.vue` as a last step of the checkout process. This component will mount Adyen's Web Drop In and handle payment process for you. +7. Use `PaymentAdyenProvider.vue` as a last step of the checkout process. This component will mount Adyen's Web Drop-In and handle payment process for you. ```vue void` - Called after we got an error from either Adyen or our API. ## Placing an order -If the transaction is authorized, the server's controller for `payAndOrder`/`submitAdditionalPaymentDetails` will place an order in Commercetools and apply the `order` object to the response. Thanks to that, we have only one request from the client to both finalize/authorize a payment and make an order. +If the transaction is authorized, the server's controller for `payAndOrder`/`submitAdditionalPaymentDetails` will place an order in commercetools and apply the `order` object to the response. Thanks to that, we have only one request from the client to both finalize/authorize the payment and make an order. ## Checkout.com Adyen's module isn't compatible with [Checkout.com's module](https://github.com/vuestorefront/checkout-com). @@ -233,17 +233,17 @@ Open the `Network` tab in the browser's devtools. Each payment request will have `ctApi.apiHost` property inside your `middleware.config.js` contains wrong path. It should be `https://.com/` instead of `https://.com//graphql` ### Error: The type with the key 'ctp-adyen-integration-web-components-payment-type' was not found -You have to add new types and extension to commercetools as described on these pages: +You have to add new types and extensions to commercetools as described on these pages: - [Extension Module](https://github.com/commercetools/commercetools-adyen-integration/blob/master/extension/docs/HowToRun.md#commercetools-project-requirements), - [Notification Module](https://github.com/commercetools/commercetools-adyen-integration/blob/master/notification/docs/HowToRun.md#commercetools-project-requirements). For more information, see the 6th step of the [Adyen's installation guide](./adyen.html#installation). -### Klarna Pay Later does not work for United States +### Klarna Pay Later does not work for the United States Klarna Pay Later is not supported in the United States. However, sometimes it is added when you enable Klarna in Adyen's dashboard. If you have this problem, contact Adyen's support to remove it. ### 3DS2 Auth doesn't work in one environment -There might be a situation when you can finish 3DS2 Auth in the local environment but not in the other, like staging. When this happens, make sure to change `origin` in the `middleware.config.js` from `http://localhost:3000` to the URL of your staging environment. +There might be a situation when you can finish 3DS2 Auth in the local environment but not in the other, like staging. When this happens, make sure to change `origin` in the `middleware.config.js` from `http://localhost:3000` to the URL of your staging environment. -### Structure of DetailsRequest contains the following unknown fields... +### Structure of DetailsRequest contains the following unknown fields Update extension and notification modules to the [newest available version](https://github.com/commercetools/commercetools-adyen-integration/releases) by updating the tag in `extension.Dockerfile` and `notification.Dockerfile`. diff --git a/packages/core/docs/integrations/bazaarvoice.md b/packages/core/docs/integrations/bazaarvoice.md index a89d7b1ea2..769b36f783 100644 --- a/packages/core/docs/integrations/bazaarvoice.md +++ b/packages/core/docs/integrations/bazaarvoice.md @@ -8,7 +8,7 @@ This feature is part of the Enterprise version. Please [contact our Sales team]( This package provides integration with [Bazaarvoice](https://www.bazaarvoice.com/). -Bazaarvoice (BV) provides two SDKs to integrate with their platform - `bvapi.js` and `bv.js`. The latter is recommended because of the performance improvements and this is what is package uses under the hood. +Bazaarvoice (BV) provides two SDKs to integrate with their platform - `bvapi.js` and `bv.js`. The latter is recommended because of the performance improvements, and this is what is package uses under the hood. We recommend reading [this documentation page](https://knowledge.bazaarvoice.com/wp-content/conversations-prr/en_US/display/integrating_content_bv_js.html) before using the package. @@ -53,12 +53,12 @@ export default { ``` * `clientName` - the lowercase name of the client provided by Bazaarvoice. -* `siteId` - the ID of the zone coming from Bazaarvoice configuration hub. Defaults to `main_site`. +* `siteId` - the ID of the zone coming from the Bazaarvoice configuration hub. Defaults to `main_site`. * `environment` - the deployment environment. Valid values are `production` and `staging`. Defaults to `staging`. -* `locale` - the locale used by the library, eg. `en_US`. +* `locale` - the locale used by the library, e.g. `en_US`. -::: warning Domain white list -For security reasons, Bazaarvoice uses a white list of allowed domains. +::: warning Domain allowlist +For security reasons, Bazaarvoice uses an allowlist of allowed domains. ::: ::: tip Use localhost @@ -101,7 +101,7 @@ Questions component displays questions and answers provided by the customers reg #### `BvRatingSummary` -The rating summary component (also called "fast stars") displays average rating, the total number of reviews, and rating distribution when hovered. +The rating summary component (also called "fast stars") displays the average rating, the total number of reviews, and rating distribution when hovered. ```html diff --git a/packages/core/docs/migrate/2.1.0-rc.1/integrators.md b/packages/core/docs/migrate/2.1.0-rc.1/integrators.md index bdccaaddd0..34ad09bb48 100644 --- a/packages/core/docs/migrate/2.1.0-rc.1/integrators.md +++ b/packages/core/docs/migrate/2.1.0-rc.1/integrators.md @@ -1,4 +1,4 @@ -# Integrators upgrade notes +# Migrating eCommerce integrations to 2.1.0-rc.1 ## API client functions diff --git a/packages/core/docs/migrate/2.1.0-rc.1/overview.md b/packages/core/docs/migrate/2.1.0-rc.1/overview.md index 486aa106b4..b5996fdd17 100644 --- a/packages/core/docs/migrate/2.1.0-rc.1/overview.md +++ b/packages/core/docs/migrate/2.1.0-rc.1/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.1.0-rc.1 +# Migrating projects to 2.1.0-rc.1 This guide contains a list of changes, in order to upgrade your VSF next to the 2.1.0-rc.1 version. @@ -68,3 +68,130 @@ Uncaught Error: [vue-composition-api] must call Vue.use(plugin) before using any ['@vue-storefront/some-integration/nuxt', {}] } ``` + +## Access to API client + +### Before + +```js +import { getSettings } from '@vue-storefront/integration-name-api'; + +export default { + setup () { + const apiClientSettings = getSettings() + } +} +``` + +### After +```js +import { useVSFContext } from '@vue-storefront/core'; + +export default { + setup () { + const { $tag } = useVSFContext() + + // $tag.config + // $tag.client + // $tag.api + } +} +``` + +## Usage API client in plugins or middlewares + +### Before +```js +import { getProduct } from '@vue-storefront/integration-name-api'; + +export default async ({ app }) => { + const product = await getProduct({ id: 1 }) +} +``` + +### After + +```js +export default async ({ app, $vsf }) => { + const product = await $vsf.$tag.api.getProduct({ id: 1 }) +} +``` + +## Price formatting + +### Before + +```js +import { productGetters, useProduct } from '@vue-storefront/integration-name'; + + + +export default { + setup () { + const { product } = useProduct(); + + return { product, productGetters } + } +} +``` + +### After + +```js +import { productGetters, useProduct } from '@vue-storefront/integration-name'; +import { useUiHelpers } from '~/composables'; + + + +export default { + setup () { + const th = useUiHelpers(); + const { product } = useProduct(); + + return { product, productGetters, th } + } +} +``` + +## Configuring integration + +### Before +```js +import { setup } from '@vue-storefront/integration-name'; + +export default ({ app }) => { + setup({ + api: { + host: '<%= options.api.host %>', + auth: { + username: '<%= options.api.auth.username %>', + password: '<%= options.api.auth.password %>' + }, + shopId: selectedLocale.shopId + }, + }); +} +``` + +### After +```js +import { integrationPlugin } from '@vue-storefront/integration-name' +import { getProduct } from './your-api'; + +export default integrationPlugin(({ app, integration }) => { + integration.configure({ + api: { + host: '<%= options.api.host %>', + auth: { + username: '<%= options.api.auth.username %>', + password: '<%= options.api.auth.password %>' + }, + shopId: selectedLocale.shopId + }, + }, { getProduct }) +}); +``` diff --git a/packages/core/docs/migrate/2.2.0/integrators.md b/packages/core/docs/migrate/2.2.0/integrators.md index 4842620e10..5770fb052c 100644 --- a/packages/core/docs/migrate/2.2.0/integrators.md +++ b/packages/core/docs/migrate/2.2.0/integrators.md @@ -1,4 +1,4 @@ -# Integrators upgrade notes +# Migrating eCommerce integrations to 2.2.0 ## Factory usage diff --git a/packages/core/docs/migrate/2.2.0/overview.md b/packages/core/docs/migrate/2.2.0/overview.md index 008ed9405f..fe4aeac131 100644 --- a/packages/core/docs/migrate/2.2.0/overview.md +++ b/packages/core/docs/migrate/2.2.0/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.2.0 +# Migrating projects to 2.2.0 This version introduces many renamings or changes related to the function declarations among of the core. We had to proceed with this in order to keep the convention and unify the naming across whole VSF. @@ -6,3 +6,47 @@ We changes the composables and our factories according to the following rules: - each composable return always one field with the response from the api - each composable function takes one argument wich is an object of given parameters - each factory param function takes two argumens, first one is context (as it was before) and second one contains a function parmeters along with other options (such as customQuery) + +## Composables usage + +We have changes a bit the naming and signatures of composable functions. Below is the full list of what hs been implemented or changed: + +| Composable | Method | Old signature | New signature | +|------------|--------|---------------|---------------| +| useCart | addToCart | (product: PRODUCT, quantity: number, customQuery?: CustomQuery) | ({ product: PRODUCT, quantity: number, customQuery?: CustomQuery }) | +| useCart | removeFromCart | (product: CART_ITEM, customQuery?: CustomQuery) | ({ product: CART_ITEM, customQuery?: CustomQuery }) | +| useCart | updateQuantity | (product: CART_ITEM, quantity?: number, customQuery?: CustomQuery) | ({ product: CART_ITEM, quantity?: number, customQuery?: CustomQuery }) | +| useCart | load | (customQuery?: CustomQuery) | ({ customQuery?: CustomQuery } = {}) | +| useCart | clearCart | () | () | +| useCart | applyCoupon | (couponCode: string, customQuery?: CustomQuery) | ({ couponCode: string, customQuery?: CustomQuery }) | +| useCart | isOnCart | (product: PRODUCT) | ({ product: PRODUCT }) | +| useCart | removeCoupon | (coupon: COUPON, customQuery?: CustomQuery) | ({ coupon: COUPON, customQuery?: CustomQuery }) | +| useCart | setCart | (newCart: CART) | ({ newCart: CART }) | +| useCategory | search | (searchParams: CATEGORY_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: CATEGORY_SEARCH_PARAMS, customQuery?: CustomQuery }) | +| useContent | search | (params: CONTENT_SEARCH_PARAMS) | No changes | +| useFacet | search | (params?: AgnosticFacetSearchParams) | No changes | +| useProduct | search | (searchParams: PRODUCT_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: PRODUCT_SEARCH_PARAMS, customQuery?: CustomQuery }) | +| useReview | search | (searchParams: REVIEWS_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: REVIEWS_SEARCH_PARAMS, customQuery?: CustomQuery }) | +| useReview | addReview | (addParams: REVIEW_ADD_PARAMS, customQuery?: CustomQuery) | ({ ...addParams: REVIEW_ADD_PARAMS, customQuery?: CustomQuery }) | +| useUserBilling | addAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | +| useUserBilling | deleteAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | +| useUserBilling | updateAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | +| useUserBilling | setDefault | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | +| useUserBilling | load | () | () | +| useUserShipping | addAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | +| useUserShipping | deleteAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | +| useUserShipping | updateAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | +| useUserShipping | setDefault | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | +| useUserShipping | load | () | () | +| useUser | updateUser | (params: UPDATE_USER_PARAMS) | ({ user: UPDATE_USER_PARAMS }) | +| useUser | register | (registerUserData: REGISTER_USER_PARAMS) | ({ user: REGISTER_USER_PARAMS }) | +| useUser | login | (loginUserData: { username: string; password: string; }) | ({ user: LOGIN_USER_PARAMS }) | +| useUser | logout | () | () | +| useUser | changePassword | (currentPassword: string, newPassword: string) | ({ currentPassword: string, newPassword: string }) | +| useUser | load | () | () | +| useUserOrders | searchOrders | (searchParams: ORDER_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: ORDER_SEARCH_PARAMS, customQuery?: CustomQuery } = {}) | +| useWishlist | addToWishlist | (product: PRODUCT, customQuery?: CustomQuery) | ({ product: PRODUCT, customQuery?: CustomQuery }) | +| useWishlist | removeFromWishlist | (product: WISHLIST_ITEM, customQuery?: CustomQuery) | ({ product: WISHLIST_ITEM, customQuery?: CustomQuery }) | +| useWishlist | load | (customQuery?: CustomQuery) | ({ customQuery?: CustomQuery } = {}) | +| useWishlist | clearWishlist | () | () | +| useWishlist | isOnWishlist | (product: PRODUCT) | ({ product: PRODUCT }) | diff --git a/packages/core/docs/migrate/2.3.0-rc.2/integrators.md b/packages/core/docs/migrate/2.3.0-rc.2/integrators.md index 08506e219d..af7c9a6002 100644 --- a/packages/core/docs/migrate/2.3.0-rc.2/integrators.md +++ b/packages/core/docs/migrate/2.3.0-rc.2/integrators.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0-rc.2 for Integrators +# Migrating eCommerce integrations to 2.3.0-rc.2 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.2/overview.md b/packages/core/docs/migrate/2.3.0-rc.2/overview.md index 7dd4cdf985..b6be22ba92 100644 --- a/packages/core/docs/migrate/2.3.0-rc.2/overview.md +++ b/packages/core/docs/migrate/2.3.0-rc.2/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0-rc.2 +# Migrating projects to 2.3.0-rc.2 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.3/integrators.md b/packages/core/docs/migrate/2.3.0-rc.3/integrators.md index cdd5ef8962..1737dab750 100644 --- a/packages/core/docs/migrate/2.3.0-rc.3/integrators.md +++ b/packages/core/docs/migrate/2.3.0-rc.3/integrators.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0-rc.3 for Integrators +# Migrating eCommerce integrations to 2.3.0-rc.3 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.3/overview.md b/packages/core/docs/migrate/2.3.0-rc.3/overview.md index 79f23e88fd..02bf3f6466 100644 --- a/packages/core/docs/migrate/2.3.0-rc.3/overview.md +++ b/packages/core/docs/migrate/2.3.0-rc.3/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0-rc.3 +# Migrating projects to 2.3.0-rc.3 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0/integrators.md b/packages/core/docs/migrate/2.3.0/integrators.md index 3385b233e5..62176aed80 100644 --- a/packages/core/docs/migrate/2.3.0/integrators.md +++ b/packages/core/docs/migrate/2.3.0/integrators.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0 for Integrators +# Migrating eCommerce integrations to 2.3.0 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0/overview.md b/packages/core/docs/migrate/2.3.0/overview.md index 9da553d3eb..a937adc862 100644 --- a/packages/core/docs/migrate/2.3.0/overview.md +++ b/packages/core/docs/migrate/2.3.0/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.3.0 +# Migrating projects to 2.3.0 ## Introduction diff --git a/packages/core/docs/migrate/2.4.0/integrators.md b/packages/core/docs/migrate/2.4.0/integrators.md index e47503a60d..444cda6867 100644 --- a/packages/core/docs/migrate/2.4.0/integrators.md +++ b/packages/core/docs/migrate/2.4.0/integrators.md @@ -1,4 +1,4 @@ -# Migration guide 2.4.0 for Integrators +# Migrating eCommerce integrations to 2.4.0 ## Introduction diff --git a/packages/core/docs/migrate/2.4.0/overview.md b/packages/core/docs/migrate/2.4.0/overview.md index 378ba91887..251142404e 100644 --- a/packages/core/docs/migrate/2.4.0/overview.md +++ b/packages/core/docs/migrate/2.4.0/overview.md @@ -1,4 +1,4 @@ -# Migration guide 2.4.0 +# Migrating projects to 2.4.0 ## Introduction @@ -8,8 +8,16 @@ We had to proceed with this in order to keep the convention and unify the naming We changed the composables and our factories according to the following rules: - each composable always return one field with the response from the api - each composable function takes one argument which is an object of given parameters -- each factory param function takes two arguments, first one is context (as it was before) and second one contains a function parmeters along with other options (such as customQuery -## Changes +- each factory param function takes two arguments, first one is context (as it was before) and second one contains a function parameters along with other options (such as customQuery) + +## Changes in `useCart` composable + +We introduced a breaking change in a signature of the `removeCoupon` function in the `useCart` composable. The intention is to make is consistent with the `applyCoupon` function in the same composable. + +| Composable | Method | Old signature | New signature | +|------------|--------|---------------|---------------| +| useCart | removeCoupon | ({ coupon: COUPON, customQuery?: CustomQuery }) | ({ couponCode: string, customQuery?: CustomQuery }) +## Other changes - Added `useForgotPasswordFactory`. - Added `useSearchFactory`. diff --git a/packages/core/docs/migrate/index.md b/packages/core/docs/migrate/index.md index 1fe8279f48..506d1c9b7b 100644 --- a/packages/core/docs/migrate/index.md +++ b/packages/core/docs/migrate/index.md @@ -1,8 +1,31 @@ # Migration guides -- [2.4.0](./2.4.0/overview.md) -- [2.3.0](./2.3.0/overview.md) -- [2.3.0-rc.3](./2.3.0-rc.3/overview.md) -- [2.3.0-rc.2](./2.3.0-rc.2/overview.md) -- [2.2.0](./2.2.0/overview.md) -- [2.1.0-rc.1](./2.1.0-rc.1/overview.md) \ No newline at end of file +## 2.4.0 + +- [Overview](./2.4.0/overview.md) +- [Integrators](./2.4.0/integrators.md) + +## 2.3.0 + +- [Overview](./2.3.0/overview.md) +- [Integrators](./2.3.0/integrators.md) + +## 2.3.0-rc.3 + +- [Overview](./2.3.0-rc.3/overview.md) +- [Integrators](./2.3.0-rc.3/integrators.md) + +## 2.3.0-rc.2 + +- [Overview](./2.3.0-rc.2/overview.md) +- [Integrators](./2.3.0-rc.2/integrators.md) + +## 2.2.0 + +- [Overview](./2.2.0/overview.md) +- [Integrators](./2.2.0/integrators.md) + +## 2.1.0-rc.1 + +- [Overview](./2.1.0-rc.1/overview.md) +- [Integrators](./2.1.0-rc.1/integrators.md) diff --git a/packages/core/docs/package.json b/packages/core/docs/package.json index 1aa48b9176..3df03b5bbf 100644 --- a/packages/core/docs/package.json +++ b/packages/core/docs/package.json @@ -5,24 +5,27 @@ "description": "", "license": "MIT", "scripts": { - "dev": "yarn build:core && yarn build:ct && vuepress dev", + "dev": "vuepress dev", "build": "yarn build:core && yarn build:ct && NODE_OPTIONS=--max_old_space_size=4096 vuepress build", - "core-cache-ref": "cd ../cache && api-extractor run --local", "core-core-ref": "cd ../core && api-extractor run --local", "core-middleware-ref": "cd ../middleware && api-extractor run --local", "core-ref-md": "api-documenter markdown --i core/api-reference --o core/api-reference", "build:core": "yarn core-cache-ref && yarn core-core-ref && yarn core-middleware-ref && yarn core-ref-md", - "ct-api-ref": "cd ../../commercetools/api-client && api-extractor run --local", "ct-comp-ref": "cd ../../commercetools/composables && api-extractor run --local", "ct-ref-md": "api-documenter markdown --i commercetools/api-reference --o commercetools/api-reference", "build:ct": "yarn ct-api-ref && yarn ct-comp-ref && yarn ct-ref-md" }, "devDependencies": { - "@vue-storefront/commercetools-api": "~1.2.0", "@microsoft/api-documenter": "^7.13.7", "@microsoft/api-extractor": "^7.18.3", + "@vue-storefront/commercetools-api": "~1.2.0", + "@vuepress/plugin-active-header-links": "^1.8.2", + "@vuepress/plugin-back-to-top": "^1.8.2", + "@vuepress/plugin-medium-zoom": "^1.8.2", + "@vuepress/plugin-search": "^1.8.2", + "handlebars": "^4.7.7", "typescript": "^3.6.4", "vuepress": "^1.2.0" }, diff --git a/packages/core/docs/scripts/changelog.js b/packages/core/docs/scripts/changelog.js index e9b1b54b5f..75bc283ceb 100644 --- a/packages/core/docs/scripts/changelog.js +++ b/packages/core/docs/scripts/changelog.js @@ -1,39 +1,53 @@ -const fs = require('fs'); +const { compile } = require('handlebars'); +const { readFileSync, writeFileSync, unlinkSync, readdirSync } = require('fs'); -const commandArgs = process.argv.slice(2); - -const getCliArgument = (name, number) => { - return commandArgs[commandArgs.findIndex(arg => arg === name) + number]; +// Load changelog template files +const templates = { + version: readFileSync('./templates/version.hbs', 'utf8'), + change: readFileSync('./templates/change.hbs', 'utf8') }; -const releaseVersion = getCliArgument('--v', 1); - -const pathIn = getCliArgument('--in', 0) ? getCliArgument('--in', 1) : '../changelog'; - -const pathOut = getCliArgument('--out', 0) ? getCliArgument('--out', 1) : '../contributing/changelog.md'; - -const prNumbers = fs.readdirSync(pathIn); - -const numberOfPR = prNumbers.map(el => el.substr(0, el.lastIndexOf('.'))); - -const finalData = prNumbers.map(el => require(`${pathIn}/${el}`)).map((el, i) => ` -- ${el.isBreaking ? '[BREAKING]' : ''} ${el.description} ([#${numberOfPR[i]}](${el.link})) - [${el.author}](${el.linkToGitHubAccount}) -${el.isBreaking ? ` -| Before | After | Comment | Module -| ------ | ----- | ------ | ------` + -el.breakingChanges.map(br => '\n' + br.before + ' | ' + br.after + ' | ' + br.comment + ' | ' + br.module) : ''}`); - -const changelogData = fs.readFileSync(pathOut).toString().split('\n'); - -const versionExists = changelogData - .map(el => el.indexOf(releaseVersion)) +// Get arguments passed to the script +const commandArgs = process.argv.slice(2); +const getCliArgument = name => commandArgs[commandArgs.findIndex(arg => arg === name) + 1]; +const version = getCliArgument('--v'); +const pathIn = getCliArgument('--in'); +const pathOut = getCliArgument('--out'); + +// Get names of all files in the source directory +const fileName = readdirSync(pathIn); + +// Extract IDs of the pull requests from file names +const pullRequestIds = fileName.map(el => el.substr(0, el.lastIndexOf('.'))); + +// Map PRs into Markdown templates +const changes = fileName + // eslint-disable-next-line global-require + .map(el => require(`${pathIn}/${el}`)) + .map((pullRequest, index) => { + return compile(templates.change)({ + ...pullRequest, + prNumber: pullRequestIds[index] + }); + }) + .join('') + .trim(); + +// Load changelog file +const changelog = readFileSync(pathOut, 'utf8').split('\n'); + +// Check if version already exists +const versionLineNumber = changelog + .map(el => el.indexOf(version)) .findIndex(el => el > -1); -changelogData.splice(versionExists > -1 ? versionExists + 1 : 1, 0, versionExists > -1 ? finalData : '\n## ' + releaseVersion + '\n' + finalData); -const text = changelogData.join('\n'); +// Update changelog file +versionLineNumber > -1 + ? changelog.splice(versionLineNumber + 2, 0, changes) + : changelog.splice(2, 0, compile(templates.version)({ version, changes })); -fs.writeFile(pathOut, text, (err) => { - if (err) return err; -}); +// Write updated changelog file +writeFileSync(pathOut, changelog.join('\n')); -prNumbers.map(el => fs.unlinkSync(`${pathIn}/${el}`)); +// Delete files from source directory +fileName.map(el => unlinkSync(`${pathIn}/${el}`)); diff --git a/packages/core/docs/scripts/templates/change.hbs b/packages/core/docs/scripts/templates/change.hbs new file mode 100644 index 0000000000..b35b5080f9 --- /dev/null +++ b/packages/core/docs/scripts/templates/change.hbs @@ -0,0 +1,10 @@ +- {{#if isBreaking}}**[BREAKING]** {{/if}}{{ description }} ([{{ prNumber }}]({{ link }})) - [{{ author }}]({{ linkToGitHubAccount }}) + +{{#if breakingChanges.length}} + | Before | After | Comment | Module | + | ------ | ----- | ------- | ------ | + {{#each breakingChanges}} + | {{ before }} | {{ after }} | {{ comment }} | {{ module }} | + {{/each}} + +{{/if}} diff --git a/packages/core/docs/scripts/templates/version.hbs b/packages/core/docs/scripts/templates/version.hbs new file mode 100644 index 0000000000..602be0c2cf --- /dev/null +++ b/packages/core/docs/scripts/templates/version.hbs @@ -0,0 +1,3 @@ +## {{ version }} + +{{ changes }} diff --git a/packages/core/docs/shopify/README.md b/packages/core/docs/shopify/README.md new file mode 100755 index 0000000000..eb4dd7e017 --- /dev/null +++ b/packages/core/docs/shopify/README.md @@ -0,0 +1,11 @@ +# Shopify integration for Vue Storefront 2 + +:::tip There's more +This page only contains the documentation specific to Shopify integration. For more information, see the [Vue Storefront documentation](https://docs.vuestorefront.io/v2/). +::: + +[Shopify](https://www.vuestorefront.io/shopify) integration for Vue Storefront is open-source and maintained by the superheroes from the [Aureate labs](https://aureatelabs.com/). + +If you want to preview our product, feel free to visit our [demo](https://shopify-pwa.aureatelabs.com/) application. + +You can also support us by contributing [here](https://github.com/vuestorefront/shopify). diff --git a/packages/core/docs/shopify/api-client-reference.md b/packages/core/docs/shopify/api-client-reference.md new file mode 100644 index 0000000000..0d6a361503 --- /dev/null +++ b/packages/core/docs/shopify/api-client-reference.md @@ -0,0 +1,13424 @@ + +
+ +## `addToCart` + +Defined in: [packages/shopify/api-client/src/api/addToCart/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/addToCart/index.ts#L7) + +#### Parameters: + +Name | Type | +:------ | :------ | +| +`__namedParameters` | [*Cart*](#cart) | +`product` | [*ProductVariant*](#productvariant) | +`quantity` | *number* | +`customQuery?` | *Record* | + +**Returns:** *Promise*<[*CartResponse*](#cartresponse)\> + + + +## `createCart` + +Defined in: [packages/shopify/api-client/src/api/createCart/index.ts:6](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/createCart/index.ts#L6) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`cartDraft` | [*CartData*](#interfacestypes_apicartdatamd) | +`customQuery?` | *Record* | + +**Returns:** *Promise* + + + +## `changePassword` + +Defined in: [packages/shopify/api-client/src/api/changePassword/index.ts:4](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/changePassword/index.ts#L4) + +#### Parameters: + +Name | Type | +:------ | :------ | +`__namedParameters` | *Object* | +`version` | *any* | +`currentPassword` | *string* | +`newPassword` | *string* | + +**Returns:** *Promise*\>\> + + + +## `signIn` + +Defined in: [packages/shopify/api-client/src/api/signIn/index.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signIn/index.ts#L5) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`draft` | [*SignInDraft*](#signindraft) | + +**Returns:** *Promise*\>\> + + + +## `SignUp` + +Defined in: [packages/shopify/api-client/src/api/signUp/index.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signUp/index.ts#L5) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`draft` | [*SignUpDraft*](#signupdraft) | + +**Returns:** *Promise*\>\> + + + +## `SignOut` + +Defined in: [packages/shopify/api-client/src/api/SignOut/index.ts:1](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signOut/index.ts#L1) + +#### Parameters: + +Name | Type | +:------ | :------ | +`__namedParameters` | *Object* | + +**Returns:** *Promise* + + + +## `editProfile` + +Defined in: [packages/shopify/api-client/src/api/editProfile/index.ts:4](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/editProfile/index.ts#L4) + +#### Parameters: + +Name | Type | +:------ | :------ | +`__namedParameters` | *Object* | +`customerAccessToken` | *string* | +`customer` | *any* | + + + +## `getCategory` + +Defined in: [packages/shopify/api-client/src/api/getCategory/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getCategory/index.ts#L12) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`params` | *any* | +`customQuery?` | *Record* | + +**Returns:** *Promise*\> + + + +## `fetchOrders` + +Defined in: [packages/shopify/api-client/src/api/ferchOrders/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/fetchOrders/index.ts#L12) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`params` | *any* | +`customQuery?` | *Record* | + +**Returns:** *Promise*\> + + + +## `getProduct` + +Defined in: [packages/shopify/api-client/src/api/getProduct/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getProduct/index.ts#L12) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`params` | *any* | +`customQuery?` | *Record* | + +**Returns:** *Promise*\> + + + +## `isGuest` + +Defined in: [packages/shopify/api-client/src/api/isGuest/index.ts:3](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/isGuest/index.ts#L3) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | + +**Returns:** *any* + + + +## `removeFromCart` + +Defined in: [packages/shopify/api-client/src/api/removeFromCart/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/removeFromCart/index.ts#L7) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`cart` | [*Cart*](#cart) | +`product` | [*LineItem*](#lineitem) | +`customQuery?` | *Record* | + +**Returns:** *Promise*<[*CartResponse*](#cartresponse)\> + + + +## `updateCart` + +Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:15](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L15) + +#### Parameters: + +Name | Type | +:------ | :------ | +`context` | *any* | +`params` | [*UpdateCartParams*](#interfacesapi_updatecartupdatecartparamsmd) | +`customQuery?` | *Record* | + +**Returns:** *any* + +#### Type declaration: + +Name | Type | +:------ | :------ | +`activeCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:55](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L55) + +___ + +### `AddAttributeDefinition` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeDefinition` | [*AttributeDefinitionDraft*](#attributedefinitiondraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:59](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L59) + +___ + +### `AddCartCustomLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`money` | [*BaseMoneyInput*](#basemoneyinput) | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | +`slug` | [*Scalars*](#scalars)[*String*] | +`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:63](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L63) + +### `AddCustomerAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address` | [*AddressInput*](#addressinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:113](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L113) + +___ + +### `AddCustomerBillingAddressId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:117](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L117) + +___ + +### `AddCustomerShippingAddressId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:121](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L121) + +___ + +### `AddMyCartLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:138](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L138) + +___ + +### `AddOrderDelivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`items`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | +`parcels`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L150) + +___ + +### `AddOrderItemShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address` | [*AddressInput*](#addressinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L156) + +___ + +### `AddOrderParcelToDelivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deliveryId` | [*Scalars*](#scalars)[*String*] | +`items`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | +`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurementsDraftType*](#parcelmeasurementsdrafttype)\> | +`trackingData`? | [*Maybe*](#maybe)<[*TrackingDataDraftType*](#trackingdatadrafttype)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:160](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L160) + +___ + +### `AddOrderPayment` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L167) + +___ + +### `AddOrderReturnInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`items` | [*ReturnItemDraftType*](#returnitemdrafttype)[] | +`returnDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`returnTrackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:171](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L171) + +___ + +### `AddPlainEnumValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`value` | [*PlainEnumValueDraft*](#plainenumvaluedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:177](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L177) + +___ + +### `AddProductAsset` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`asset` | [*AssetDraftInput*](#assetdraftinput) | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`position`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:182](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L182) + +___ + +### `AddProductExternalImage` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`image` | [*ImageInput*](#imageinput) | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:191](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L191) + +___ + +### `AddProductPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`price` | [*ProductPriceDataInput*](#productpricedatainput) | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:198](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L198) + +___ + +### `AddProductToCategory` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`category` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L206) + +___ + +### `AddProductVariant` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | +`attributes`? | [*Maybe*](#maybe)<[*ProductAttributeInput*](#productattributeinput)[]\> | +`images`? | [*Maybe*](#maybe)<[*ImageInput*](#imageinput)[]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`prices`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)[]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L212) + +___ + +### `AddShippingMethodShippingRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | +`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:289](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L289) + +___ + +### `AddShippingMethodZone` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L294) + +___ + +### `AddShoppingListLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:298](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L298) + +___ + +### `AddShoppingListTextLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L307) + +___ + +### `AddZoneLocation` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`location` | [*ZoneLocation*](#zonelocation) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L315) + +___ + +### `Address` + +An address represents a postal address. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Address* | +`additionalAddressInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`additionalStreetInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`apartment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`building`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`city`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`company`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`contactInfo` | [*AddressContactInfo*](#addresscontactinfo) | +`country` | [*Scalars*](#scalars)[*Country*] | +`department`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`pOBox`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`postalCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`region`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`streetName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`streetNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:223](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L223) + +___ + +### `AddressContactInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *AddressContactInfo* | +`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:253](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L253) + +___ + +### `AddressInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`additionalAddressInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`additionalStreetInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`apartment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`building`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`city`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`company`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`country` | [*Scalars*](#scalars)[*Country*] | +`department`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`pOBox`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`postalCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`region`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`streetName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`streetNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:261](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L261) + +___ + +### `ApiClientWithSecret` + +API Clients can be used to obtain OAuth 2 access tokens. The secret is only +shown once in the response of creating the API Client. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *APIClientWithSecret* | +`createdAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`id` | [*Scalars*](#scalars)[*String*] | +`lastUsedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`scope` | [*Scalars*](#scalars)[*String*] | +`secret` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:358](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L358) + +___ + +### `ApiClientWithoutSecret` + +API Clients can be used to obtain OAuth 2 access tokens + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *APIClientWithoutSecret* | +`createdAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`id` | [*Scalars*](#scalars)[*String*] | +`lastUsedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`scope` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:338](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L338) + +___ + +### `ApiClientWithoutSecretQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *APIClientWithoutSecretQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*ApiClientWithoutSecret*](#apiclientwithoutsecret)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:347](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L347) + +___ + +### `ApplyCartDeltaToCustomLineItemShippingDetailsTargets` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`targetsDelta` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:368](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L368) + +___ + +### `ApplyCartDeltaToLineItemShippingDetailsTargets` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`targetsDelta` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:373](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L373) + +___ + +### `Asset` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *Asset* | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | - | +`id` | [*Scalars*](#scalars)[*String*] | - | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | +`sources` | [*AssetSource*](#assetsource)[] | - | +`tags` | [*Scalars*](#scalars)[*String*][] | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:378](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L378) + +___ + +### `AssetCustomFieldListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:412](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L412) + +___ + +### `AssetCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:407](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L407) + +___ + +### `AssetDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:402](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L402) + +___ + +### `AssetDimensions` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *AssetDimensions* | +`height` | [*Scalars*](#scalars)[*Int*] | +`width` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:417](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L417) + +___ + +### `AssetDimensionsInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`height` | [*Scalars*](#scalars)[*Int*] | +`width` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:423](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L423) + +___ + +### `AssetDraftInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | +`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:428](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L428) + +___ + +### `AssetNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:397](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L397) + +___ + +### `AssetSource` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *AssetSource* | +`contentType`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`dimensions`? | [*Maybe*](#maybe)<[*AssetDimensions*](#assetdimensions)\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`uri` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:438](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L438) + +___ + +### `AssetSourceInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`contentType`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`dimensions`? | [*Maybe*](#maybe)<[*AssetDimensionsInput*](#assetdimensionsinput)\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`uri` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:446](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L446) + +___ + +### `Attribute` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:453](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L453) + +___ + +### `AttributeDefinition` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *AttributeDefinition* | +`attributeConstraint` | [*AttributeConstraint*](../enums/types_graphql.attributeconstraint.md) | +`inputHint` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | +`inputTip`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`inputTipAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | +`isRequired` | [*Scalars*](#scalars)[*Boolean*] | +`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | +`name` | [*Scalars*](#scalars)[*String*] | +`type` | [*AttributeDefinitionType*](#attributedefinitiontype) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L468) + +___ + +### `AttributeDefinitionDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeConstraint`? | [*Maybe*](#maybe)<[*AttributeConstraint*](../enums/types_graphql.attributeconstraint.md)\> | +`inputHint`? | [*Maybe*](#maybe)<[*TextInputHint*](../enums/types_graphql.textinputhint.md)\> | +`inputTip`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`isRequired` | [*Scalars*](#scalars)[*Boolean*] | +`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | +`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`name` | [*Scalars*](#scalars)[*String*] | +`type` | [*AttributeTypeDraft*](#attributetypedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:492](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L492) + +___ + +### `AttributeDefinitionInputTipArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:487](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L487) + +___ + +### `AttributeDefinitionLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:482](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L482) + +___ + +### `AttributeDefinitionResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *AttributeDefinitionResult* | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`results` | [*AttributeDefinition*](#attributedefinition)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:503](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L503) + +___ + +### `AttributeDefinitionType` + +(https://shopify.dev/api/storefront/reference/common-objects/attributeinput)[https://shopify.dev/api/storefront/reference/common-objects/attributeinput] + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:512](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L512) + +___ + +### `AttributeSetElementTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`boolean`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`date`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`datetime`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`enum`? | [*Maybe*](#maybe)<[*EnumTypeDraft*](#enumtypedraft)\> | +`lenum`? | [*Maybe*](#maybe)<[*LocalizableEnumTypeDraft*](#localizableenumtypedraft)\> | +`ltext`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`money`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`number`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`reference`? | [*Maybe*](#maybe)<[*ReferenceTypeDefinitionDraft*](#referencetypedefinitiondraft)\> | +`text`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`time`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L516) + +___ + +### `AttributeSetTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`elementType` | [*AttributeSetElementTypeDraft*](#attributesetelementtypedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:530](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L530) + +___ + +### `AttributeTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`boolean`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`date`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`datetime`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`enum`? | [*Maybe*](#maybe)<[*EnumTypeDraft*](#enumtypedraft)\> | +`lenum`? | [*Maybe*](#maybe)<[*LocalizableEnumTypeDraft*](#localizableenumtypedraft)\> | +`ltext`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`money`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`number`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`reference`? | [*Maybe*](#maybe)<[*ReferenceTypeDefinitionDraft*](#referencetypedefinitiondraft)\> | +`set`? | [*Maybe*](#maybe)<[*AttributeSetTypeDraft*](#attributesettypedraft)\> | +`text`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | +`time`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L534) + +___ + +### `BaseMoney` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`centAmount` | [*Scalars*](#scalars)[*Long*] | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | +`fractionDigits` | [*Scalars*](#scalars)[*Int*] | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:549](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L549) + +___ + +### `BaseMoneyInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`centPrecision`? | [*Maybe*](#maybe)<[*MoneyInput*](#moneyinput)\> | +`highPrecision`? | [*Maybe*](#maybe)<[*HighPrecisionMoneyInput*](#highprecisionmoneyinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:556](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L556) + +___ + +### `BaseSearchKeywordInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomSuggestTokenizerInput*](#customsuggesttokenizerinput)\> | +`whitespace`? | [*Maybe*](#maybe)<[*WhitespaceSuggestTokenizerInput*](#whitespacesuggesttokenizerinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:561](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L561) + +___ + +### `BooleanAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:566](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L566) + +___ + +### `BooleanAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:572](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L572) + +___ + +### `BooleanField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:577](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L577) + +___ + +### `BooleanType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:583](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L583) + +___ + +### `Cart` + +A shopping cart holds product variants and can be ordered. Each cart either +belongs to a registered customer or is an anonymous cart. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:591](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L591) + +___ + +### `CartClassificationInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`values` | [*LocalizedEnumValueInput*](#localizedenumvalueinput)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:654](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L654) + +___ + +### `CartClassificationType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L658) + +___ + +### `CartCustomFieldListArgs` + +A shopping cart holds product variants and can be ordered. Each cart either +belongs to a registered customer or is an anonymous cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:649](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L649) + +___ + +### `CartCustomFieldsRawArgs` + +A shopping cart holds product variants and can be ordered. Each cart either +belongs to a registered customer or is an anonymous cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:641](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L641) + +___ + +### `CartDiscount` + +Cart discounts are recalculated every time LineItems or CustomLineItems are +added or removed from the Cart or an order is created from the cart. + +The number of active cart discounts that do not require a discount code +(isActive=true and requiresDiscountCode=false) is limited to 100. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L670) + +___ + +### `CartDiscountCustomFieldListArgs` + +Cart discounts are recalculated every time LineItems or CustomLineItems are +added or removed from the Cart or an order is created from the cart. + +The number of active cart discounts that do not require a discount code +(isActive=true and requiresDiscountCode=false) is limited to 100. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:740](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L740) + +___ + +### `CartDiscountCustomFieldsRawArgs` + +Cart discounts are recalculated every time LineItems or CustomLineItems are +added or removed from the Cart or an order is created from the cart. + +The number of active cart discounts that do not require a discount code +(isActive=true and requiresDiscountCode=false) is limited to 100. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:729](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L729) + +___ + +### `CartDiscountDescriptionArgs` + +Cart discounts are recalculated every time LineItems or CustomLineItems are +added or removed from the Cart or an order is created from the cart. + +The number of active cart discounts that do not require a discount code +(isActive=true and requiresDiscountCode=false) is limited to 100. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:718](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L718) + +___ + +### `CartDiscountDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cartPredicate` | [*Scalars*](#scalars)[*String*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`requiresDiscountCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`sortOrder` | [*Scalars*](#scalars)[*String*] | +`stackingMode`? | [*Maybe*](#maybe)<[*StackingMode*](../enums/types_graphql.stackingmode.md)\> | +`target`? | [*Maybe*](#maybe)<[*CartDiscountTargetInput*](#cartdiscounttargetinput)\> | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`value` | [*CartDiscountValueInput*](#cartdiscountvalueinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:745](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L745) + +___ + +### `CartDiscountNameArgs` + +Cart discounts are recalculated every time LineItems or CustomLineItems are +added or removed from the Cart or an order is created from the cart. + +The number of active cart discounts that do not require a discount code +(isActive=true and requiresDiscountCode=false) is limited to 100. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:707](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L707) + +___ + +### `CartDiscountQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CartDiscountQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*CartDiscount*](#cartdiscount)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:761](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L761) + +___ + +### `CartDiscountTarget` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:769](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L769) + +___ + +### `CartDiscountTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItems`? | [*Maybe*](#maybe)<[*CustomLineItemsTargetInput*](#customlineitemstargetinput)\> | +`lineItems`? | [*Maybe*](#maybe)<[*LineItemsTargetInput*](#lineitemstargetinput)\> | +`multiBuyCustomLineItems`? | [*Maybe*](#maybe)<[*MultiBuyCustomLineItemsTargetInput*](#multibuycustomlineitemstargetinput)\> | +`multiBuyLineItems`? | [*Maybe*](#maybe)<[*MultiBuyLineItemsTargetInput*](#multibuylineitemstargetinput)\> | +`shipping`? | [*Maybe*](#maybe)<[*ShippingTargetInput*](#shippingtargetinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:773](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L773) + +___ + +### `CartDiscountUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`changeCartPredicate`? | [*Maybe*](#maybe)<[*ChangeCartDiscountCartPredicate*](#changecartdiscountcartpredicate)\> | +`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeCartDiscountIsActive*](#changecartdiscountisactive)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeCartDiscountName*](#changecartdiscountname)\> | +`changeRequiresDiscountCode`? | [*Maybe*](#maybe)<[*ChangeCartDiscountRequiresDiscountCode*](#changecartdiscountrequiresdiscountcode)\> | +`changeSortOrder`? | [*Maybe*](#maybe)<[*ChangeCartDiscountSortOrder*](#changecartdiscountsortorder)\> | +`changeStackingMode`? | [*Maybe*](#maybe)<[*ChangeCartDiscountStackingMode*](#changecartdiscountstackingmode)\> | +`changeTarget`? | [*Maybe*](#maybe)<[*ChangeCartDiscountTarget*](#changecartdiscounttarget)\> | +`changeValue`? | [*Maybe*](#maybe)<[*ChangeCartDiscountValue*](#changecartdiscountvalue)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCartDiscountCustomField*](#setcartdiscountcustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCartDiscountCustomType*](#setcartdiscountcustomtype)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetCartDiscountDescription*](#setcartdiscountdescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetCartDiscountKey*](#setcartdiscountkey)\> | +`setValidFrom`? | [*Maybe*](#maybe)<[*SetCartDiscountValidFrom*](#setcartdiscountvalidfrom)\> | +`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetCartDiscountValidFromAndUntil*](#setcartdiscountvalidfromanduntil)\> | +`setValidUntil`? | [*Maybe*](#maybe)<[*SetCartDiscountValidUntil*](#setcartdiscountvaliduntil)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:781](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L781) + +___ + +### `CartDiscountValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:799](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L799) + +___ + +### `CartDiscountValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`absolute`? | [*Maybe*](#maybe)<[*AbsoluteDiscountValueInput*](#absolutediscountvalueinput)\> | +`giftLineItem`? | [*Maybe*](#maybe)<[*GiftLineItemValueInput*](#giftlineitemvalueinput)\> | +`relative`? | [*Maybe*](#maybe)<[*RelativeDiscountValueInput*](#relativediscountvalueinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:803](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L803) + +___ + +### `CartDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`billingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | +`currency` | [*Scalars*](#scalars)[*Currency*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`customLineItems`? | [*Maybe*](#maybe)<[*CustomLineItemDraft*](#customlineitemdraft)[]\> | +`customerEmail`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`discountCodes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`externalTaxRateForShippingMethod`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`inventoryMode`? | [*Maybe*](#maybe)<[*InventoryMode*](../enums/types_graphql.inventorymode.md)\> | +`itemShippingAddresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | +`lineItems`? | [*Maybe*](#maybe)<[*LineItemDraft*](#lineitemdraft)[]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | +`origin`? | [*Maybe*](#maybe)<[*CartOrigin*](../enums/types_graphql.cartorigin.md)\> | +`shippingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`shippingRateInput`? | [*Maybe*](#maybe)<[*ShippingRateInputDraft*](#shippingrateinputdraft)\> | +`store`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`taxCalculationMode`? | [*Maybe*](#maybe)<[*TaxCalculationMode*](../enums/types_graphql.taxcalculationmode.md)\> | +`taxMode`? | [*Maybe*](#maybe)<[*TaxMode*](../enums/types_graphql.taxmode.md)\> | +`taxRoundingMode`? | [*Maybe*](#maybe)<[*RoundingMode*](../enums/types_graphql.roundingmode.md)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:809](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L809) + +___ + +### `CartQueryInterface` + +Fields to access carts. Includes direct access to a single cart and searching for carts. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | +`carts` | [*CartQueryResult*](#cartqueryresult) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:844](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L844) + +___ + +### `CartQueryInterfaceCartArgs` + +Fields to access carts. Includes direct access to a single cart and searching for carts. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L850) + +___ + +### `CartQueryInterfaceCartsArgs` + +Fields to access carts. Includes direct access to a single cart and searching for carts. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:855](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L855) + +___ + +### `CartQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CartQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Cart*](#cart)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:862](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L862) + +___ + +### `CartScoreInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L870) + +___ + +### `CartScoreType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:874](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L874) + +___ + +### `CartUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addCustomLineItem`? | [*Maybe*](#maybe)<[*AddCartCustomLineItem*](#addcartcustomlineitem)\> | +`addDiscountCode`? | [*Maybe*](#maybe)<[*AddCartDiscountCode*](#addcartdiscountcode)\> | +`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddCartItemShippingAddress*](#addcartitemshippingaddress)\> | +`addLineItem`? | [*Maybe*](#maybe)<[*AddCartLineItem*](#addcartlineitem)\> | +`addPayment`? | [*Maybe*](#maybe)<[*AddCartPayment*](#addcartpayment)\> | +`addShoppingList`? | [*Maybe*](#maybe)<[*AddCartShoppingList*](#addcartshoppinglist)\> | +`applyDeltaToCustomLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToCustomLineItemShippingDetailsTargets*](#applycartdeltatocustomlineitemshippingdetailstargets)\> | +`applyDeltaToLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToLineItemShippingDetailsTargets*](#applycartdeltatolineitemshippingdetailstargets)\> | +`changeCustomLineItemMoney`? | [*Maybe*](#maybe)<[*ChangeCartCustomLineItemMoney*](#changecartcustomlineitemmoney)\> | +`changeCustomLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartCustomLineItemQuantity*](#changecartcustomlineitemquantity)\> | +`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartLineItemQuantity*](#changecartlineitemquantity)\> | +`changeTaxCalculationMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxCalculationMode*](#changecarttaxcalculationmode)\> | +`changeTaxMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxMode*](#changecarttaxmode)\> | +`changeTaxRoundingMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxRoundingMode*](#changecarttaxroundingmode)\> | +`recalculate`? | [*Maybe*](#maybe)<[*RecalculateCart*](#recalculatecart)\> | +`removeCustomLineItem`? | [*Maybe*](#maybe)<[*RemoveCartCustomLineItem*](#removecartcustomlineitem)\> | +`removeDiscountCode`? | [*Maybe*](#maybe)<[*RemoveCartDiscountCode*](#removecartdiscountcode)\> | +`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveCartItemShippingAddress*](#removecartitemshippingaddress)\> | +`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveCartLineItem*](#removecartlineitem)\> | +`removePayment`? | [*Maybe*](#maybe)<[*RemoveCartPayment*](#removecartpayment)\> | +`setAnonymousId`? | [*Maybe*](#maybe)<[*SetCartAnonymousId*](#setcartanonymousid)\> | +`setBillingAddress`? | [*Maybe*](#maybe)<[*SetCartBillingAddress*](#setcartbillingaddress)\> | +`setCartTotalTax`? | [*Maybe*](#maybe)<[*SetCartTotalTax*](#setcarttotaltax)\> | +`setCountry`? | [*Maybe*](#maybe)<[*SetCartCountry*](#setcartcountry)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomField*](#setcartcustomfield)\> | +`setCustomLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemCustomField*](#setcartcustomlineitemcustomfield)\> | +`setCustomLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemCustomType*](#setcartcustomlineitemcustomtype)\> | +`setCustomLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemShippingDetails*](#setcartcustomlineitemshippingdetails)\> | +`setCustomLineItemTaxAmount`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemTaxAmount*](#setcartcustomlineitemtaxamount)\> | +`setCustomLineItemTaxRate`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemTaxRate*](#setcartcustomlineitemtaxrate)\> | +`setCustomShippingMethod`? | [*Maybe*](#maybe)<[*SetCartCustomShippingMethod*](#setcartcustomshippingmethod)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomType*](#setcartcustomtype)\> | +`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetCartCustomerEmail*](#setcartcustomeremail)\> | +`setCustomerGroup`? | [*Maybe*](#maybe)<[*SetCartCustomerGroup*](#setcartcustomergroup)\> | +`setCustomerId`? | [*Maybe*](#maybe)<[*SetCartCustomerId*](#setcartcustomerid)\> | +`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetCartDeleteDaysAfterLastModification*](#setcartdeletedaysafterlastmodification)\> | +`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomField*](#setcartlineitemcustomfield)\> | +`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomType*](#setcartlineitemcustomtype)\> | +`setLineItemPrice`? | [*Maybe*](#maybe)<[*SetCartLineItemPrice*](#setcartlineitemprice)\> | +`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartLineItemShippingDetails*](#setcartlineitemshippingdetails)\> | +`setLineItemTaxAmount`? | [*Maybe*](#maybe)<[*SetCartLineItemTaxAmount*](#setcartlineitemtaxamount)\> | +`setLineItemTaxRate`? | [*Maybe*](#maybe)<[*SetCartLineItemTaxRate*](#setcartlineitemtaxrate)\> | +`setLineItemTotalPrice`? | [*Maybe*](#maybe)<[*SetCartLineItemTotalPrice*](#setcartlineitemtotalprice)\> | +`setLocale`? | [*Maybe*](#maybe)<[*SetCartLocale*](#setcartlocale)\> | +`setShippingAddress`? | [*Maybe*](#maybe)<[*SetCartShippingAddress*](#setcartshippingaddress)\> | +`setShippingMethod`? | [*Maybe*](#maybe)<[*SetCartShippingMethod*](#setcartshippingmethod)\> | +`setShippingMethodTaxAmount`? | [*Maybe*](#maybe)<[*SetCartShippingMethodTaxAmount*](#setcartshippingmethodtaxamount)\> | +`setShippingMethodTaxRate`? | [*Maybe*](#maybe)<[*SetCartShippingMethodTaxRate*](#setcartshippingmethodtaxrate)\> | +`setShippingRateInput`? | [*Maybe*](#maybe)<[*SetCartShippingRateInput*](#setcartshippingrateinput)\> | +`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateCartItemShippingAddress*](#updatecartitemshippingaddress)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:888](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L888) + +___ + +### `CartValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:949](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L949) + +___ + +### `CartValueType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:953](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L953) + +___ + +### `Category` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:958](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L958) + +___ + +### `CategoryCustomFieldListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1035](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1035) + +___ + +### `CategoryCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1030](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1030) + +___ + +### `CategoryDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1005](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1005) + +___ + +### `CategoryDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`parent`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1040) + +___ + +### `CategoryMetaDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1025](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1025) + +___ + +### `CategoryMetaKeywordsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1020](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1020) + +___ + +### `CategoryMetaTitleArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1015) + +___ + +### `CategoryNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1000](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1000) + +___ + +### `CategoryOrderHint` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CategoryOrderHint* | +`categoryId` | [*Scalars*](#scalars)[*String*] | +`orderHint` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1055) + +___ + +### `CategoryOrderHintInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`orderHint` | [*Scalars*](#scalars)[*String*] | +`uuid` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1061](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1061) + +___ + +### `CategoryQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CategoryQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Category*](#category)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1066](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1066) + +___ + +### `CategorySearch` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *CategorySearch* | - | +`ancestors` | [*CategorySearch*](#categorysearch)[] | - | +`ancestorsRef` | [*Reference*](#reference)[] | - | +`assets` | [*Asset*](#asset)[] | - | +`childCount` | [*Scalars*](#scalars)[*Int*] | - | +`children` | [*CategorySearch*](#categorysearch)[] | Direct child categories. | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | - | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`id` | [*Scalars*](#scalars)[*String*] | - | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | - | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | +`orderHint` | [*Scalars*](#scalars)[*String*] | - | +`parent`? | [*Maybe*](#maybe)<[*CategorySearch*](#categorysearch)\> | - | +`parentRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`productCount` | [*Scalars*](#scalars)[*Int*] | - | +`productTypeNames` | [*Scalars*](#scalars)[*String*][] | - | +`slug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`slugAllLocales` | [*LocalizedString*](#localizedstring)[] | - | +`stagedProductCount` | [*Scalars*](#scalars)[*Int*] | - | +`version` | [*Scalars*](#scalars)[*Long*] | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1074](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1074) + +___ + +### `CategorySearchCustomFieldListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1129](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1129) + +___ + +### `CategorySearchCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1124](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1124) + +___ + +### `CategorySearchDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1114](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1114) + +___ + +### `CategorySearchNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1109](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1109) + +___ + +### `CategorySearchResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CategorySearchResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*CategorySearch*](#categorysearch)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1134](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1134) + +___ + +### `CategorySearchSlugArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1119) + +___ + +### `CategorySlugArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1010](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1010) + +___ + +### `CategoryUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addAsset`? | [*Maybe*](#maybe)<[*AddCategoryAsset*](#addcategoryasset)\> | +`changeAssetName`? | [*Maybe*](#maybe)<[*ChangeCategoryAssetName*](#changecategoryassetname)\> | +`changeAssetOrder`? | [*Maybe*](#maybe)<[*ChangeCategoryAssetOrder*](#changecategoryassetorder)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeCategoryName*](#changecategoryname)\> | +`changeOrderHint`? | [*Maybe*](#maybe)<[*ChangeCategoryOrderHint*](#changecategoryorderhint)\> | +`changeParent`? | [*Maybe*](#maybe)<[*ChangeCategoryParent*](#changecategoryparent)\> | +`changeSlug`? | [*Maybe*](#maybe)<[*ChangeCategorySlug*](#changecategoryslug)\> | +`removeAsset`? | [*Maybe*](#maybe)<[*RemoveCategoryAsset*](#removecategoryasset)\> | +`setAssetCustomField`? | [*Maybe*](#maybe)<[*SetCategoryAssetCustomField*](#setcategoryassetcustomfield)\> | +`setAssetCustomType`? | [*Maybe*](#maybe)<[*SetCategoryAssetCustomType*](#setcategoryassetcustomtype)\> | +`setAssetDescription`? | [*Maybe*](#maybe)<[*SetCategoryAssetDescription*](#setcategoryassetdescription)\> | +`setAssetKey`? | [*Maybe*](#maybe)<[*SetCategoryAssetKey*](#setcategoryassetkey)\> | +`setAssetSources`? | [*Maybe*](#maybe)<[*SetCategoryAssetSources*](#setcategoryassetsources)\> | +`setAssetTags`? | [*Maybe*](#maybe)<[*SetCategoryAssetTags*](#setcategoryassettags)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCategoryCustomField*](#setcategorycustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCategoryCustomType*](#setcategorycustomtype)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetCategoryDescription*](#setcategorydescription)\> | +`setExternalId`? | [*Maybe*](#maybe)<[*SetCategoryExternalId*](#setcategoryexternalid)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetCategoryKey*](#setcategorykey)\> | +`setMetaDescription`? | [*Maybe*](#maybe)<[*SetCategoryMetaDescription*](#setcategorymetadescription)\> | +`setMetaKeywords`? | [*Maybe*](#maybe)<[*SetCategoryMetaKeywords*](#setcategorymetakeywords)\> | +`setMetaTitle`? | [*Maybe*](#maybe)<[*SetCategoryMetaTitle*](#setcategorymetatitle)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1142](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1142) + +___ + +### `ChangeAttributeName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`newAttributeName` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1167) + +___ + +### `ChangeAttributeOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeDefinitions` | [*AttributeDefinitionDraft*](#attributedefinitiondraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1172) + +___ + +### `ChangeAttributeOrderByName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeNames` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1176) + +___ + +### `ChangeCartCustomLineItemMoney` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`money` | [*BaseMoneyInput*](#basemoneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1180](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1180) + +___ + +### `ChangeCartCustomLineItemQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1185](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1185) + +___ + +### `ChangeCartDiscountCartPredicate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cartPredicate` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1190](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1190) + +___ + +### `ChangeCartDiscountIsActive` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`isActive` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1194](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1194) + +___ + +### `ChangeCartDiscountName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1198](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1198) + +___ + +### `ChangeCartDiscountRequiresDiscountCode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`requiresDiscountCode` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1202](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1202) + +___ + +### `ChangeCartDiscountSortOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`sortOrder` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1206) + +___ + +### `ChangeCartDiscountStackingMode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`stackingMode` | [*StackingMode*](../enums/types_graphql.stackingmode.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1210](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1210) + +___ + +### `ChangeCartDiscountTarget` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`target` | [*CartDiscountTargetInput*](#cartdiscounttargetinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1214](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1214) + +___ + +### `ChangeCartDiscountValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`value` | [*CartDiscountValueInput*](#cartdiscountvalueinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1218](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1218) + +___ + +### `ChangeCartLineItemQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | +`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1222](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1222) + +___ + +### `ChangeCartTaxCalculationMode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxCalculationMode` | [*TaxCalculationMode*](../enums/types_graphql.taxcalculationmode.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1229](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1229) + +___ + +### `ChangeCartTaxMode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxMode` | [*TaxMode*](../enums/types_graphql.taxmode.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1233](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1233) + +___ + +### `ChangeCartTaxRoundingMode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxRoundingMode` | [*RoundingMode*](../enums/types_graphql.roundingmode.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1237](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1237) + +___ + +### `ChangeCategoryAssetName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1241](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1241) + +___ + +### `ChangeCategoryAssetOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetOrder` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1247](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1247) + +___ + +### `ChangeCategoryName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1251) + +___ + +### `ChangeCategoryOrderHint` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`orderHint` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1255](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1255) + +___ + +### `ChangeCategoryParent` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`parent` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1259](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1259) + +___ + +### `ChangeCategorySlug` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1263](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1263) + +___ + +### `ChangeCustomerAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address` | [*AddressInput*](#addressinput) | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1267](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1267) + +___ + +### `ChangeCustomerEmail` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`email` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1272](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1272) + +___ + +### `ChangeCustomerGroupName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1276](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1276) + +___ + +### `ChangeDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1280](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1280) + +___ + +### `ChangeDiscountCodeCartDiscounts` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cartDiscounts` | [*ReferenceInput*](#referenceinput)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1284](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1284) + +___ + +### `ChangeDiscountCodeGroups` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`groups` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1288](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1288) + +___ + +### `ChangeDiscountCodeIsActive` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`isActive` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1292](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1292) + +___ + +### `ChangeEnumKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`key` | [*Scalars*](#scalars)[*String*] | +`newKey` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1296](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1296) + +___ + +### `ChangeInputHint` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`newValue` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1302](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1302) + +___ + +### `ChangeInventoryEntryQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1307) + +___ + +### `ChangeIsSearchable` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1311) + +___ + +### `ChangeLabel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1316](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1316) + +___ + +### `ChangeLocalizedEnumValueLabel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`newValue` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1321](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1321) + +___ + +### `ChangeLocalizedEnumValueOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`values` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1326](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1326) + +___ + +### `ChangeMyCartTaxMode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxMode` | [*TaxMode*](../enums/types_graphql.taxmode.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1331) + +___ + +### `ChangeName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1335) + +___ + +### `ChangeOrderPaymentState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`paymentState` | [*PaymentState*](../enums/types_graphql.paymentstate.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1339) + +___ + +### `ChangeOrderShipmentState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shipmentState` | [*ShipmentState*](../enums/types_graphql.shipmentstate.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1343](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1343) + +___ + +### `ChangeOrderState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`orderState` | [*OrderState*](../enums/types_graphql.orderstate.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1347](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1347) + +___ + +### `ChangePlainEnumValueLabel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`newValue` | [*PlainEnumValueDraft*](#plainenumvaluedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1351](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1351) + +___ + +### `ChangePlainEnumValueOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`values` | [*PlainEnumValueDraft*](#plainenumvaluedraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1356](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1356) + +___ + +### `ChangeProductAssetName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1361](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1361) + +___ + +### `ChangeProductAssetOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetOrder` | [*Scalars*](#scalars)[*String*][] | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1371](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1371) + +___ + +### `ChangeProductDiscountIsActive` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`isActive` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1379](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1379) + +___ + +### `ChangeProductDiscountName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1383](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1383) + +___ + +### `ChangeProductDiscountPredicate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`predicate` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1387](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1387) + +___ + +### `ChangeProductDiscountSortOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`sortOrder` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1391](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1391) + +___ + +### `ChangeProductDiscountValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`value` | [*ProductDiscountValueInput*](#productdiscountvalueinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1395](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1395) + +___ + +### `ChangeProductImageLabel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`imageUrl` | [*Scalars*](#scalars)[*String*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1399) + +___ + +### `ChangeProductMasterVariant` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1407](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1407) + +___ + +### `ChangeProductName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1413](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1413) + +___ + +### `ChangeProductPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`price` | [*ProductPriceDataInput*](#productpricedatainput) | +`priceId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1418](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1418) + +___ + +### `ChangeProductSlug` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1427](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1427) + +___ + +### `ChangeProjectSettingsCountries` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`countries` | [*Scalars*](#scalars)[*Country*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1432](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1432) + +___ + +### `ChangeProjectSettingsCurrencies` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`currencies` | [*Scalars*](#scalars)[*Currency*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1436](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1436) + +___ + +### `ChangeProjectSettingsLanguages` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`languages` | [*Scalars*](#scalars)[*Locale*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1440](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1440) + +___ + +### `ChangeProjectSettingsMessagesConfiguration` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`messagesConfiguration` | [*MessagesConfigurationDraft*](#messagesconfigurationdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1444](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1444) + +___ + +### `ChangeProjectSettingsMessagesEnabled` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`messagesEnabled` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1448) + +___ + +### `ChangeProjectSettingsName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1452](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1452) + +___ + +### `ChangeShippingMethodIsDefault` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`isDefault` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1456](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1456) + +___ + +### `ChangeShippingMethodName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1460](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1460) + +___ + +### `ChangeShippingMethodTaxCategory` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxCategory` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1464](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1464) + +___ + +### `ChangeShoppingListLineItemQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1468) + +___ + +### `ChangeShoppingListLineItemsOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemOrder` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1473](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1473) + +___ + +### `ChangeShoppingListName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1477](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1477) + +___ + +### `ChangeShoppingListTextLineItemName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1481](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1481) + +___ + +### `ChangeShoppingListTextLineItemQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`quantity` | [*Scalars*](#scalars)[*Int*] | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1486](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1486) + +___ + +### `ChangeShoppingListTextLineItemsOrder` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`textLineItemOrder` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1491](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1491) + +___ + +### `ChangeZoneName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1495](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1495) + +___ + +### `Channel` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1499) + +___ + +### `ChannelCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1532) + +___ + +### `ChannelDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1527](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1527) + +___ + +### `ChannelNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1522](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1522) + +___ + +### `ChannelQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ChannelQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Channel*](#channel)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1537](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1537) + +___ + +### `ChannelReferenceIdentifier` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ChannelReferenceIdentifier* | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1545](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1545) + +___ + +### `ClassificationShippingRateInput` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1570](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1570) + +___ + +### `ClassificationShippingRateInputDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1583](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1583) + +___ + +### `ClassificationShippingRateInputLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1578) + +___ + +### `CreateApiClient` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`scope` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1587](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1587) + +___ + +### `CreateStore` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*String*] | +`languages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1592](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1592) + +___ + +### `CreateZone` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`locations`? | [*Maybe*](#maybe)<[*ZoneLocation*](#zonelocation)[]\> | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1598](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1598) + +___ + +### `CustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1901](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1901) + +___ + +### `CustomFieldInput` + +A key-value pair representing the field name and value of one single custom field. + +The value of this custom field consists of escaped JSON based on the FieldDefinition of the Type. + +Examples for `value`: + +* FieldType `String`: `"\"This is a string\""` +* FieldType `DateTimeType`: `"\"2001-09-11T14:00:00.000Z\""` +* FieldType `Number`: `"4"` +* FieldType `Set` with an elementType of `String`: `"[\"This is a string\", \"This is another string\"]"` +* FieldType `Reference`: `"{\"id\", \"b911b62d-353a-4388-93ee-8d488d9af962\", \"typeId\", \"product\"}"` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | - | +`value` | [*Scalars*](#scalars)[*String*] | The value of this custom field consists of escaped JSON based on the FieldDefinition of the Type. Examples for `value`: * FieldType `String`: `"\"This is a string\""` * FieldType `DateTimeType`: `"\"2001-09-11T14:00:00.000Z\""` * FieldType `Number`: `"4"` * FieldType `Set` with an elementType of `String`: `"[\"This is a string\", \"This is another string\"]"` * FieldType `Reference`: `"{\"id\", \"b911b62d-353a-4388-93ee-8d488d9af962\", \"typeId\", \"product\"}"` | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1917](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1917) + +___ + +### `CustomFieldsDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1932](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1932) + +___ + +### `CustomFieldsType` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *CustomFieldsType* | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields` | [*Type*](#type) | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. For a typed alternative, have a look at `customFields`. | +`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | - | +`typeRef` | [*Reference*](#reference) | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1939](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1939) + +___ + +### `CustomFieldsTypeCustomFieldListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1956](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1956) + +___ + +### `CustomFieldsTypeCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1951) + +___ + +### `CustomLineItem` + +A custom line item is a generic item that can be added to the cart but is not +bound to a product. You can use it for discounts (negative money), vouchers, +complex cart rules, additional services or fees. You control the lifecycle of this item. + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *CustomLineItem* | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | +`discountedPricePerQuantity` | [*DiscountedLineItemPriceForQuantity*](#discountedlineitempriceforquantity)[] | - | +`id` | [*Scalars*](#scalars)[*String*] | - | +`money` | [*BaseMoney*](#basemoney) | - | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | +`quantity` | [*Scalars*](#scalars)[*Long*] | - | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | +`slug` | [*Scalars*](#scalars)[*String*] | - | +`state` | [*ItemState*](#itemstate)[] | - | +`taxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | +`taxCategoryRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | - | +`totalPrice` | [*Money*](#money) | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1965](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1965) + +___ + +### `CustomLineItemCustomFieldListArgs` + +A custom line item is a generic item that can be added to the cart but is not +bound to a product. You can use it for discounts (negative money), vouchers, +complex cart rules, additional services or fees. You control the lifecycle of this item. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2011](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2011) + +___ + +### `CustomLineItemCustomFieldsRawArgs` + +A custom line item is a generic item that can be added to the cart but is not +bound to a product. You can use it for discounts (negative money), vouchers, +complex cart rules, additional services or fees. You control the lifecycle of this item. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2002](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2002) + +___ + +### `CustomLineItemDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`money` | [*BaseMoneyInput*](#basemoneyinput) | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | +`slug` | [*Scalars*](#scalars)[*String*] | +`taxCategory`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2016](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2016) + +___ + +### `CustomLineItemNameArgs` + +A custom line item is a generic item that can be added to the cart but is not +bound to a product. You can use it for discounts (negative money), vouchers, +complex cart rules, additional services or fees. You control the lifecycle of this item. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1993](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1993) + +___ + +### `CustomLineItemReturnItem` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2027](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2027) + +___ + +### `CustomLineItemsTarget` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2040) + +___ + +### `CustomLineItemsTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`predicate` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2046](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2046) + +___ + +### `CustomSuggestTokenizerInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`suggestTokenizer`? | [*Maybe*](#maybe)<[*BaseSearchKeywordInput*](#basesearchkeywordinput)\> | +`text` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2050) + +___ + +### `Customer` + +A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1606) + +___ + +### `CustomerActiveCartInterface` + +A field to access a customer's active cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerActiveCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1664](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1664) + +___ + +### `CustomerActiveCartInterfaceCustomerActiveCartArgs` + +A field to access a customer's active cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1669](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1669) + +___ + +### `CustomerCustomFieldListArgs` + +A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1658) + +___ + +### `CustomerCustomFieldsRawArgs` + +A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1652](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1652) + +___ + +### `CustomerGroup` + +A customer can be a member in a customer group (e.g. reseller, gold member). A +customer group can be used in price calculations with special prices being +assigned to certain customer groups. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1677) + +___ + +### `CustomerGroupCustomFieldListArgs` + +A customer can be a member in a customer group (e.g. reseller, gold member). A +customer group can be used in price calculations with special prices being +assigned to certain customer groups. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1709) + +___ + +### `CustomerGroupCustomFieldsRawArgs` + +A customer can be a member in a customer group (e.g. reseller, gold member). A +customer group can be used in price calculations with special prices being +assigned to certain customer groups. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1700](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1700) + +___ + +### `CustomerGroupDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`groupName` | [*Scalars*](#scalars)[*String*] | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1714](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1714) + +___ + +### `CustomerGroupQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CustomerGroupQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*CustomerGroup*](#customergroup)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1720](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1720) + +___ + +### `CustomerGroupUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`changeName`? | [*Maybe*](#maybe)<[*ChangeCustomerGroupName*](#changecustomergroupname)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerGroupCustomField*](#setcustomergroupcustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerGroupCustomType*](#setcustomergroupcustomtype)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetCustomerGroupKey*](#setcustomergroupkey)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1728](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1728) + +___ + +### `CustomerQueryInterface` + +Fields to access customer accounts. Includes direct access to a single customer and searching for customers. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | +`customers` | [*CustomerQueryResult*](#customerqueryresult) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1736](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1736) + +___ + +### `CustomerQueryInterfaceCustomerArgs` + +Fields to access customer accounts. Includes direct access to a single customer and searching for customers. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1742](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1742) + +___ + +### `CustomerQueryInterfaceCustomersArgs` + +Fields to access customer accounts. Includes direct access to a single customer and searching for customers. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1750](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1750) + +___ + +### `CustomerQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CustomerQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Customer*](#customer)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1757) + +___ + +### `CustomerSignInDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`anonymousCartId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`anonymousCartSignInMode`? | [*Maybe*](#maybe)<[*AnonymousCartSignInMode*](../enums/types_graphql.anonymouscartsigninmode.md)\> | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`email` | [*Scalars*](#scalars)[*String*] | +`password` | [*Scalars*](#scalars)[*String*] | +`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1765](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1765) + +___ + +### `CustomerSignInResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CustomerSignInResult* | +`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | +`customer` | [*Customer*](#customer) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1774) + +___ + +### `CustomerSignMeInDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`activeCartSignInMode`? | [*Maybe*](#maybe)<[*AnonymousCartSignInMode*](../enums/types_graphql.anonymouscartsigninmode.md)\> | +`email` | [*Scalars*](#scalars)[*String*] | +`password` | [*Scalars*](#scalars)[*String*] | +`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1780](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1780) + +___ + +### `CustomerSignMeUpDraft` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`addresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | - | +`billingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the billing addresses in the `addresses` list. The `billingAddressIds` of the customer will be set to the IDs of that addresses. | +`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | - | +`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | - | +`defaultBillingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultBillingAddressId` of the customer will be set to the ID of that address. | +`defaultShippingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultShippingAddressId` of the customer will be set to the ID of that address. | +`email` | [*Scalars*](#scalars)[*String*] | - | +`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - | +`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`password` | [*Scalars*](#scalars)[*String*] | - | +`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`shippingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the shipping addresses in the `addresses` list. The `shippingAddressIds` of the `Customer` will be set to the IDs of that addresses. | +`stores`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | - | +`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1787](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1787) + +___ + +### `CustomerSignUpDraft` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`addresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | - | +`anonymousCartId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`billingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the billing addresses in the `addresses` list. The `billingAddressIds` of the customer will be set to the IDs of that addresses. | +`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | - | +`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - | +`customerNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | - | +`defaultBillingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultBillingAddressId` of the customer will be set to the ID of that address. | +`defaultShippingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultShippingAddressId` of the customer will be set to the ID of that address. | +`email` | [*Scalars*](#scalars)[*String*] | - | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`isEmailVerified`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - | +`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`password` | [*Scalars*](#scalars)[*String*] | - | +`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`shippingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the shipping addresses in the `addresses` list. The `shippingAddressIds` of the `Customer` will be set to the IDs of that addresses. | +`stores`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | - | +`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1821](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1821) + +___ + +### `CustomerToken` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *CustomerToken* | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`customerId` | [*Scalars*](#scalars)[*String*] | +`expiresAt` | [*Scalars*](#scalars)[*DateTime*] | +`id` | [*Scalars*](#scalars)[*String*] | +`value` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1861](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1861) + +___ + +### `CustomerUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addAddress`? | [*Maybe*](#maybe)<[*AddCustomerAddress*](#addcustomeraddress)\> | +`addBillingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerBillingAddressId*](#addcustomerbillingaddressid)\> | +`addShippingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerShippingAddressId*](#addcustomershippingaddressid)\> | +`addStore`? | [*Maybe*](#maybe)<[*AddCustomerStore*](#addcustomerstore)\> | +`changeAddress`? | [*Maybe*](#maybe)<[*ChangeCustomerAddress*](#changecustomeraddress)\> | +`changeEmail`? | [*Maybe*](#maybe)<[*ChangeCustomerEmail*](#changecustomeremail)\> | +`removeAddress`? | [*Maybe*](#maybe)<[*RemoveCustomerAddress*](#removecustomeraddress)\> | +`removeBillingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerBillingAddressId*](#removecustomerbillingaddressid)\> | +`removeShippingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerShippingAddressId*](#removecustomershippingaddressid)\> | +`removeStore`? | [*Maybe*](#maybe)<[*RemoveCustomerStore*](#removecustomerstore)\> | +`setCompanyName`? | [*Maybe*](#maybe)<[*SetCustomerCompanyName*](#setcustomercompanyname)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerCustomField*](#setcustomercustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerCustomType*](#setcustomercustomtype)\> | +`setCustomerGroup`? | [*Maybe*](#maybe)<[*SetCustomerGroup*](#setcustomergroup)\> | +`setCustomerNumber`? | [*Maybe*](#maybe)<[*SetCustomerNumber*](#setcustomernumber)\> | +`setDateOfBirth`? | [*Maybe*](#maybe)<[*SetCustomerDateOfBirth*](#setcustomerdateofbirth)\> | +`setDefaultBillingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultBillingAddress*](#setcustomerdefaultbillingaddress)\> | +`setDefaultShippingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultShippingAddress*](#setcustomerdefaultshippingaddress)\> | +`setExternalId`? | [*Maybe*](#maybe)<[*SetCustomerExternalId*](#setcustomerexternalid)\> | +`setFirstName`? | [*Maybe*](#maybe)<[*SetCustomerFirstName*](#setcustomerfirstname)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetCustomerKey*](#setcustomerkey)\> | +`setLastName`? | [*Maybe*](#maybe)<[*SetCustomerLastName*](#setcustomerlastname)\> | +`setLocale`? | [*Maybe*](#maybe)<[*SetCustomerLocale*](#setcustomerlocale)\> | +`setMiddleName`? | [*Maybe*](#maybe)<[*SetCustomerMiddleName*](#setcustomermiddlename)\> | +`setSalutation`? | [*Maybe*](#maybe)<[*SetCustomerSalutation*](#setcustomersalutation)\> | +`setStores`? | [*Maybe*](#maybe)<[*SetCustomerStores*](#setcustomerstores)\> | +`setTitle`? | [*Maybe*](#maybe)<[*SetCustomerTitle*](#setcustomertitle)\> | +`setVatId`? | [*Maybe*](#maybe)<[*SetCustomerVatId*](#setcustomervatid)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1870) + +___ + +### `DateAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2055) + +___ + +### `DateAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2061](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2061) + +___ + +### `DateField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2066](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2066) + +___ + +### `DateTimeAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2072](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2072) + +___ + +### `DateTimeAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2078](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2078) + +___ + +### `DateTimeField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2083) + +___ + +### `DateTimeType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2089](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2089) + +___ + +### `DateType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2094](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2094) + +___ + +### `Delivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Delivery* | +`address`? | [*Maybe*](#maybe)<[*Address*](#address)\> | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`id` | [*Scalars*](#scalars)[*String*] | +`items` | [*DeliveryItem*](#deliveryitem)[] | +`parcels` | [*Parcel*](#parcel)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2099](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2099) + +___ + +### `DeliveryItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DeliveryItem* | +`id` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2108](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2108) + +___ + +### `DeliveryItemDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2114](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2114) + +___ + +### `Dimensions` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Dimensions* | +`height` | [*Scalars*](#scalars)[*Int*] | +`width` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2119) + +___ + +### `DimensionsInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`height` | [*Scalars*](#scalars)[*Int*] | +`width` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2125](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2125) + +___ + +### `DiscountCode` + +With discount codes it is possible to give specific cart discounts to an +eligible amount of users. They are defined by a string value which can be added +to a cart so that specific cart discounts can be applied to the cart. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2134](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2134) + +___ + +### `DiscountCodeCustomFieldListArgs` + +With discount codes it is possible to give specific cart discounts to an +eligible amount of users. They are defined by a string value which can be added +to a cart so that specific cart discounts can be applied to the cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2199](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2199) + +___ + +### `DiscountCodeCustomFieldsRawArgs` + +With discount codes it is possible to give specific cart discounts to an +eligible amount of users. They are defined by a string value which can be added +to a cart so that specific cart discounts can be applied to the cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2190](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2190) + +___ + +### `DiscountCodeDescriptionArgs` + +With discount codes it is possible to give specific cart discounts to an +eligible amount of users. They are defined by a string value which can be added +to a cart so that specific cart discounts can be applied to the cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2181](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2181) + +___ + +### `DiscountCodeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cartDiscounts` | [*ReferenceInput*](#referenceinput)[] | +`cartPredicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`code` | [*Scalars*](#scalars)[*String*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`groups`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`maxApplications`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`maxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2204](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2204) + +___ + +### `DiscountCodeInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DiscountCodeInfo* | +`discountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | +`discountCodeRef` | [*Reference*](#reference) | +`state`? | [*Maybe*](#maybe)<[*DiscountCodeState*](../enums/types_graphql.discountcodestate.md)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2219) + +___ + +### `DiscountCodeNameArgs` + +With discount codes it is possible to give specific cart discounts to an +eligible amount of users. They are defined by a string value which can be added +to a cart so that specific cart discounts can be applied to the cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2172) + +___ + +### `DiscountCodeQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DiscountCodeQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*DiscountCode*](#discountcode)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2226](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2226) + +___ + +### `DiscountCodeUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`changeCartDiscounts`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeCartDiscounts*](#changediscountcodecartdiscounts)\> | +`changeGroups`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeGroups*](#changediscountcodegroups)\> | +`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeIsActive*](#changediscountcodeisactive)\> | +`setCartPredicate`? | [*Maybe*](#maybe)<[*SetDiscountCodeCartPredicate*](#setdiscountcodecartpredicate)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetDiscountCodeCustomField*](#setdiscountcodecustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetDiscountCodeCustomType*](#setdiscountcodecustomtype)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetDiscountCodeDescription*](#setdiscountcodedescription)\> | +`setMaxApplications`? | [*Maybe*](#maybe)<[*SetDiscountCodeMaxApplications*](#setdiscountcodemaxapplications)\> | +`setMaxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*SetDiscountCodeMaxApplicationsPerCustomer*](#setdiscountcodemaxapplicationspercustomer)\> | +`setName`? | [*Maybe*](#maybe)<[*SetDiscountCodeName*](#setdiscountcodename)\> | +`setValidFrom`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidFrom*](#setdiscountcodevalidfrom)\> | +`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidFromAndUntil*](#setdiscountcodevalidfromanduntil)\> | +`setValidUntil`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidUntil*](#setdiscountcodevaliduntil)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2260](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2260) + +___ + +### `DiscountedLineItemPortion` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DiscountedLineItemPortion* | +`discount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | +`discountRef` | [*Reference*](#reference) | +`discountedAmount` | [*BaseMoney*](#basemoney) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2278) + +___ + +### `DiscountedLineItemPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DiscountedLineItemPrice* | +`includedDiscounts` | [*DiscountedLineItemPortion*](#discountedlineitemportion)[] | +`value` | [*BaseMoney*](#basemoney) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2285](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2285) + +___ + +### `DiscountedLineItemPriceForQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *DiscountedLineItemPriceForQuantity* | +`discountedPrice` | [*DiscountedLineItemPrice*](#discountedlineitemprice) | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2291](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2291) + +___ + +### `DiscountedProductPriceValue` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *DiscountedProductPriceValue* | - | +`discount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | +`discountRef` | [*Reference*](#reference) | - | +`discountRel`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | Temporal. Will be renamed some time in the future. Please use 'discount'. | +`value` | [*BaseMoney*](#basemoney) | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2297](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2297) + +___ + +### `DiscountedProductPriceValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`discount` | [*ReferenceInput*](#referenceinput) | +`value` | [*BaseMoneyInput*](#basemoneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2306](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2306) + +___ + +### `EnumAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2311) + +___ + +### `EnumAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2318](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2318) + +___ + +### `EnumAttributeDefinitionTypeValuesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2324](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2324) + +___ + +### `EnumField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2332](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2332) + +___ + +### `EnumType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2338](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2338) + +___ + +### `EnumTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`values` | [*PlainEnumValueDraft*](#plainenumvaluedraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2344](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2344) + +___ + +### `EnumValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *EnumValue* | +`key` | [*Scalars*](#scalars)[*String*] | +`label` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2348) + +___ + +### `ExternalDiscountValue` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2354](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2354) + +___ + +### `ExternalDiscountValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2359](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2359) + +___ + +### `ExternalLineItemTotalPriceDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`price` | [*BaseMoneyInput*](#basemoneyinput) | +`totalPrice` | [*MoneyInput*](#moneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2363](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2363) + +___ + +### `ExternalOAuth` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ExternalOAuth* | +`authorizationHeader` | [*Scalars*](#scalars)[*String*] | +`url` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2368](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2368) + +___ + +### `ExternalOAuthDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`authorizationHeader` | [*Scalars*](#scalars)[*String*] | +`url` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2374](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2374) + +___ + +### `ExternalTaxAmountDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxRate` | [*ExternalTaxRateDraft*](#externaltaxratedraft) | +`totalGross` | [*MoneyInput*](#moneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2379](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2379) + +___ + +### `ExternalTaxRateDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`amount` | [*Scalars*](#scalars)[*Float*] | +`country` | [*Scalars*](#scalars)[*Country*] | +`includedInPrice`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`subRates`? | [*Maybe*](#maybe)<[*SubRateDraft*](#subratedraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2384](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2384) + +___ + +### `FieldDefinition` + +Field definitions describe custom fields and allow you to define some meta-information associated with the field. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *FieldDefinition* | +`inputHint` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | +`name` | [*Scalars*](#scalars)[*String*] | +`required` | [*Scalars*](#scalars)[*Boolean*] | +`type` | [*FieldType*](#fieldtype) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2394) + +___ + +### `FieldDefinitionLabelArgs` + +Field definitions describe custom fields and allow you to define some meta-information associated with the field. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2405](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2405) + +___ + +### `FieldType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2410](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2410) + +___ + +### `Geometry` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2414](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2414) + +___ + +### `GiftLineItemValue` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2418](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2418) + +___ + +### `GiftLineItemValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`product` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`variantId` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2427](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2427) + +___ + +### `HighPrecisionMoney` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2434](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2434) + +___ + +### `HighPrecisionMoneyInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`centAmount`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | +`fractionDigits` | [*Scalars*](#scalars)[*Int*] | +`preciseAmount` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2443](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2443) + +___ + +### `IOsUserType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2698](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2698) + +___ + +### `Image` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Image* | +`dimensions` | [*Dimensions*](#dimensions) | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`url` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2450](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2450) + +___ + +### `ImageInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dimensions` | [*DimensionsInput*](#dimensionsinput) | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`url` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2457](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2457) + +___ + +### `ImportOrderCustomLineItemState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`state` | [*ItemStateDraftType*](#itemstatedrafttype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2463](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2463) + +___ + +### `ImportOrderLineItemState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`state` | [*ItemStateDraftType*](#itemstatedrafttype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2468) + +___ + +### `InStore` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2483](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2483) + +___ + +### `InStoreCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2523](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2523) + +___ + +### `InStoreCartsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2527](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2527) + +___ + +### `InStoreCustomerActiveCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2534) + +___ + +### `InStoreCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2509) + +___ + +### `InStoreCustomersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2516) + +___ + +### `InStoreMe` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2550](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2550) + +___ + +### `InStoreMeCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2562](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2562) + +___ + +### `InStoreMeCartsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2566](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2566) + +___ + +### `InStoreMeOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2573) + +___ + +### `InStoreMeOrdersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2578) + +___ + +### `InStoreMeShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2585](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2585) + +___ + +### `InStoreMeShoppingListsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2590](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2590) + +___ + +### `InStoreOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2538](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2538) + +___ + +### `InStoreOrdersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2543](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2543) + +___ + +### `InStoreShippingMethodsByCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2505](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2505) + +___ + +### `Initiator` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Initiator* | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`clientId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`customer`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | +`externalUserId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`isPlatformClient`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`user`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2473](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2473) + +___ + +### `InterfaceInteractionsRaw` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *InterfaceInteractionsRaw* | +`fields` | [*RawCustomField*](#rawcustomfield)[] | +`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | +`typeRef` | [*Reference*](#reference) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2597](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2597) + +___ + +### `InterfaceInteractionsRawFieldsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2604](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2604) + +___ + +### `InterfaceInteractionsRawResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *InterfaceInteractionsRawResult* | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`results` | [*InterfaceInteractionsRaw*](#interfaceinteractionsraw)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2609](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2609) + +___ + +### `InventoryEntry` + +Inventory allows you to track stock quantity per SKU and optionally per supply channel + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2618](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2618) + +___ + +### `InventoryEntryCustomFieldListArgs` + +Inventory allows you to track stock quantity per SKU and optionally per supply channel + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2648) + +___ + +### `InventoryEntryCustomFieldsRawArgs` + +Inventory allows you to track stock quantity per SKU and optionally per supply channel + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2642](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2642) + +___ + +### `InventoryEntryDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`expectedDelivery`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`quantityOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sku` | [*Scalars*](#scalars)[*String*] | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2653) + +___ + +### `InventoryEntryQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *InventoryEntryQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*InventoryEntry*](#inventoryentry)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2662](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2662) + +___ + +### `InventoryEntryUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addQuantity`? | [*Maybe*](#maybe)<[*AddInventoryEntryQuantity*](#addinventoryentryquantity)\> | +`changeQuantity`? | [*Maybe*](#maybe)<[*ChangeInventoryEntryQuantity*](#changeinventoryentryquantity)\> | +`removeQuantity`? | [*Maybe*](#maybe)<[*RemoveInventoryEntryQuantity*](#removeinventoryentryquantity)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetInventoryEntryCustomField*](#setinventoryentrycustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetInventoryEntryCustomType*](#setinventoryentrycustomtype)\> | +`setExpectedDelivery`? | [*Maybe*](#maybe)<[*SetInventoryEntryExpectedDelivery*](#setinventoryentryexpecteddelivery)\> | +`setRestockableInDays`? | [*Maybe*](#maybe)<[*SetInventoryEntryRestockableInDays*](#setinventoryentryrestockableindays)\> | +`setSupplyChannel`? | [*Maybe*](#maybe)<[*SetInventoryEntrySupplyChannel*](#setinventoryentrysupplychannel)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2670) + +___ + +### `ItemShippingDetails` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ItemShippingDetails* | +`targets` | [*ItemShippingTarget*](#itemshippingtarget)[] | +`valid` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2706](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2706) + +___ + +### `ItemShippingDetailsDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`targets` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2712](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2712) + +___ + +### `ItemShippingDetailsDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`targets` | [*ShippingTargetDraftType*](#shippingtargetdrafttype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2716](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2716) + +___ + +### `ItemShippingTarget` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ItemShippingTarget* | +`addressKey` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2720](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2720) + +___ + +### `ItemState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ItemState* | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`state`? | [*Maybe*](#maybe)<[*State*](#state)\> | +`stateRef` | [*Reference*](#reference) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2726) + +___ + +### `ItemStateDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`state` | [*ReferenceInput*](#referenceinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2733](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2733) + +___ + +### `KeyReference` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *KeyReference* | +`key` | [*Scalars*](#scalars)[*String*] | +`typeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2738](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2738) + +___ + +### `LineItem` + +A line item is a snapshot of a product variant at the time it was added to the cart. + +Since a product variant may change at any time, the ProductVariant data is copied into the field variant. +The relation to the Product is kept but the line item will not automatically update if the product variant changes. +On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. +It can be used to link to the product. If the product has been deleted, the line item remains but refers to a +non-existent product and the productSlug is left empty. + +Please also note that creating an order is impossible if the product or product +variant a line item relates to has been deleted. + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *LineItem* | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | +`discountedPricePerQuantity` | [*DiscountedLineItemPriceForQuantity*](#discountedlineitempriceforquantity)[] | - | +`distributionChannel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | - | +`distributionChannelRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`id` | [*Scalars*](#scalars)[*String*] | - | +`inventoryMode`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | +`lineItemMode` | [*LineItemMode*](../enums/types_graphql.lineitemmode.md) | - | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | +`price` | [*ProductPrice*](#productprice) | - | +`priceMode` | [*LineItemPriceMode*](../enums/types_graphql.lineitempricemode.md) | - | +`productId` | [*Scalars*](#scalars)[*String*] | - | +`productSlug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`productType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | +`productTypeRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`quantity` | [*Scalars*](#scalars)[*Long*] | - | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | +`state` | [*ItemState*](#itemstate)[] | - | +`supplyChannel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | - | +`supplyChannelRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | - | +`taxedPrice`? | [*Maybe*](#maybe)<[*TaxedItemPrice*](#taxeditemprice)\> | - | +`totalPrice`? | [*Maybe*](#maybe)<[*Money*](#money)\> | - | +`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2755](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2755) + +___ + +### `LineItemCustomFieldListArgs` + +A line item is a snapshot of a product variant at the time it was added to the cart. + +Since a product variant may change at any time, the ProductVariant data is copied into the field variant. +The relation to the Product is kept but the line item will not automatically update if the product variant changes. +On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. +It can be used to link to the product. If the product has been deleted, the line item remains but refers to a +non-existent product and the productSlug is left empty. + +Please also note that creating an order is impossible if the product or product +variant a line item relates to has been deleted. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2848](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2848) + +___ + +### `LineItemCustomFieldsRawArgs` + +A line item is a snapshot of a product variant at the time it was added to the cart. + +Since a product variant may change at any time, the ProductVariant data is copied into the field variant. +The relation to the Product is kept but the line item will not automatically update if the product variant changes. +On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. +It can be used to link to the product. If the product has been deleted, the line item remains but refers to a +non-existent product and the productSlug is left empty. + +Please also note that creating an order is impossible if the product or product +variant a line item relates to has been deleted. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2832](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2832) + +___ + +### `LineItemDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | +`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2853](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2853) + +___ + +### `LineItemNameArgs` + +A line item is a snapshot of a product variant at the time it was added to the cart. + +Since a product variant may change at any time, the ProductVariant data is copied into the field variant. +The relation to the Product is kept but the line item will not automatically update if the product variant changes. +On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. +It can be used to link to the product. If the product has been deleted, the line item remains but refers to a +non-existent product and the productSlug is left empty. + +Please also note that creating an order is impossible if the product or product +variant a line item relates to has been deleted. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2800](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2800) + +___ + +### `LineItemProductSlugArgs` + +A line item is a snapshot of a product variant at the time it was added to the cart. + +Since a product variant may change at any time, the ProductVariant data is copied into the field variant. +The relation to the Product is kept but the line item will not automatically update if the product variant changes. +On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. +It can be used to link to the product. If the product has been deleted, the line item remains but refers to a +non-existent product and the productSlug is left empty. + +Please also note that creating an order is impossible if the product or product +variant a line item relates to has been deleted. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2816](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2816) + +___ + +### `LineItemReturnItem` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2893](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2893) + +___ + +### `LineItemsTarget` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2906](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2906) + +___ + +### `LineItemsTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`predicate` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2912](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2912) + +___ + +### `LocalizableEnumAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2916](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2916) + +___ + +### `LocalizableEnumAttributeDefinitionTypeValuesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2922](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2922) + +___ + +### `LocalizableEnumTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`values` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2930](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2930) + +___ + +### `LocalizableEnumValueType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *LocalizableEnumValueType* | +`key` | [*Scalars*](#scalars)[*String*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2934](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2934) + +___ + +### `LocalizableEnumValueTypeLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2941](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2941) + +___ + +### `LocalizableEnumValueTypeResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *LocalizableEnumValueTypeResult* | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`results` | [*LocalizableEnumValueType*](#localizableenumvaluetype)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2946](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2946) + +___ + +### `LocalizableTextAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2954](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2954) + +___ + +### `LocalizedEnumAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2959](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2959) + +___ + +### `LocalizedEnumAttributeLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2966](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2966) + +___ + +### `LocalizedEnumField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2970](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2970) + +___ + +### `LocalizedEnumFieldLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2977](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2977) + +___ + +### `LocalizedEnumType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2981](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2981) + +___ + +### `LocalizedEnumValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *LocalizedEnumValue* | +`key` | [*Scalars*](#scalars)[*String*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2987](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2987) + +___ + +### `LocalizedEnumValueDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*String*] | +`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2999](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2999) + +___ + +### `LocalizedEnumValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*String*] | +`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3004](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3004) + +___ + +### `LocalizedEnumValueLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2994](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2994) + +___ + +### `LocalizedString` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *LocalizedString* | +`locale` | [*Scalars*](#scalars)[*Locale*] | +`value` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3009](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3009) + +___ + +### `LocalizedStringAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3015) + +___ + +### `LocalizedStringAttributeValueArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3021](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3021) + +___ + +### `LocalizedStringField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3025](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3025) + +___ + +### `LocalizedStringFieldValueArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3031](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3031) + +___ + +### `LocalizedStringItemInputType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | +`value` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3035](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3035) + +___ + +### `LocalizedStringType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3040) + +___ + +### `LocalizedText` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | +`text` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3045](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3045) + +___ + +### `Location` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Location* | +`country` | [*Scalars*](#scalars)[*Country*] | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3050) + +___ + +### `MainProductType` + +Sunrise Product Data Set Structure + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3057](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3057) + +___ + +### `Maybe` + +#### Type parameters: + +Name | +:------ | +`T` | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3) + +___ + +### `Me` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3083) + +___ + +### `MeCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3095](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3095) + +___ + +### `MeCartsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3099](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3099) + +___ + +### `MeFieldInterface` + +The me field gives access to the data that is specific to the customer or anonymous session linked to the access token. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`me` | [*MeQueryInterface*](#mequeryinterface) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3131](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3131) + +___ + +### `MeOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3106](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3106) + +___ + +### `MeOrdersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3111](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3111) + +___ + +### `MeQueryInterface` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`activeCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | +`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | +`carts` | [*CartQueryResult*](#cartqueryresult) | +`order`? | [*Maybe*](#maybe)<[*Order*](#order)\> | +`orders` | [*OrderQueryResult*](#orderqueryresult) | +`shoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | +`shoppingLists` | [*ShoppingListQueryResult*](#shoppinglistqueryresult) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3135](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3135) + +___ + +### `MeQueryInterfaceCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3145](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3145) + +___ + +### `MeQueryInterfaceCartsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3149](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3149) + +___ + +### `MeQueryInterfaceOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3156) + +___ + +### `MeQueryInterfaceOrdersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3161](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3161) + +___ + +### `MeQueryInterfaceShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3168](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3168) + +___ + +### `MeQueryInterfaceShoppingListsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3173](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3173) + +___ + +### `MeShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3118](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3118) + +___ + +### `MeShoppingListsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3123](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3123) + +___ + +### `MessagesConfiguration` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *MessagesConfiguration* | +`deleteDaysAfterCreation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`enabled` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3180](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3180) + +___ + +### `MessagesConfigurationDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deleteDaysAfterCreation` | [*Scalars*](#scalars)[*Int*] | +`enabled` | [*Scalars*](#scalars)[*Boolean*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3186](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3186) + +___ + +### `Money` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3191](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3191) + +___ + +### `MoneyAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3200) + +___ + +### `MoneyAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3207](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3207) + +___ + +### `MoneyDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`centAmount` | [*Scalars*](#scalars)[*Long*] | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3212) + +___ + +### `MoneyField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3217](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3217) + +___ + +### `MoneyInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`centAmount` | [*Scalars*](#scalars)[*Long*] | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3224](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3224) + +___ + +### `MoneyType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3229](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3229) + +___ + +### `MoveProductImageToPosition` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`imageUrl` | [*Scalars*](#scalars)[*String*] | +`position` | [*Scalars*](#scalars)[*Int*] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3234](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3234) + +___ + +### `MultiBuyCustomLineItemsTarget` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3242](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3242) + +___ + +### `MultiBuyCustomLineItemsTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`discountedQuantity` | [*Scalars*](#scalars)[*Long*] | +`maxOccurrence`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`predicate` | [*Scalars*](#scalars)[*String*] | +`selectionMode`? | [*Maybe*](#maybe)<[*SelectionMode*](../enums/types_graphql.selectionmode.md)\> | +`triggerQuantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3252](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3252) + +___ + +### `MultiBuyLineItemsTarget` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3260](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3260) + +___ + +### `MultiBuyLineItemsTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`discountedQuantity` | [*Scalars*](#scalars)[*Long*] | +`maxOccurrence`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`predicate` | [*Scalars*](#scalars)[*String*] | +`selectionMode`? | [*Maybe*](#maybe)<[*SelectionMode*](../enums/types_graphql.selectionmode.md)\> | +`triggerQuantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3270](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3270) + +___ + +### `Mutation` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *Mutation* | - | +`createApiClient`? | [*Maybe*](#maybe)<[*ApiClientWithSecret*](#apiclientwithsecret)\> | - | +`createCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`createCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | +`createCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | +`createCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | +`createDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | +`createInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | +`createMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`createMyOrderFromCart`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | +`createMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`createOrderFromCart`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | +`createProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | +`createProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | +`createProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | +`createShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | +`createShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`createStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | +`createTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | +`createZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | +`customerChangeMyPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`customerChangePassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`customerConfirmEmail`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | Verifies customer's email using a token. | +`customerConfirmMyEmail`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`customerCreateEmailVerificationToken` | [*CustomerToken*](#customertoken) | - | +`customerCreatePasswordResetToken`? | [*Maybe*](#maybe)<[*CustomerToken*](#customertoken)\> | The token value is used to reset the password of the customer with the given email. The token is valid only for 10 minutes. | +`customerResetMyPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`customerResetPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | The following workflow can be used to reset the customer’s password: 1. Create a password reset token and send it embedded in a link to the customer. 2. When the customer clicks on the link, you may optionally retrieve customer by password token. 3. When the customer entered new password, use reset customer’s password to reset the password. | +`customerSignIn` | [*CustomerSignInResult*](#customersigninresult) | Retrieves the authenticated customer (a customer that matches the given email/password pair). There may be carts and orders created before the sign in that should be assigned to the customer account. With the `anonymousCartId`, a single anonymous cart can be assigned. With the `anonymousId`, all orders and carts that have this `anonymousId` set will be assigned to the customer. If both `anonymousCartId` and `anonymousId` are given, the anonymous cart must have the `anonymousId`. Additionally, there might also exist one or more active customer carts from an earlier session. On customer sign in there are several ways how to proceed with this cart and the cart referenced by the `anonymousCartId`. * If the customer does not have a cart yet, the anonymous cart becomes the customer's cart. * If the customer already has one or more carts, the content of the anonymous cart will be copied to the customer's active cart that has been modified most recently. In this case the `CartState` of the anonymous cart gets changed to `Merged` while the customer's cart remains the `Active` cart. If a `LineItem` in the anonymous cart matches an existing line item, or a `CustomLineItem` matches an existing custom line item in the customer's cart, the maximum quantity of both line items is used as the new quantity. `ItemShippingDetails` are copied from the item with the highest quantity. If `itemShippingAddresses` are different in the two carts, the resulting cart contains the addresses of both the customer cart and the anonymous cart. Note, that it is not possible to merge carts that differ in their currency (set during creation of the cart). If a cart is is returned as part of the `CustomerSignInResult`, it has been recalculated (it will have up-to-date prices, taxes and discounts, and invalid line items have been removed). | +`customerSignMeIn` | [*CustomerSignInResult*](#customersigninresult) | Retrieves the authenticated customer (a customer that matches the given email/password pair). If used with an access token for Anonymous Sessions, all orders and carts belonging to the `anonymousId` will be assigned to the newly created customer. * If the customer does not have a cart yet, the anonymous cart that was modified most recently becomes the customer's cart. * If the customer already has a cart, the most recently modified anonymous cart will be handled according to the `AnonymousCartSignInMode`. If a cart is is returned as part of the `CustomerSignInResult`, it has been recalculated (it will have up-to-date prices, taxes and discounts, and invalid line items have been removed). | +`customerSignMeUp` | [*CustomerSignInResult*](#customersigninresult) | If used with an access token for Anonymous Sessions, all orders and carts belonging to the anonymousId will be assigned to the newly created customer. | +`customerSignUp` | [*CustomerSignInResult*](#customersigninresult) | Creates a customer. If an anonymous cart is given then the cart is assigned to the created customer and the version number of the Cart will increase. If the id of an anonymous session is given, all carts and orders will be assigned to the created customer. | +`deleteApiClient`? | [*Maybe*](#maybe)<[*ApiClientWithoutSecret*](#apiclientwithoutsecret)\> | - | +`deleteCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`deleteCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | +`deleteCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | +`deleteCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`deleteCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | +`deleteDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | +`deleteInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | +`deleteMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`deleteMyCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`deleteMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`deleteOrder`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | +`deleteProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | +`deleteProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | +`deleteProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | +`deleteShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | +`deleteShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`deleteStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | +`deleteTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | +`deleteZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | +`replicateCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`updateCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`updateCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | +`updateCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | +`updateCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`updateCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | +`updateDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | +`updateInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | +`updateMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | +`updateMyCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | +`updateMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`updateOrder`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | +`updateProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | +`updateProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | +`updateProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | +`updateProject`? | [*Maybe*](#maybe)<[*ProjectProjection*](#projectprojection)\> | - | +`updateShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | +`updateShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | +`updateStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | +`updateTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | +`updateZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3278) + +___ + +### `MutationCreateApiClientArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CreateApiClient*](#createapiclient) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3825](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3825) + +___ + +### `MutationCreateCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CartDraft*](#cartdraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3703](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3703) + +___ + +### `MutationCreateCartDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CartDiscountDraft*](#cartdiscountdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3537](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3537) + +___ + +### `MutationCreateCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CategoryDraft*](#categorydraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3437](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3437) + +___ + +### `MutationCreateCustomerGroupArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CustomerGroupDraft*](#customergroupdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3420](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3420) + +___ + +### `MutationCreateDiscountCodeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*DiscountCodeDraft*](#discountcodedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3522](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3522) + +___ + +### `MutationCreateInventoryEntryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*InventoryEntryDraft*](#inventoryentrydraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3688](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3688) + +___ + +### `MutationCreateMyCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*MyCartDraft*](#mycartdraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3726) + +___ + +### `MutationCreateMyOrderFromCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*OrderMyCartCommand*](#ordermycartcommand) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3765](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3765) + +___ + +### `MutationCreateMyShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*MyShoppingListDraft*](#myshoppinglistdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3788](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3788) + +___ + +### `MutationCreateOrderFromCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*OrderCartCommand*](#ordercartcommand) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3744](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3744) + +___ + +### `MutationCreateProductArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*ProductDraft*](#productdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3571](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3571) + +___ + +### `MutationCreateProductDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*ProductDiscountDraft*](#productdiscountdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3554](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3554) + +___ + +### `MutationCreateProductTypeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*ProductTypeDraft*](#producttypedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3454](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3454) + +___ + +### `MutationCreateShippingMethodArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*ShippingMethodDraft*](#shippingmethoddraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3471](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3471) + +___ + +### `MutationCreateShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*ShoppingListDraft*](#shoppinglistdraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3770](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3770) + +___ + +### `MutationCreateStoreArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CreateStore*](#createstore) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3808](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3808) + +___ + +### `MutationCreateTaxCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*TaxCategoryDraft*](#taxcategorydraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3505](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3505) + +___ + +### `MutationCreateZoneArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CreateZone*](#createzone) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3488](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3488) + +___ + +### `MutationCustomerChangeMyPasswordArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`currentPassword` | [*Scalars*](#scalars)[*String*] | +`newPassword` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3670) + +___ + +### `MutationCustomerChangePasswordArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`currentPassword` | [*Scalars*](#scalars)[*String*] | +`id` | [*Scalars*](#scalars)[*String*] | +`newPassword` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3614](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3614) + +___ + +### `MutationCustomerConfirmEmailArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`tokenValue` | [*Scalars*](#scalars)[*String*] | +`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3629](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3629) + +___ + +### `MutationCustomerConfirmMyEmailArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`tokenValue` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3677) + +___ + +### `MutationCustomerCreateEmailVerificationTokenArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`ttlMinutes` | [*Scalars*](#scalars)[*Int*] | +`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3641](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3641) + +___ + +### `MutationCustomerCreatePasswordResetTokenArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`email` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`ttlMinutes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3635](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3635) + +___ + +### `MutationCustomerResetMyPasswordArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`newPassword` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`tokenValue` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3682](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3682) + +___ + +### `MutationCustomerResetPasswordArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`newPassword` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`tokenValue` | [*Scalars*](#scalars)[*String*] | +`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3622](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3622) + +___ + +### `MutationCustomerSignInArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CustomerSignInDraft*](#customersignindraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3593](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3593) + +___ + +### `MutationCustomerSignMeInArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CustomerSignMeInDraft*](#customersignmeindraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3653) + +___ + +### `MutationCustomerSignMeUpArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CustomerSignMeUpDraft*](#customersignmeupdraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3648) + +___ + +### `MutationCustomerSignUpArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`draft` | [*CustomerSignUpDraft*](#customersignupdraft) | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3588](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3588) + +___ + +### `MutationDeleteApiClientArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3829](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3829) + +___ + +### `MutationDeleteCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3715](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3715) + +___ + +### `MutationDeleteCartDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3548](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3548) + +___ + +### `MutationDeleteCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3448) + +___ + +### `MutationDeleteCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3606) + +___ + +### `MutationDeleteCustomerGroupArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3431](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3431) + +___ + +### `MutationDeleteDiscountCodeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3532) + +___ + +### `MutationDeleteInventoryEntryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3698](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3698) + +___ + +### `MutationDeleteMyCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3738](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3738) + +___ + +### `MutationDeleteMyCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3664](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3664) + +___ + +### `MutationDeleteMyShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3798](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3798) + +___ + +### `MutationDeleteOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3757) + +___ + +### `MutationDeleteProductArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3582](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3582) + +___ + +### `MutationDeleteProductDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3565](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3565) + +___ + +### `MutationDeleteProductTypeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3465](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3465) + +___ + +### `MutationDeleteShippingMethodArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3482](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3482) + +___ + +### `MutationDeleteShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3781](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3781) + +___ + +### `MutationDeleteStoreArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3819) + +___ + +### `MutationDeleteTaxCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3516) + +___ + +### `MutationDeleteZoneArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3499) + +___ + +### `MutationReplicateCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`reference` | [*ReferenceInput*](#referenceinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3722) + +___ + +### `MutationUpdateCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*CartUpdateAction*](#cartupdateaction)[] | +`id` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3708](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3708) + +___ + +### `MutationUpdateCartDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*CartDiscountUpdateAction*](#cartdiscountupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3541](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3541) + +___ + +### `MutationUpdateCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*CategoryUpdateAction*](#categoryupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3441](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3441) + +___ + +### `MutationUpdateCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*CustomerUpdateAction*](#customerupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3598](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3598) + +___ + +### `MutationUpdateCustomerGroupArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*CustomerGroupUpdateAction*](#customergroupupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3424](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3424) + +___ + +### `MutationUpdateDiscountCodeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*DiscountCodeUpdateAction*](#discountcodeupdateaction)[] | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3526](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3526) + +___ + +### `MutationUpdateInventoryEntryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*InventoryEntryUpdateAction*](#inventoryentryupdateaction)[] | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3692](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3692) + +___ + +### `MutationUpdateMyCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*MyCartUpdateAction*](#mycartupdateaction)[] | +`id` | [*Scalars*](#scalars)[*String*] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3731](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3731) + +___ + +### `MutationUpdateMyCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*MyCustomerUpdateAction*](#mycustomerupdateaction)[] | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3658) + +___ + +### `MutationUpdateMyShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*MyShoppingListUpdateAction*](#myshoppinglistupdateaction)[] | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3792](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3792) + +___ + +### `MutationUpdateOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*OrderUpdateAction*](#orderupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3749](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3749) + +___ + +### `MutationUpdateProductArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ProductUpdateAction*](#productupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3575](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3575) + +___ + +### `MutationUpdateProductDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ProductDiscountUpdateAction*](#productdiscountupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3558](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3558) + +___ + +### `MutationUpdateProductTypeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ProductTypeUpdateAction*](#producttypeupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3458) + +___ + +### `MutationUpdateProjectArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ProjectSettingsUpdateAction*](#projectsettingsupdateaction)[] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3803](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3803) + +___ + +### `MutationUpdateShippingMethodArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ShippingMethodUpdateAction*](#shippingmethodupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3475](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3475) + +___ + +### `MutationUpdateShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ShoppingListUpdateAction*](#shoppinglistupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3774) + +___ + +### `MutationUpdateStoreArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*StoreUpdateAction*](#storeupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3812](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3812) + +___ + +### `MutationUpdateTaxCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*TaxCategoryUpdateAction*](#taxcategoryupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3509) + +___ + +### `MutationUpdateZoneArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actions` | [*ZoneUpdateAction*](#zoneupdateaction)[] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3492](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3492) + +___ + +### `MyCartDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`billingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | +`currency` | [*Scalars*](#scalars)[*Currency*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`customerEmail`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`discountCodes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`inventoryMode`? | [*Maybe*](#maybe)<[*InventoryMode*](../enums/types_graphql.inventorymode.md)\> | +`itemShippingAddresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | +`lineItems`? | [*Maybe*](#maybe)<[*MyLineItemDraft*](#mylineitemdraft)[]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | +`shippingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`taxMode`? | [*Maybe*](#maybe)<[*TaxMode*](../enums/types_graphql.taxmode.md)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3833](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3833) + +___ + +### `MyCartUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addDiscountCode`? | [*Maybe*](#maybe)<[*AddCartDiscountCode*](#addcartdiscountcode)\> | +`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddCartItemShippingAddress*](#addcartitemshippingaddress)\> | +`addLineItem`? | [*Maybe*](#maybe)<[*AddMyCartLineItem*](#addmycartlineitem)\> | +`addPayment`? | [*Maybe*](#maybe)<[*AddCartPayment*](#addcartpayment)\> | +`addShoppingList`? | [*Maybe*](#maybe)<[*AddCartShoppingList*](#addcartshoppinglist)\> | +`applyDeltaToLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToLineItemShippingDetailsTargets*](#applycartdeltatolineitemshippingdetailstargets)\> | +`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartLineItemQuantity*](#changecartlineitemquantity)\> | +`changeTaxMode`? | [*Maybe*](#maybe)<[*ChangeMyCartTaxMode*](#changemycarttaxmode)\> | +`recalculate`? | [*Maybe*](#maybe)<[*RecalculateCart*](#recalculatecart)\> | +`removeDiscountCode`? | [*Maybe*](#maybe)<[*RemoveCartDiscountCode*](#removecartdiscountcode)\> | +`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveCartItemShippingAddress*](#removecartitemshippingaddress)\> | +`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveCartLineItem*](#removecartlineitem)\> | +`removePayment`? | [*Maybe*](#maybe)<[*RemoveCartPayment*](#removecartpayment)\> | +`setBillingAddress`? | [*Maybe*](#maybe)<[*SetCartBillingAddress*](#setcartbillingaddress)\> | +`setCountry`? | [*Maybe*](#maybe)<[*SetCartCountry*](#setcartcountry)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomField*](#setcartcustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomType*](#setcartcustomtype)\> | +`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetCartCustomerEmail*](#setcartcustomeremail)\> | +`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetCartDeleteDaysAfterLastModification*](#setcartdeletedaysafterlastmodification)\> | +`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomField*](#setcartlineitemcustomfield)\> | +`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomType*](#setcartlineitemcustomtype)\> | +`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartLineItemShippingDetails*](#setcartlineitemshippingdetails)\> | +`setLocale`? | [*Maybe*](#maybe)<[*SetCartLocale*](#setcartlocale)\> | +`setShippingAddress`? | [*Maybe*](#maybe)<[*SetCartShippingAddress*](#setcartshippingaddress)\> | +`setShippingMethod`? | [*Maybe*](#maybe)<[*SetMyCartShippingMethod*](#setmycartshippingmethod)\> | +`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateCartItemShippingAddress*](#updatecartitemshippingaddress)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3850) + +___ + +### `MyCustomerUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addAddress`? | [*Maybe*](#maybe)<[*AddCustomerAddress*](#addcustomeraddress)\> | +`addBillingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerBillingAddressId*](#addcustomerbillingaddressid)\> | +`addShippingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerShippingAddressId*](#addcustomershippingaddressid)\> | +`changeAddress`? | [*Maybe*](#maybe)<[*ChangeCustomerAddress*](#changecustomeraddress)\> | +`changeEmail`? | [*Maybe*](#maybe)<[*ChangeCustomerEmail*](#changecustomeremail)\> | +`removeAddress`? | [*Maybe*](#maybe)<[*RemoveCustomerAddress*](#removecustomeraddress)\> | +`removeBillingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerBillingAddressId*](#removecustomerbillingaddressid)\> | +`removeShippingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerShippingAddressId*](#removecustomershippingaddressid)\> | +`setCompanyName`? | [*Maybe*](#maybe)<[*SetCustomerCompanyName*](#setcustomercompanyname)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerCustomField*](#setcustomercustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerCustomType*](#setcustomercustomtype)\> | +`setDateOfBirth`? | [*Maybe*](#maybe)<[*SetCustomerDateOfBirth*](#setcustomerdateofbirth)\> | +`setDefaultBillingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultBillingAddress*](#setcustomerdefaultbillingaddress)\> | +`setDefaultShippingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultShippingAddress*](#setcustomerdefaultshippingaddress)\> | +`setFirstName`? | [*Maybe*](#maybe)<[*SetCustomerFirstName*](#setcustomerfirstname)\> | +`setLastName`? | [*Maybe*](#maybe)<[*SetCustomerLastName*](#setcustomerlastname)\> | +`setLocale`? | [*Maybe*](#maybe)<[*SetCustomerLocale*](#setcustomerlocale)\> | +`setMiddleName`? | [*Maybe*](#maybe)<[*SetCustomerMiddleName*](#setcustomermiddlename)\> | +`setSalutation`? | [*Maybe*](#maybe)<[*SetCustomerSalutation*](#setcustomersalutation)\> | +`setTitle`? | [*Maybe*](#maybe)<[*SetCustomerTitle*](#setcustomertitle)\> | +`setVatId`? | [*Maybe*](#maybe)<[*SetCustomerVatId*](#setcustomervatid)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3883](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3883) + +___ + +### `MyLineItemDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3907](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3907) + +___ + +### `MyShoppingListDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`lineItems`? | [*Maybe*](#maybe)<[*ShoppingListLineItemDraft*](#shoppinglistlineitemdraft)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`textLineItems`? | [*Maybe*](#maybe)<[*TextLineItemDraft*](#textlineitemdraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3918](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3918) + +___ + +### `MyShoppingListUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListLineItem*](#addshoppinglistlineitem)\> | +`addTextLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListTextLineItem*](#addshoppinglisttextlineitem)\> | +`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemQuantity*](#changeshoppinglistlineitemquantity)\> | +`changeLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemsOrder*](#changeshoppinglistlineitemsorder)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeShoppingListName*](#changeshoppinglistname)\> | +`changeTextLineItemName`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemName*](#changeshoppinglisttextlineitemname)\> | +`changeTextLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemQuantity*](#changeshoppinglisttextlineitemquantity)\> | +`changeTextLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemsOrder*](#changeshoppinglisttextlineitemsorder)\> | +`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListLineItem*](#removeshoppinglistlineitem)\> | +`removeTextLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListTextLineItem*](#removeshoppinglisttextlineitem)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListCustomField*](#setshoppinglistcustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListCustomType*](#setshoppinglistcustomtype)\> | +`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetShoppingListDeleteDaysAfterLastModification*](#setshoppinglistdeletedaysafterlastmodification)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetShoppingListDescription*](#setshoppinglistdescription)\> | +`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomField*](#setshoppinglistlineitemcustomfield)\> | +`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomType*](#setshoppinglistlineitemcustomtype)\> | +`setTextLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomField*](#setshoppinglisttextlineitemcustomfield)\> | +`setTextLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomType*](#setshoppinglisttextlineitemcustomtype)\> | +`setTextLineItemDescription`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemDescription*](#setshoppinglisttextlineitemdescription)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3927](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3927) + +___ + +### `NestedAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3951) + +___ + +### `NumberAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3957) + +___ + +### `NumberAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3963](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3963) + +___ + +### `NumberField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3968](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3968) + +___ + +### `NumberType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3974](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3974) + +___ + +### `Order` + +An order can be created from a cart, usually after a checkout process has been completed. +[documentation](https://shopify.dev/api/storefront/reference/orders/order) + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3982](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3982) + +___ + +### `OrderCartCommand` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderState`? | [*Maybe*](#maybe)<[*OrderState*](../enums/types_graphql.orderstate.md)\> | +`paymentState`? | [*Maybe*](#maybe)<[*PaymentState*](../enums/types_graphql.paymentstate.md)\> | +`shipmentState`? | [*Maybe*](#maybe)<[*ShipmentState*](../enums/types_graphql.shipmentstate.md)\> | +`state`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4055) + +___ + +### `OrderMyCartCommand` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4065](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4065) + +___ + +### `OrderQueryInterface` + +Fields to access orders. Includes direct access to a single order and searching for orders. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`order`? | [*Maybe*](#maybe)<[*Order*](#order)\> | +`orders` | [*OrderQueryResult*](#orderqueryresult) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4071](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4071) + +___ + +### `OrderQueryInterfaceOrderArgs` + +Fields to access orders. Includes direct access to a single order and searching for orders. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4077](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4077) + +___ + +### `OrderQueryInterfaceOrdersArgs` + +Fields to access orders. Includes direct access to a single order and searching for orders. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4083) + +___ + +### `OrderQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *OrderQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Order*](#order)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4090](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4090) + +___ + +### `OrderUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addDelivery`? | [*Maybe*](#maybe)<[*AddOrderDelivery*](#addorderdelivery)\> | +`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddOrderItemShippingAddress*](#addorderitemshippingaddress)\> | +`addParcelToDelivery`? | [*Maybe*](#maybe)<[*AddOrderParcelToDelivery*](#addorderparceltodelivery)\> | +`addPayment`? | [*Maybe*](#maybe)<[*AddOrderPayment*](#addorderpayment)\> | +`addReturnInfo`? | [*Maybe*](#maybe)<[*AddOrderReturnInfo*](#addorderreturninfo)\> | +`changeOrderState`? | [*Maybe*](#maybe)<[*ChangeOrderState*](#changeorderstate)\> | +`changePaymentState`? | [*Maybe*](#maybe)<[*ChangeOrderPaymentState*](#changeorderpaymentstate)\> | +`changeShipmentState`? | [*Maybe*](#maybe)<[*ChangeOrderShipmentState*](#changeordershipmentstate)\> | +`importCustomLineItemState`? | [*Maybe*](#maybe)<[*ImportOrderCustomLineItemState*](#importordercustomlineitemstate)\> | +`importLineItemState`? | [*Maybe*](#maybe)<[*ImportOrderLineItemState*](#importorderlineitemstate)\> | +`removeDelivery`? | [*Maybe*](#maybe)<[*RemoveOrderDelivery*](#removeorderdelivery)\> | +`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveOrderItemShippingAddress*](#removeorderitemshippingaddress)\> | +`removeParcelFromDelivery`? | [*Maybe*](#maybe)<[*RemoveOrderParcelFromDelivery*](#removeorderparcelfromdelivery)\> | +`removePayment`? | [*Maybe*](#maybe)<[*RemoveOrderPayment*](#removeorderpayment)\> | +`setBillingAddress`? | [*Maybe*](#maybe)<[*SetOrderBillingAddress*](#setorderbillingaddress)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetOrderCustomField*](#setordercustomfield)\> | +`setCustomLineItemCustomField`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemCustomField*](#setordercustomlineitemcustomfield)\> | +`setCustomLineItemCustomType`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemCustomType*](#setordercustomlineitemcustomtype)\> | +`setCustomLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemShippingDetails*](#setordercustomlineitemshippingdetails)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetOrderCustomType*](#setordercustomtype)\> | +`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetOrderCustomerEmail*](#setordercustomeremail)\> | +`setCustomerId`? | [*Maybe*](#maybe)<[*SetOrderCustomerId*](#setordercustomerid)\> | +`setDeliveryAddress`? | [*Maybe*](#maybe)<[*SetOrderDeliveryAddress*](#setorderdeliveryaddress)\> | +`setDeliveryItems`? | [*Maybe*](#maybe)<[*SetOrderDeliveryItems*](#setorderdeliveryitems)\> | +`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetOrderLineItemCustomField*](#setorderlineitemcustomfield)\> | +`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetOrderLineItemCustomType*](#setorderlineitemcustomtype)\> | +`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetOrderLineItemShippingDetails*](#setorderlineitemshippingdetails)\> | +`setLocale`? | [*Maybe*](#maybe)<[*SetOrderLocale*](#setorderlocale)\> | +`setOrderNumber`? | [*Maybe*](#maybe)<[*SetOrderNumber*](#setordernumber)\> | +`setParcelItems`? | [*Maybe*](#maybe)<[*SetOrderParcelItems*](#setorderparcelitems)\> | +`setParcelMeasurements`? | [*Maybe*](#maybe)<[*SetOrderParcelMeasurements*](#setorderparcelmeasurements)\> | +`setParcelTrackingData`? | [*Maybe*](#maybe)<[*SetOrderParcelTrackingData*](#setorderparceltrackingdata)\> | +`setReturnPaymentState`? | [*Maybe*](#maybe)<[*SetOrderReturnPaymentState*](#setorderreturnpaymentstate)\> | +`setReturnShipmentState`? | [*Maybe*](#maybe)<[*SetOrderReturnShipmentState*](#setorderreturnshipmentstate)\> | +`setShippingAddress`? | [*Maybe*](#maybe)<[*SetOrderShippingAddress*](#setordershippingaddress)\> | +`transitionCustomLineItemState`? | [*Maybe*](#maybe)<[*TransitionOrderCustomLineItemState*](#transitionordercustomlineitemstate)\> | +`transitionLineItemState`? | [*Maybe*](#maybe)<[*TransitionOrderLineItemState*](#transitionorderlineitemstate)\> | +`transitionState`? | [*Maybe*](#maybe)<[*TransitionOrderState*](#transitionorderstate)\> | +`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateOrderItemShippingAddress*](#updateorderitemshippingaddress)\> | +`updateSyncInfo`? | [*Maybe*](#maybe)<[*UpdateOrderSyncInfo*](#updateordersyncinfo)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4105](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4105) + +___ + +### `Parcel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Parcel* | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`id` | [*Scalars*](#scalars)[*String*] | +`items` | [*DeliveryItem*](#deliveryitem)[] | +`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurements*](#parcelmeasurements)\> | +`trackingData`? | [*Maybe*](#maybe)<[*TrackingData*](#trackingdata)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4150) + +___ + +### `ParcelMeasurements` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ParcelMeasurements* | +`heightInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`lengthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`weightInGram`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`widthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4159](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4159) + +___ + +### `ParcelMeasurementsDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`heightInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`lengthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`weightInGram`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`widthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4167) + +___ + +### `Payment` + +Payments hold information about the current state of receiving and/or refunding money. +[documentation](https://shopify.dev/api/storefront/reference/checkouts/payment) + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4177](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4177) + +___ + +### `PaymentInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PaymentInfo* | +`paymentRefs` | [*Reference*](#reference)[] | +`payments` | [*Payment*](#payment)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4232](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4232) + +___ + +### `PaymentMethodInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PaymentMethodInfo* | +`method`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`nameAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | +`paymentInterface`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4238) + +___ + +### `PaymentMethodInfoNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4246](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4246) + +___ + +### `PaymentQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PaymentQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Payment*](#payment)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4251) + +___ + +### `PaymentStatus` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PaymentStatus* | +`interfaceCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`interfaceText`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`state`? | [*Maybe*](#maybe)<[*State*](#state)\> | +`stateRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4267](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4267) + +___ + +### `PlainEnumValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PlainEnumValue* | +`key` | [*Scalars*](#scalars)[*String*] | +`label` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4275](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4275) + +___ + +### `PlainEnumValueDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*String*] | +`label` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4281](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4281) + +___ + +### `PlainEnumValueResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PlainEnumValueResult* | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`results` | [*PlainEnumValue*](#plainenumvalue)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4286) + +___ + +### `Point` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4294) + +___ + +### `PriceFunction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *PriceFunction* | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | +`function` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4300](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4300) + +___ + +### `PriceFunctionDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`currencyCode` | [*Scalars*](#scalars)[*Currency*] | +`function` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4306](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4306) + +___ + +### `Product` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4311) + +___ + +### `ProductAttributeInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4335) + +___ + +### `ProductCatalogData` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductCatalogData* | +`current`? | [*Maybe*](#maybe)<[*ProductData*](#productdata)\> | +`hasStagedChanges` | [*Scalars*](#scalars)[*Boolean*] | +`published` | [*Scalars*](#scalars)[*Boolean*] | +`staged`? | [*Maybe*](#maybe)<[*ProductData*](#productdata)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4340](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4340) + +___ + +### `ProductCatalogDataArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4331) + +___ + +### `ProductData` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductData* | +`allVariants` | [*ProductVariant*](#productvariant)[] | +`categories` | [*Category*](#category)[] | +`categoriesRef` | [*Reference*](#reference)[] | +`categoryOrderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`categoryOrderHints` | [*CategoryOrderHint*](#categoryorderhint)[] | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | +`masterVariant` | [*ProductVariant*](#productvariant) | +`metaDescription`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`metaKeywords`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`metaTitle`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | +`searchKeyword`? | [*Maybe*](#maybe)<[*SearchKeyword*](#searchkeyword)[]\> | +`searchKeywords` | [*SearchKeywords*](#searchkeywords)[] | +`skus` | [*Scalars*](#scalars)[*String*][] | +`slug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | +`variants` | [*ProductVariant*](#productvariant)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4348) + +___ + +### `ProductDataAllVariantsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`hasImages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`isOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`stockChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4416](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4416) + +___ + +### `ProductDataCategoryOrderHintArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`categoryId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4386](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4386) + +___ + +### `ProductDataDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4376](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4376) + +___ + +### `ProductDataMetaDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4404](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4404) + +___ + +### `ProductDataMetaKeywordsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4399) + +___ + +### `ProductDataMetaTitleArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4394) + +___ + +### `ProductDataNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4371](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4371) + +___ + +### `ProductDataSearchKeywordArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4390](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4390) + +___ + +### `ProductDataSlugArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4381](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4381) + +___ + +### `ProductDataVariantArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4423](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4423) + +___ + +### `ProductDataVariantsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`hasImages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`isOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`stockChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4409](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4409) + +___ + +### `ProductDiscount` + +A product price can be discounted in two ways: + +* with a relative or an absolute product discount, which will be automatically +applied to all prices in a product that match a discount predicate. + A relative discount reduces the matching price by a fraction (for example 10 % +off). An absolute discount reduces the matching price by a fixed amount (for +example 10€ off). If more than one product discount matches a price, the +discount sort order determines which one will be applied. +* with an external product discount, which can then be used to explicitly set a +discounted value on a particular product price. + +The discounted price is stored in the discounted field of the Product Price. + +Note that when a discount is created, updated or removed it can take up to 15 +minutes to update all the prices with the discounts. + +The maximum number of ProductDiscounts that can be active at the same time is **200**. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4446](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4446) + +___ + +### `ProductDiscountDescriptionArgs` + +A product price can be discounted in two ways: + +* with a relative or an absolute product discount, which will be automatically +applied to all prices in a product that match a discount predicate. + A relative discount reduces the matching price by a fraction (for example 10 % +off). An absolute discount reduces the matching price by a fixed amount (for +example 10€ off). If more than one product discount matches a price, the +discount sort order determines which one will be applied. +* with an external product discount, which can then be used to explicitly set a +discounted value on a particular product price. + +The discounted price is stored in the discounted field of the Product Price. + +Note that when a discount is created, updated or removed it can take up to 15 +minutes to update all the prices with the discounts. + +The maximum number of ProductDiscounts that can be active at the same time is **200**. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4509) + +___ + +### `ProductDiscountDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`predicate` | [*Scalars*](#scalars)[*String*] | +`sortOrder` | [*Scalars*](#scalars)[*String*] | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`value` | [*ProductDiscountValueInput*](#productdiscountvalueinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4514](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4514) + +___ + +### `ProductDiscountNameArgs` + +A product price can be discounted in two ways: + +* with a relative or an absolute product discount, which will be automatically +applied to all prices in a product that match a discount predicate. + A relative discount reduces the matching price by a fraction (for example 10 % +off). An absolute discount reduces the matching price by a fixed amount (for +example 10€ off). If more than one product discount matches a price, the +discount sort order determines which one will be applied. +* with an external product discount, which can then be used to explicitly set a +discounted value on a particular product price. + +The discounted price is stored in the discounted field of the Product Price. + +Note that when a discount is created, updated or removed it can take up to 15 +minutes to update all the prices with the discounts. + +The maximum number of ProductDiscounts that can be active at the same time is **200**. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4486](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4486) + +___ + +### `ProductDiscountQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductDiscountQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*ProductDiscount*](#productdiscount)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4526](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4526) + +___ + +### `ProductDiscountUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeProductDiscountIsActive*](#changeproductdiscountisactive)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeProductDiscountName*](#changeproductdiscountname)\> | +`changePredicate`? | [*Maybe*](#maybe)<[*ChangeProductDiscountPredicate*](#changeproductdiscountpredicate)\> | +`changeSortOrder`? | [*Maybe*](#maybe)<[*ChangeProductDiscountSortOrder*](#changeproductdiscountsortorder)\> | +`changeValue`? | [*Maybe*](#maybe)<[*ChangeProductDiscountValue*](#changeproductdiscountvalue)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetProductDiscountDescription*](#setproductdiscountdescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetProductDiscountKey*](#setproductdiscountkey)\> | +`setValidFrom`? | [*Maybe*](#maybe)<[*SetProductDiscountValidFrom*](#setproductdiscountvalidfrom)\> | +`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetProductDiscountValidFromAndUntil*](#setproductdiscountvalidfromanduntil)\> | +`setValidUntil`? | [*Maybe*](#maybe)<[*SetProductDiscountValidUntil*](#setproductdiscountvaliduntil)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4534) + +___ + +### `ProductDiscountValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4547](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4547) + +___ + +### `ProductDiscountValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`absolute`? | [*Maybe*](#maybe)<[*AbsoluteDiscountValueInput*](#absolutediscountvalueinput)\> | +`external`? | [*Maybe*](#maybe)<[*ExternalDiscountValueInput*](#externaldiscountvalueinput)\> | +`relative`? | [*Maybe*](#maybe)<[*RelativeDiscountValueInput*](#relativediscountvalueinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4551](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4551) + +___ + +### `ProductDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`categories`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | +`categoryOrderHints`? | [*Maybe*](#maybe)<[*CategoryOrderHintInput*](#categoryorderhintinput)[]\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`masterVariant`? | [*Maybe*](#maybe)<[*ProductVariantInput*](#productvariantinput)\> | +`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`productType` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`publish`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`searchKeywords`? | [*Maybe*](#maybe)<[*SearchKeywordInput*](#searchkeywordinput)[]\> | +`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`state`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`variants`? | [*Maybe*](#maybe)<[*ProductVariantInput*](#productvariantinput)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4557](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4557) + +___ + +### `ProductPrice` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *ProductPrice* | - | +`channel`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | - | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | +`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | +`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | +`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | +`customerGroup`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | +`discounted`? | [*Maybe*](#maybe)<[*DiscountedProductPriceValue*](#discountedproductpricevalue)\> | - | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`tiers`? | [*Maybe*](#maybe)<[*ProductPriceTier*](#productpricetier)[]\> | - | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - | +`value` | [*BaseMoney*](#basemoney) | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4576](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4576) + +___ + +### `ProductPriceCustomFieldListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4601](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4601) + +___ + +### `ProductPriceCustomFieldsRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4596](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4596) + +___ + +### `ProductPriceDataInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`channel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`customerGroup`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`tiers`? | [*Maybe*](#maybe)<[*ProductPriceTierInput*](#productpricetierinput)[]\> | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`value` | [*BaseMoneyInput*](#basemoneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4606) + +___ + +### `ProductPriceTier` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductPriceTier* | +`minimumQuantity` | [*Scalars*](#scalars)[*Int*] | +`value` | [*BaseMoney*](#basemoney) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4617](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4617) + +___ + +### `ProductPriceTierInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`minimumQuantity` | [*Scalars*](#scalars)[*Int*] | +`value` | [*BaseMoneyInput*](#basemoneyinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4623](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4623) + +___ + +### `ProductQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Product*](#product)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4628](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4628) + +___ + +### `ProductReferenceIdentifier` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductReferenceIdentifier* | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4636](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4636) + +___ + +### `ProductType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`productTypeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4643](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4643) + +___ + +### `ProductTypeDefinition` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4647](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4647) + +___ + +### `ProductTypeDefinitionAttributeDefinitionsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4661](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4661) + +___ + +### `ProductTypeDefinitionQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductTypeDefinitionQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*ProductTypeDefinition*](#producttypedefinition)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4669](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4669) + +___ + +### `ProductTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeDefinitions`? | [*Maybe*](#maybe)<[*AttributeDefinitionDraft*](#attributedefinitiondraft)[]\> | +`description` | [*Scalars*](#scalars)[*String*] | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4677) + +___ + +### `ProductTypeUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addAttributeDefinition`? | [*Maybe*](#maybe)<[*AddAttributeDefinition*](#addattributedefinition)\> | +`addLocalizedEnumValue`? | [*Maybe*](#maybe)<[*AddLocalizedEnumValue*](#addlocalizedenumvalue)\> | +`addPlainEnumValue`? | [*Maybe*](#maybe)<[*AddPlainEnumValue*](#addplainenumvalue)\> | +`changeAttributeName`? | [*Maybe*](#maybe)<[*ChangeAttributeName*](#changeattributename)\> | +`changeAttributeOrder`? | [*Maybe*](#maybe)<[*ChangeAttributeOrder*](#changeattributeorder)\> | +`changeAttributeOrderByName`? | [*Maybe*](#maybe)<[*ChangeAttributeOrderByName*](#changeattributeorderbyname)\> | +`changeDescription`? | [*Maybe*](#maybe)<[*ChangeDescription*](#changedescription)\> | +`changeEnumKey`? | [*Maybe*](#maybe)<[*ChangeEnumKey*](#changeenumkey)\> | +`changeInputHint`? | [*Maybe*](#maybe)<[*ChangeInputHint*](#changeinputhint)\> | +`changeIsSearchable`? | [*Maybe*](#maybe)<[*ChangeIsSearchable*](#changeissearchable)\> | +`changeLabel`? | [*Maybe*](#maybe)<[*ChangeLabel*](#changelabel)\> | +`changeLocalizedEnumValueLabel`? | [*Maybe*](#maybe)<[*ChangeLocalizedEnumValueLabel*](#changelocalizedenumvaluelabel)\> | +`changeLocalizedEnumValueOrder`? | [*Maybe*](#maybe)<[*ChangeLocalizedEnumValueOrder*](#changelocalizedenumvalueorder)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeName*](#changename)\> | +`changePlainEnumValueLabel`? | [*Maybe*](#maybe)<[*ChangePlainEnumValueLabel*](#changeplainenumvaluelabel)\> | +`changePlainEnumValueOrder`? | [*Maybe*](#maybe)<[*ChangePlainEnumValueOrder*](#changeplainenumvalueorder)\> | +`removeAttributeDefinition`? | [*Maybe*](#maybe)<[*RemoveAttributeDefinition*](#removeattributedefinition)\> | +`removeEnumValues`? | [*Maybe*](#maybe)<[*RemoveEnumValues*](#removeenumvalues)\> | +`setInputTip`? | [*Maybe*](#maybe)<[*SetInputTip*](#setinputtip)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetKey*](#setkey)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4684](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4684) + +___ + +### `ProductUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addAsset`? | [*Maybe*](#maybe)<[*AddProductAsset*](#addproductasset)\> | +`addExternalImage`? | [*Maybe*](#maybe)<[*AddProductExternalImage*](#addproductexternalimage)\> | +`addPrice`? | [*Maybe*](#maybe)<[*AddProductPrice*](#addproductprice)\> | +`addToCategory`? | [*Maybe*](#maybe)<[*AddProductToCategory*](#addproducttocategory)\> | +`addVariant`? | [*Maybe*](#maybe)<[*AddProductVariant*](#addproductvariant)\> | +`changeAssetName`? | [*Maybe*](#maybe)<[*ChangeProductAssetName*](#changeproductassetname)\> | +`changeAssetOrder`? | [*Maybe*](#maybe)<[*ChangeProductAssetOrder*](#changeproductassetorder)\> | +`changeImageLabel`? | [*Maybe*](#maybe)<[*ChangeProductImageLabel*](#changeproductimagelabel)\> | +`changeMasterVariant`? | [*Maybe*](#maybe)<[*ChangeProductMasterVariant*](#changeproductmastervariant)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeProductName*](#changeproductname)\> | +`changePrice`? | [*Maybe*](#maybe)<[*ChangeProductPrice*](#changeproductprice)\> | +`changeSlug`? | [*Maybe*](#maybe)<[*ChangeProductSlug*](#changeproductslug)\> | +`moveImageToPosition`? | [*Maybe*](#maybe)<[*MoveProductImageToPosition*](#moveproductimagetoposition)\> | +`publish`? | [*Maybe*](#maybe)<[*PublishProduct*](#publishproduct)\> | +`removeAsset`? | [*Maybe*](#maybe)<[*RemoveProductAsset*](#removeproductasset)\> | +`removeFromCategory`? | [*Maybe*](#maybe)<[*RemoveProductFromCategory*](#removeproductfromcategory)\> | +`removeImage`? | [*Maybe*](#maybe)<[*RemoveProductImage*](#removeproductimage)\> | +`removePrice`? | [*Maybe*](#maybe)<[*RemoveProductPrice*](#removeproductprice)\> | +`removeVariant`? | [*Maybe*](#maybe)<[*RemoveProductVariant*](#removeproductvariant)\> | +`revertStagedChanges`? | [*Maybe*](#maybe)<[*RevertStagedChanges*](#revertstagedchanges)\> | +`revertStagedVariantChanges`? | [*Maybe*](#maybe)<[*RevertStagedVariantChanges*](#revertstagedvariantchanges)\> | +`setAssetCustomField`? | [*Maybe*](#maybe)<[*SetProductAssetCustomField*](#setproductassetcustomfield)\> | +`setAssetCustomType`? | [*Maybe*](#maybe)<[*SetProductAssetCustomType*](#setproductassetcustomtype)\> | +`setAssetDescription`? | [*Maybe*](#maybe)<[*SetProductAssetDescription*](#setproductassetdescription)\> | +`setAssetKey`? | [*Maybe*](#maybe)<[*SetProductAssetKey*](#setproductassetkey)\> | +`setAssetSources`? | [*Maybe*](#maybe)<[*SetProductAssetSources*](#setproductassetsources)\> | +`setAssetTags`? | [*Maybe*](#maybe)<[*SetProductAssetTags*](#setproductassettags)\> | +`setAttribute`? | [*Maybe*](#maybe)<[*SetProductAttribute*](#setproductattribute)\> | +`setAttributeInAllVariants`? | [*Maybe*](#maybe)<[*SetProductAttributeInAllVariants*](#setproductattributeinallvariants)\> | +`setCategoryOrderHint`? | [*Maybe*](#maybe)<[*SetProductCategoryOrderHint*](#setproductcategoryorderhint)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetProductDescription*](#setproductdescription)\> | +`setDiscountedPrice`? | [*Maybe*](#maybe)<[*SetProductDiscountedPrice*](#setproductdiscountedprice)\> | +`setImageLabel`? | [*Maybe*](#maybe)<[*SetProductImageLabel*](#setproductimagelabel)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetProductKey*](#setproductkey)\> | +`setMetaAttributes`? | [*Maybe*](#maybe)<[*SetProductMetaAttributes*](#setproductmetaattributes)\> | +`setMetaDescription`? | [*Maybe*](#maybe)<[*SetProductMetaDescription*](#setproductmetadescription)\> | +`setMetaKeywords`? | [*Maybe*](#maybe)<[*SetProductMetaKeywords*](#setproductmetakeywords)\> | +`setMetaTitle`? | [*Maybe*](#maybe)<[*SetProductMetaTitle*](#setproductmetatitle)\> | +`setPrices`? | [*Maybe*](#maybe)<[*SetProductPrices*](#setproductprices)\> | +`setProductPriceCustomField`? | [*Maybe*](#maybe)<[*SetProductPriceCustomField*](#setproductpricecustomfield)\> | +`setProductPriceCustomType`? | [*Maybe*](#maybe)<[*SetProductPriceCustomType*](#setproductpricecustomtype)\> | +`setProductVariantKey`? | [*Maybe*](#maybe)<[*SetProductVariantKey*](#setproductvariantkey)\> | +`setSearchKeywords`? | [*Maybe*](#maybe)<[*SetSearchKeywords*](#setsearchkeywords)\> | +`setSku`? | [*Maybe*](#maybe)<[*SetProductSku*](#setproductsku)\> | +`setTaxCategory`? | [*Maybe*](#maybe)<[*SetProductTaxCategory*](#setproducttaxcategory)\> | +`transitionState`? | [*Maybe*](#maybe)<[*TransitionProductState*](#transitionproductstate)\> | +`unpublish`? | [*Maybe*](#maybe)<[*UnpublishProduct*](#unpublishproduct)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4707](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4707) + +___ + +### `ProductVariant` + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`__typename`? | *ProductVariant* | - | +`assets` | [*Asset*](#asset)[] | - | +`attributeList` | [*Attribute*](#attribute)[] | Product attributes are returned as a list instead of an object structure. | +`attributes` | [*ProductType*](#producttype) | Product attributes | +`attributesRaw` | [*RawProductAttribute*](#rawproductattribute)[] | This field contains non-typed data. Consider using `attributes` as a typed alternative. | +`availability`? | [*Maybe*](#maybe)<[*ProductVariantAvailabilityWithChannels*](#productvariantavailabilitywithchannels)\> | - | +`id` | [*Scalars*](#scalars)[*Int*] | - | +`images` | [*Image*](#image)[] | - | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | +`price`? | [*Maybe*](#maybe)<[*ProductPrice*](#productprice)\> | Returns a single price based on the price selection rules. | +`prices`? | [*Maybe*](#maybe)<[*ProductPrice*](#productprice)[]\> | - | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4757) + +___ + +### `ProductVariantAttributeListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4789](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4789) + +___ + +### `ProductVariantAttributesRawArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4784](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4784) + +___ + +### `ProductVariantAvailabilitiesResult` + +Product variant availabilities + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductVariantAvailabilitiesResult* | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`results` | [*ProductVariantAvailabilityWithChannel*](#productvariantavailabilitywithchannel)[] | +`total` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4795](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4795) + +___ + +### `ProductVariantAvailability` + +Product variant availability + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductVariantAvailability* | +`availableQuantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`isOnStock` | [*Scalars*](#scalars)[*Boolean*] | +`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4804](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4804) + +___ + +### `ProductVariantAvailabilityWithChannel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductVariantAvailabilityWithChannel* | +`availability` | [*ProductVariantAvailability*](#productvariantavailability) | +`channel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | +`channelRef` | [*Reference*](#reference) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4811](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4811) + +___ + +### `ProductVariantAvailabilityWithChannels` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProductVariantAvailabilityWithChannels* | +`channels` | [*ProductVariantAvailabilitiesResult*](#productvariantavailabilitiesresult) | +`noChannel`? | [*Maybe*](#maybe)<[*ProductVariantAvailability*](#productvariantavailability)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4818](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4818) + +___ + +### `ProductVariantAvailabilityWithChannelsChannelsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4824](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4824) + +___ + +### `ProductVariantInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | +`attributes`? | [*Maybe*](#maybe)<[*ProductAttributeInput*](#productattributeinput)[]\> | +`images`? | [*Maybe*](#maybe)<[*ImageInput*](#imageinput)[]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`prices`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)[]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4831](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4831) + +___ + +### `ProductVariantPriceArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`channelId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | +`currency` | [*Scalars*](#scalars)[*Currency*] | +`customerGroupId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`date`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4776](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4776) + +___ + +### `ProjectProjection` + +Project contains information about project. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ProjectProjection* | +`countries` | [*Scalars*](#scalars)[*Country*][] | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`currencies` | [*Scalars*](#scalars)[*Currency*][] | +`externalOAuth`? | [*Maybe*](#maybe)<[*ExternalOAuth*](#externaloauth)\> | +`key` | [*Scalars*](#scalars)[*String*] | +`languages` | [*Scalars*](#scalars)[*Locale*][] | +`messages` | [*MessagesConfiguration*](#messagesconfiguration) | +`name` | [*Scalars*](#scalars)[*String*] | +`shippingRateInputType`? | [*Maybe*](#maybe)<[*ShippingRateInputType*](#shippingrateinputtype)\> | +`trialUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*YearMonth*]\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4841](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4841) + +___ + +### `ProjectSettingsUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`changeCountries`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsCountries*](#changeprojectsettingscountries)\> | +`changeCurrencies`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsCurrencies*](#changeprojectsettingscurrencies)\> | +`changeLanguages`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsLanguages*](#changeprojectsettingslanguages)\> | +`changeMessagesConfiguration`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsMessagesConfiguration*](#changeprojectsettingsmessagesconfiguration)\> | +`changeMessagesEnabled`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsMessagesEnabled*](#changeprojectsettingsmessagesenabled)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsName*](#changeprojectsettingsname)\> | +`setExternalOAuth`? | [*Maybe*](#maybe)<[*SetProjectSettingsExternalOAuth*](#setprojectsettingsexternaloauth)\> | +`setShippingRateInputType`? | [*Maybe*](#maybe)<[*SetProjectSettingsShippingRateInputType*](#setprojectsettingsshippingrateinputtype)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4856](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4856) + +___ + +### `PublishProduct` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`scope`? | [*Maybe*](#maybe)<[*PublishScope*](../enums/types_graphql.publishscope.md)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4869](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4869) + +___ + +### `Query` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4880](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4880) + +___ + +### `QueryApiClientArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5231](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5231) + +___ + +### `QueryApiClientsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5235](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5235) + +___ + +### `QueryCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5168](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5168) + +___ + +### `QueryCartDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5093](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5093) + +___ + +### `QueryCartDiscountsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5098](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5098) + +___ + +### `QueryCartsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5172) + +___ + +### `QueryCategoriesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4974](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4974) + +___ + +### `QueryCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4969](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4969) + +___ + +### `QueryCategoryAutocompleteArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`experimental`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`filters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`locale` | [*Scalars*](#scalars)[*Locale*] | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`text` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4981](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4981) + +___ + +### `QueryCategorySearchArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`experimental`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`filters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | +`fulltext`? | [*Maybe*](#maybe)<[*LocalizedText*](#localizedtext)\> | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`queryFilters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | +`sorts`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchSort*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4990](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4990) + +___ + +### `QueryChannelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5000](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5000) + +___ + +### `QueryChannelsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5005](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5005) + +___ + +### `QueryCustomerActiveCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5179](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5179) + +___ + +### `QueryCustomerArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5143](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5143) + +___ + +### `QueryCustomerGroupArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4957) + +___ + +### `QueryCustomerGroupsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4962](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4962) + +___ + +### `QueryCustomersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5150) + +___ + +### `QueryDiscountCodeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5082](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5082) + +___ + +### `QueryDiscountCodesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5086](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5086) + +___ + +### `QueryInStoreArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key` | [*Scalars*](#scalars)[*KeyReferenceInput*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4949](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4949) + +___ + +### `QueryInStoresArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`keys` | [*Scalars*](#scalars)[*KeyReferenceInput*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4953](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4953) + +___ + +### `QueryInventoryEntriesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5161](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5161) + +___ + +### `QueryInventoryEntryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5157](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5157) + +___ + +### `QueryOrderArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5183](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5183) + +___ + +### `QueryOrdersArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5188](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5188) + +___ + +### `QueryPaymentArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5207](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5207) + +___ + +### `QueryPaymentsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5212) + +___ + +### `QueryProductArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5116](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5116) + +___ + +### `QueryProductDiscountArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5105](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5105) + +___ + +### `QueryProductDiscountsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5109](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5109) + +___ + +### `QueryProductTypeArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5012](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5012) + +___ + +### `QueryProductTypesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5017](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5017) + +___ + +### `QueryProductsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5123](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5123) + +___ + +### `QueryShippingMethodArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5036](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5036) + +___ + +### `QueryShippingMethodsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5041](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5041) + +___ + +### `QueryShippingMethodsByCartArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5048](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5048) + +___ + +### `QueryShippingMethodsByLocationArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`country` | [*Scalars*](#scalars)[*Country*] | +`currency`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Currency*]\> | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5052](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5052) + +___ + +### `QueryShoppingListArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5195](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5195) + +___ + +### `QueryShoppingListsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5200) + +___ + +### `QueryStateArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5131](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5131) + +___ + +### `QueryStatesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5136](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5136) + +___ + +### `QueryStoreArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5219) + +___ + +### `QueryStoresArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5224](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5224) + +___ + +### `QueryTaxCategoriesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5075](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5075) + +___ + +### `QueryTaxCategoryArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5070](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5070) + +___ + +### `QueryTypeDefinitionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5024](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5024) + +___ + +### `QueryTypeDefinitionsArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5029](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5029) + +___ + +### `QueryZoneArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5058](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5058) + +___ + +### `QueryZonesArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5063](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5063) + +___ + +### `RawCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *RawCustomField* | +`name` | [*Scalars*](#scalars)[*String*] | +`value` | [*Scalars*](#scalars)[*Json*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5242](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5242) + +___ + +### `RawProductAttribute` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *RawProductAttribute* | +`attributeDefinition`? | [*Maybe*](#maybe)<[*AttributeDefinition*](#attributedefinition)\> | +`name` | [*Scalars*](#scalars)[*String*] | +`value` | [*Scalars*](#scalars)[*Json*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5248](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5248) + +___ + +### `RecalculateCart` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5255](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5255) + +___ + +### `Reference` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Reference* | +`id` | [*Scalars*](#scalars)[*String*] | +`typeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5259](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5259) + +___ + +### `ReferenceAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5265](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5265) + +___ + +### `ReferenceAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5272](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5272) + +___ + +### `ReferenceField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5278) + +___ + +### `ReferenceInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | +`typeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5285](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5285) + +___ + +### `ReferenceType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5290](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5290) + +___ + +### `ReferenceTypeDefinitionDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`referenceTypeId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5296](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5296) + +___ + +### `RelativeDiscountValue` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5300](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5300) + +___ + +### `RelativeDiscountValueInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`permyriad` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5307) + +___ + +### `RemoveAttributeDefinition` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5311) + +___ + +### `RemoveCartCustomLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5315) + +___ + +### `RemoveCartDiscountCode` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`discountCode` | [*ReferenceInput*](#referenceinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5319](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5319) + +___ + +### `RemoveCartItemShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressKey` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5323](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5323) + +___ + +### `RemoveCartLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | +`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | +`shippingDetailsToRemove`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5327](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5327) + +___ + +### `RemoveCartPayment` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5335) + +___ + +### `RemoveCategoryAsset` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5339) + +___ + +### `RemoveCustomerAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5344](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5344) + +___ + +### `RemoveCustomerBillingAddressId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5348) + +___ + +### `RemoveCustomerShippingAddressId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5352](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5352) + +___ + +### `RemoveCustomerStore` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`store` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5356](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5356) + +___ + +### `RemoveEnumValues` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`keys` | [*Scalars*](#scalars)[*String*][] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5360](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5360) + +___ + +### `RemoveInventoryEntryQuantity` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5365](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5365) + +___ + +### `RemoveOrderDelivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deliveryId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5369](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5369) + +___ + +### `RemoveOrderItemShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressKey` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5373](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5373) + +___ + +### `RemoveOrderParcelFromDelivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`parcelId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5377](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5377) + +___ + +### `RemoveOrderPayment` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5381](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5381) + +___ + +### `RemoveProductAsset` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5385](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5385) + +___ + +### `RemoveProductFromCategory` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`category` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5394) + +___ + +### `RemoveProductImage` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`imageUrl` | [*Scalars*](#scalars)[*String*] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5399) + +___ + +### `RemoveProductPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`price`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)\> | +`priceId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5406](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5406) + +___ + +### `RemoveProductVariant` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5415](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5415) + +___ + +### `RemoveShippingMethodShippingRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | +`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5421](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5421) + +___ + +### `RemoveShippingMethodZone` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5426](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5426) + +___ + +### `RemoveShoppingListLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5430](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5430) + +___ + +### `RemoveShoppingListTextLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5435](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5435) + +___ + +### `RemoveZoneLocation` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`location` | [*ZoneLocation*](#zonelocation) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5440](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5440) + +___ + +### `ReservationOrderType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5444](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5444) + +___ + +### `ResourceIdentifierInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5451](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5451) + +___ + +### `ReturnInfo` + +Stores information about returns connected to this order. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ReturnInfo* | +`items` | [*ReturnItem*](#returnitem)[] | +`returnDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`returnTrackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5458) + +___ + +### `ReturnItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`comment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`id` | [*Scalars*](#scalars)[*String*] | +`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | +`paymentState` | [*ReturnPaymentState*](../enums/types_graphql.returnpaymentstate.md) | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5465](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5465) + +___ + +### `ReturnItemDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`comment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`customLineItemId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`lineItemId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5476](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5476) + +___ + +### `RevertStagedChanges` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5498](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5498) + +___ + +### `RevertStagedVariantChanges` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`variantId` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5502](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5502) + +___ + +### `Scalars` + +All built-in and custom scalars, mapped to their actual values + +#### Type declaration: + +Name | Type | Description | +:------ | :------ | :------ | +`BigDecimal` | *any* | The `BigDecimal` scalar type represents signed fractional values with arbitrary precision. | +`Boolean` | *boolean* | - | +`Country` | *any* | [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) country code. | +`Currency` | *any* | Represents a currency. Currencies are identified by their [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm) currency codes. | +`Date` | *any* | DateTime is a scalar value that represents an ISO8601 formatted date. | +`DateTime` | *any* | DateTime is a scalar value that represents an ISO8601 formatted date and time. | +`Float` | *number* | - | +`ID` | *string* | - | +`Int` | *number* | - | +`Json` | *any* | Raw JSON value | +`KeyReferenceInput` | *any* | A key that references a resource. | +`Locale` | *any* | Locale is a scalar value represented as a string language tag. | +`Long` | *any* | The `Long` scalar type represents non-fractional signed whole numeric values. Long can represent values between -(2^63) and 2^63 - 1. | +`SearchFilter` | *any* | Search filter. It is represented as a string and has th same format as in REST API: "field:filter_criteria" | +`SearchSort` | *any* | Search sort | +`String` | *string* | - | +`Time` | *any* | Time is a scalar value that represents an ISO8601 formatted time. | +`YearMonth` | *any* | YearMonth is a scalar value that represents an ISO8601 formatted year and month. | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5) + +___ + +### `ScoreShippingRateInput` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5519](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5519) + +___ + +### `ScoreShippingRateInputDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`score` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5525](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5525) + +___ + +### `SearchKeyword` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *SearchKeyword* | +`text` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5529](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5529) + +___ + +### `SearchKeywordInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`keywords` | [*CustomSuggestTokenizerInput*](#customsuggesttokenizerinput)[] | +`locale` | [*Scalars*](#scalars)[*Locale*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5534) + +___ + +### `SearchKeywords` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *SearchKeywords* | +`locale` | [*Scalars*](#scalars)[*Locale*] | +`searchKeywords` | [*SearchKeyword*](#searchkeyword)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5539](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5539) + +___ + +### `SetAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5551](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5551) + +___ + +### `SetCartAnonymousId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5557](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5557) + +___ + +### `SetCartBillingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5561](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5561) + +___ + +### `SetCartCountry` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5565](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5565) + +___ + +### `SetCartCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5581](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5581) + +___ + +### `SetCartCustomLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5586](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5586) + +___ + +### `SetCartCustomLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5592](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5592) + +___ + +### `SetCartCustomLineItemShippingDetails` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5600](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5600) + +___ + +### `SetCartCustomLineItemTaxAmount` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5605](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5605) + +___ + +### `SetCartCustomLineItemTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5610](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5610) + +___ + +### `SetCartCustomShippingMethod` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`shippingMethodName` | [*Scalars*](#scalars)[*String*] | +`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | +`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5615](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5615) + +___ + +### `SetCartCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5622](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5622) + +___ + +### `SetCartCustomerEmail` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5569](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5569) + +___ + +### `SetCartCustomerGroup` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5573) + +___ + +### `SetCartCustomerId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5577](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5577) + +___ + +### `SetCartDeleteDaysAfterLastModification` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5629](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5629) + +___ + +### `SetCartDiscountCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5633](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5633) + +___ + +### `SetCartDiscountCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5638](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5638) + +___ + +### `SetCartDiscountDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5645](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5645) + +___ + +### `SetCartDiscountKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5649](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5649) + +___ + +### `SetCartDiscountValidFrom` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5653) + +___ + +### `SetCartDiscountValidFromAndUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5657](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5657) + +___ + +### `SetCartDiscountValidUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5662](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5662) + +___ + +### `SetCartLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5666](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5666) + +___ + +### `SetCartLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5672](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5672) + +___ + +### `SetCartLineItemPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5680](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5680) + +___ + +### `SetCartLineItemShippingDetails` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5685](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5685) + +___ + +### `SetCartLineItemTaxAmount` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5690](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5690) + +___ + +### `SetCartLineItemTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5695](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5695) + +___ + +### `SetCartLineItemTotalPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5700](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5700) + +___ + +### `SetCartLocale` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5705](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5705) + +___ + +### `SetCartShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5709) + +___ + +### `SetCartShippingMethod` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | +`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5713](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5713) + +___ + +### `SetCartShippingMethodTaxAmount` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5718](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5718) + +___ + +### `SetCartShippingMethodTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5722) + +___ + +### `SetCartShippingRateInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingRateInput`? | [*Maybe*](#maybe)<[*ShippingRateInputDraft*](#shippingrateinputdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5726) + +___ + +### `SetCartTotalTax` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalTaxPortions`? | [*Maybe*](#maybe)<[*TaxPortionDraft*](#taxportiondraft)[]\> | +`externalTotalGross`? | [*Maybe*](#maybe)<[*MoneyInput*](#moneyinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5730](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5730) + +___ + +### `SetCategoryAssetCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5735](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5735) + +___ + +### `SetCategoryAssetCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5742](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5742) + +___ + +### `SetCategoryAssetDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5751](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5751) + +___ + +### `SetCategoryAssetKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId` | [*Scalars*](#scalars)[*String*] | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5757) + +___ + +### `SetCategoryAssetSources` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5762](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5762) + +___ + +### `SetCategoryAssetTags` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5768](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5768) + +___ + +### `SetCategoryCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5774) + +___ + +### `SetCategoryCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5779](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5779) + +___ + +### `SetCategoryDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5786](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5786) + +___ + +### `SetCategoryExternalId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5790](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5790) + +___ + +### `SetCategoryKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5794](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5794) + +___ + +### `SetCategoryMetaDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5798](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5798) + +___ + +### `SetCategoryMetaKeywords` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5802](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5802) + +___ + +### `SetCategoryMetaTitle` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5806](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5806) + +___ + +### `SetCustomerCompanyName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5810](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5810) + +___ + +### `SetCustomerCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5814](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5814) + +___ + +### `SetCustomerCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5819) + +___ + +### `SetCustomerDateOfBirth` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5826) + +___ + +### `SetCustomerDefaultBillingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5830](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5830) + +___ + +### `SetCustomerDefaultShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5834](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5834) + +___ + +### `SetCustomerExternalId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5838](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5838) + +___ + +### `SetCustomerFirstName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5842](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5842) + +___ + +### `SetCustomerGroup` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5846](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5846) + +___ + +### `SetCustomerGroupCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5850) + +___ + +### `SetCustomerGroupCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5855](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5855) + +___ + +### `SetCustomerGroupKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5862](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5862) + +___ + +### `SetCustomerKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5866](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5866) + +___ + +### `SetCustomerLastName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5870) + +___ + +### `SetCustomerLocale` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5874](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5874) + +___ + +### `SetCustomerMiddleName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5878](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5878) + +___ + +### `SetCustomerNumber` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5882](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5882) + +___ + +### `SetCustomerSalutation` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5886](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5886) + +___ + +### `SetCustomerStores` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`stores` | [*ResourceIdentifierInput*](#resourceidentifierinput)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5890](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5890) + +___ + +### `SetCustomerTitle` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5894](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5894) + +___ + +### `SetCustomerVatId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5898](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5898) + +___ + +### `SetDiscountCodeCartPredicate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`cartPredicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5902](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5902) + +___ + +### `SetDiscountCodeCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5906](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5906) + +___ + +### `SetDiscountCodeCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5911](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5911) + +___ + +### `SetDiscountCodeDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5918](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5918) + +___ + +### `SetDiscountCodeMaxApplications` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`maxApplications`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5922](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5922) + +___ + +### `SetDiscountCodeMaxApplicationsPerCustomer` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`maxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5926](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5926) + +___ + +### `SetDiscountCodeName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5930](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5930) + +___ + +### `SetDiscountCodeValidFrom` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5934](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5934) + +___ + +### `SetDiscountCodeValidFromAndUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5938](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5938) + +___ + +### `SetDiscountCodeValidUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5943](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5943) + +___ + +### `SetInputTip` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`attributeName` | [*Scalars*](#scalars)[*String*] | +`inputTip`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5947](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5947) + +___ + +### `SetInventoryEntryCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5952](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5952) + +___ + +### `SetInventoryEntryCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5957) + +___ + +### `SetInventoryEntryExpectedDelivery` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`expectedDelivery`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5964](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5964) + +___ + +### `SetInventoryEntryRestockableInDays` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5968](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5968) + +___ + +### `SetInventoryEntrySupplyChannel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5972](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5972) + +___ + +### `SetKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5976](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5976) + +___ + +### `SetMyCartShippingMethod` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5980](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5980) + +___ + +### `SetOrderBillingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5984](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5984) + +___ + +### `SetOrderCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5996](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5996) + +___ + +### `SetOrderCustomLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6001](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6001) + +___ + +### `SetOrderCustomLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6007](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6007) + +___ + +### `SetOrderCustomLineItemShippingDetails` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraftType*](#itemshippingdetailsdrafttype)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6015) + +___ + +### `SetOrderCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6020](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6020) + +___ + +### `SetOrderCustomerEmail` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5988](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5988) + +___ + +### `SetOrderCustomerId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5992](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5992) + +___ + +### `SetOrderDeliveryAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | +`deliveryId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6027](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6027) + +___ + +### `SetOrderDeliveryItems` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deliveryId` | [*Scalars*](#scalars)[*String*] | +`items` | [*DeliveryItemDraftType*](#deliveryitemdrafttype)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6032](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6032) + +___ + +### `SetOrderLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6037](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6037) + +___ + +### `SetOrderLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6043](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6043) + +___ + +### `SetOrderLineItemShippingDetails` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraftType*](#itemshippingdetailsdrafttype)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6051](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6051) + +___ + +### `SetOrderLocale` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6056](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6056) + +___ + +### `SetOrderNumber` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6060](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6060) + +___ + +### `SetOrderParcelItems` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`items` | [*DeliveryItemDraftType*](#deliveryitemdrafttype)[] | +`parcelId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6064](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6064) + +___ + +### `SetOrderParcelMeasurements` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurementsDraftType*](#parcelmeasurementsdrafttype)\> | +`parcelId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6069](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6069) + +___ + +### `SetOrderParcelTrackingData` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`parcelId` | [*Scalars*](#scalars)[*String*] | +`trackingData`? | [*Maybe*](#maybe)<[*TrackingDataDraftType*](#trackingdatadrafttype)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6074](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6074) + +___ + +### `SetOrderReturnPaymentState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`paymentState` | [*ReturnPaymentState*](../enums/types_graphql.returnpaymentstate.md) | +`returnItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6079](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6079) + +___ + +### `SetOrderReturnShipmentState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`returnItemId` | [*Scalars*](#scalars)[*String*] | +`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6084](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6084) + +___ + +### `SetOrderShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6089](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6089) + +___ + +### `SetProductAssetCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`name` | [*Scalars*](#scalars)[*String*] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6093](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6093) + +___ + +### `SetProductAssetCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6104](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6104) + +___ + +### `SetProductAssetDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6117](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6117) + +___ + +### `SetProductAssetKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId` | [*Scalars*](#scalars)[*String*] | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6127](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6127) + +___ + +### `SetProductAssetSources` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6136](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6136) + +___ + +### `SetProductAssetTags` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6146](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6146) + +___ + +### `SetProductAttribute` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6156) + +___ + +### `SetProductAttributeInAllVariants` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6164](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6164) + +___ + +### `SetProductCategoryOrderHint` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`categoryId` | [*Scalars*](#scalars)[*String*] | +`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6170](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6170) + +___ + +### `SetProductDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6176) + +___ + +### `SetProductDiscountDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6181](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6181) + +___ + +### `SetProductDiscountKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6192](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6192) + +___ + +### `SetProductDiscountValidFrom` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6196](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6196) + +___ + +### `SetProductDiscountValidFromAndUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6200) + +___ + +### `SetProductDiscountValidUntil` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6205](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6205) + +___ + +### `SetProductDiscountedPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`discounted`? | [*Maybe*](#maybe)<[*DiscountedProductPriceValueInput*](#discountedproductpricevalueinput)\> | +`priceId` | [*Scalars*](#scalars)[*String*] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6185](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6185) + +___ + +### `SetProductImageLabel` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`imageUrl` | [*Scalars*](#scalars)[*String*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6209](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6209) + +___ + +### `SetProductKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6217](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6217) + +___ + +### `SetProductMetaAttributes` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6221](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6221) + +___ + +### `SetProductMetaDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6228](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6228) + +___ + +### `SetProductMetaKeywords` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6233](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6233) + +___ + +### `SetProductMetaTitle` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6238) + +___ + +### `SetProductPriceCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`name` | [*Scalars*](#scalars)[*String*] | +`priceId` | [*Scalars*](#scalars)[*String*] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6243](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6243) + +___ + +### `SetProductPriceCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`priceId` | [*Scalars*](#scalars)[*String*] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6251) + +___ + +### `SetProductPrices` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | +`prices` | [*ProductPriceDataInput*](#productpricedatainput)[] | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6261](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6261) + +___ + +### `SetProductSku` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6269](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6269) + +___ + +### `SetProductTaxCategory` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6275](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6275) + +___ + +### `SetProductVariantKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6279](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6279) + +___ + +### `SetProjectSettingsExternalOAuth` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`externalOAuth`? | [*Maybe*](#maybe)<[*ExternalOAuthDraft*](#externaloauthdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6286) + +___ + +### `SetProjectSettingsShippingRateInputType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingRateInputType`? | [*Maybe*](#maybe)<[*ShippingRateInputTypeInput*](#shippingrateinputtypeinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6290](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6290) + +___ + +### `SetSearchKeywords` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`searchKeywords` | [*SearchKeywordInput*](#searchkeywordinput)[] | +`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6294) + +___ + +### `SetShippingMethodDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6299](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6299) + +___ + +### `SetShippingMethodKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6303](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6303) + +___ + +### `SetShippingMethodPredicate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`predicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6307) + +___ + +### `SetShoppingListAnonymousId` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6311) + +___ + +### `SetShoppingListCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6319](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6319) + +___ + +### `SetShoppingListCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6324](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6324) + +___ + +### `SetShoppingListCustomer` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`customer`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6315) + +___ + +### `SetShoppingListDeleteDaysAfterLastModification` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6331) + +___ + +### `SetShoppingListDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6335) + +___ + +### `SetShoppingListKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6339) + +___ + +### `SetShoppingListLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`name` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6343](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6343) + +___ + +### `SetShoppingListLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6349](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6349) + +___ + +### `SetShoppingListSlug` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`slug`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6357](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6357) + +___ + +### `SetShoppingListTextLineItemCustomField` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | +`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6361](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6361) + +___ + +### `SetShoppingListTextLineItemCustomType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | +`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6367](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6367) + +___ + +### `SetShoppingListTextLineItemDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`textLineItemId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6375](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6375) + +___ + +### `SetStoreLanguages` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`languages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6380](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6380) + +___ + +### `SetStoreName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6384](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6384) + +___ + +### `SetTaxCategoryKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6388](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6388) + +___ + +### `SetType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6392](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6392) + +___ + +### `SetZoneDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6398](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6398) + +___ + +### `SetZoneKey` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6402](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6402) + +___ + +### `ShippingInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShippingInfo* | +`deliveries` | [*Delivery*](#delivery)[] | +`discountedPrice`? | [*Maybe*](#maybe)<[*DiscountedLineItemPrice*](#discountedlineitemprice)\> | +`price` | [*Money*](#money) | +`shippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | +`shippingMethodName` | [*Scalars*](#scalars)[*String*] | +`shippingMethodRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | +`shippingMethodState` | [*ShippingMethodState*](../enums/types_graphql.shippingmethodstate.md) | +`shippingRate` | [*ShippingRate*](#shippingrate) | +`taxCategory`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | +`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | +`taxedPrice`? | [*Maybe*](#maybe)<[*TaxedItemPrice*](#taxeditemprice)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6415](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6415) + +___ + +### `ShippingMethod` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6430](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6430) + +___ + +### `ShippingMethodDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`isDefault` | [*Scalars*](#scalars)[*Boolean*] | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`predicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`taxCategory` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`zoneRates`? | [*Maybe*](#maybe)<[*ZoneRateDraft*](#zoneratedraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6448) + +___ + +### `ShippingMethodQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShippingMethodQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*ShippingMethod*](#shippingmethod)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6458) + +___ + +### `ShippingMethodUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addShippingRate`? | [*Maybe*](#maybe)<[*AddShippingMethodShippingRate*](#addshippingmethodshippingrate)\> | +`addZone`? | [*Maybe*](#maybe)<[*AddShippingMethodZone*](#addshippingmethodzone)\> | +`changeIsDefault`? | [*Maybe*](#maybe)<[*ChangeShippingMethodIsDefault*](#changeshippingmethodisdefault)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeShippingMethodName*](#changeshippingmethodname)\> | +`changeTaxCategory`? | [*Maybe*](#maybe)<[*ChangeShippingMethodTaxCategory*](#changeshippingmethodtaxcategory)\> | +`removeShippingRate`? | [*Maybe*](#maybe)<[*RemoveShippingMethodShippingRate*](#removeshippingmethodshippingrate)\> | +`removeZone`? | [*Maybe*](#maybe)<[*RemoveShippingMethodZone*](#removeshippingmethodzone)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetShippingMethodDescription*](#setshippingmethoddescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetShippingMethodKey*](#setshippingmethodkey)\> | +`setPredicate`? | [*Maybe*](#maybe)<[*SetShippingMethodPredicate*](#setshippingmethodpredicate)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6485](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6485) + +___ + +### `ShippingMethodsByCartInterface` + +A field to retrieve available shipping methods for a cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingMethodsByCart` | [*ShippingMethod*](#shippingmethod)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6467](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6467) + +___ + +### `ShippingMethodsByCartInterfaceShippingMethodsByCartArgs` + +A field to retrieve available shipping methods for a cart. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6472](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6472) + +___ + +### `ShippingRate` + +Shipping Rate + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShippingRate* | +`freeAbove`? | [*Maybe*](#maybe)<[*Money*](#money)\> | +`isMatching`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`price` | [*Money*](#money) | +`tiers` | [*ShippingRatePriceTier*](#shippingratepricetier)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6499) + +___ + +### `ShippingRateCartClassificationPriceTier` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6507](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6507) + +___ + +### `ShippingRateCartScorePriceTier` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6515](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6515) + +___ + +### `ShippingRateCartValuePriceTier` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6524](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6524) + +___ + +### `ShippingRateDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`freeAbove`? | [*Maybe*](#maybe)<[*MoneyDraft*](#moneydraft)\> | +`price` | [*MoneyDraft*](#moneydraft) | +`tiers`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierDraft*](#shippingratepricetierdraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6532) + +___ + +### `ShippingRateInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6538](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6538) + +___ + +### `ShippingRateInputDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`Classification`? | [*Maybe*](#maybe)<[*ClassificationShippingRateInputDraft*](#classificationshippingrateinputdraft)\> | +`Score`? | [*Maybe*](#maybe)<[*ScoreShippingRateInputDraft*](#scoreshippingrateinputdraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6542](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6542) + +___ + +### `ShippingRateInputLocalizedEnumValue` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShippingRateInputLocalizedEnumValue* | +`key` | [*Scalars*](#scalars)[*String*] | +`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6547](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6547) + +___ + +### `ShippingRateInputLocalizedEnumValueLabelArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6554](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6554) + +___ + +### `ShippingRateInputType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6559](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6559) + +___ + +### `ShippingRateInputTypeInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`CartClassification`? | [*Maybe*](#maybe)<[*CartClassificationInput*](#cartclassificationinput)\> | +`CartScore`? | [*Maybe*](#maybe)<[*CartScoreInput*](#cartscoreinput)\> | +`CartValue`? | [*Maybe*](#maybe)<[*CartValueInput*](#cartvalueinput)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6563](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6563) + +___ + +### `ShippingRatePriceTier` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6569](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6569) + +___ + +### `ShippingRatePriceTierCartClassificationDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`price` | [*MoneyDraft*](#moneydraft) | +`value` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6573) + +___ + +### `ShippingRatePriceTierCartScoreDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`price`? | [*Maybe*](#maybe)<[*MoneyDraft*](#moneydraft)\> | +`priceFunction`? | [*Maybe*](#maybe)<[*PriceFunctionDraft*](#pricefunctiondraft)\> | +`score` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6578) + +___ + +### `ShippingRatePriceTierCartValueDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`minimumCentAmount` | [*Scalars*](#scalars)[*Int*] | +`price` | [*MoneyDraft*](#moneydraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6584](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6584) + +___ + +### `ShippingRatePriceTierDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`CartClassification`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartClassificationDraft*](#shippingratepricetiercartclassificationdraft)\> | +`CartScore`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartScoreDraft*](#shippingratepricetiercartscoredraft)\> | +`CartValue`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartValueDraft*](#shippingratepricetiercartvaluedraft)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6589](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6589) + +___ + +### `ShippingTarget` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6595](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6595) + +___ + +### `ShippingTargetDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressKey` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6600](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6600) + +___ + +### `ShippingTargetDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addressKey` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6605](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6605) + +___ + +### `ShippingTargetInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6610](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6610) + +___ + +### `ShoppingList` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6614](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6614) + +___ + +### `ShoppingListDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6643](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6643) + +___ + +### `ShoppingListDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`customer`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | +`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`lineItems`? | [*Maybe*](#maybe)<[*ShoppingListLineItemDraft*](#shoppinglistlineitemdraft)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`slug`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`textLineItems`? | [*Maybe*](#maybe)<[*TextLineItemDraft*](#textlineitemdraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6653) + +___ + +### `ShoppingListLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShoppingListLineItem* | +`addedAt` | [*Scalars*](#scalars)[*DateTime*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | +`deactivatedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`id` | [*Scalars*](#scalars)[*String*] | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | +`productId` | [*Scalars*](#scalars)[*String*] | +`productSlug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`productType` | [*ProductTypeDefinition*](#producttypedefinition) | +`productTypeRef` | [*Reference*](#reference) | +`quantity` | [*Scalars*](#scalars)[*Int*] | +`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6666](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6666) + +___ + +### `ShoppingListLineItemDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6693](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6693) + +___ + +### `ShoppingListLineItemNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6683](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6683) + +___ + +### `ShoppingListLineItemProductSlugArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6688](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6688) + +___ + +### `ShoppingListNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6638](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6638) + +___ + +### `ShoppingListQueryInterface` + +Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | +`shoppingLists` | [*ShoppingListQueryResult*](#shoppinglistqueryresult) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6703](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6703) + +___ + +### `ShoppingListQueryInterfaceShoppingListArgs` + +Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6709) + +___ + +### `ShoppingListQueryInterfaceShoppingListsArgs` + +Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | +`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6715](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6715) + +___ + +### `ShoppingListQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ShoppingListQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*ShoppingList*](#shoppinglist)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6722) + +___ + +### `ShoppingListSlugArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6648) + +___ + +### `ShoppingListUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListLineItem*](#addshoppinglistlineitem)\> | +`addTextLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListTextLineItem*](#addshoppinglisttextlineitem)\> | +`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemQuantity*](#changeshoppinglistlineitemquantity)\> | +`changeLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemsOrder*](#changeshoppinglistlineitemsorder)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeShoppingListName*](#changeshoppinglistname)\> | +`changeTextLineItemName`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemName*](#changeshoppinglisttextlineitemname)\> | +`changeTextLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemQuantity*](#changeshoppinglisttextlineitemquantity)\> | +`changeTextLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemsOrder*](#changeshoppinglisttextlineitemsorder)\> | +`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListLineItem*](#removeshoppinglistlineitem)\> | +`removeTextLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListTextLineItem*](#removeshoppinglisttextlineitem)\> | +`setAnonymousId`? | [*Maybe*](#maybe)<[*SetShoppingListAnonymousId*](#setshoppinglistanonymousid)\> | +`setCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListCustomField*](#setshoppinglistcustomfield)\> | +`setCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListCustomType*](#setshoppinglistcustomtype)\> | +`setCustomer`? | [*Maybe*](#maybe)<[*SetShoppingListCustomer*](#setshoppinglistcustomer)\> | +`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetShoppingListDeleteDaysAfterLastModification*](#setshoppinglistdeletedaysafterlastmodification)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetShoppingListDescription*](#setshoppinglistdescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetShoppingListKey*](#setshoppinglistkey)\> | +`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomField*](#setshoppinglistlineitemcustomfield)\> | +`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomType*](#setshoppinglistlineitemcustomtype)\> | +`setSlug`? | [*Maybe*](#maybe)<[*SetShoppingListSlug*](#setshoppinglistslug)\> | +`setTextLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomField*](#setshoppinglisttextlineitemcustomfield)\> | +`setTextLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomType*](#setshoppinglisttextlineitemcustomtype)\> | +`setTextLineItemDescription`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemDescription*](#setshoppinglisttextlineitemdescription)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6730](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6730) + +___ + +### `SimpleAttributeTypeDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6758](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6758) + +___ + +### `StateQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *StateQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*State*](#state)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6804](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6804) + +___ + +### `Store` + +[BETA] Stores allow defining different contexts for a project. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6826) + +___ + +### `StoreNameArgs` + +[BETA] Stores allow defining different contexts for a project. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6841](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6841) + +___ + +### `StoreQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *StoreQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Store*](#store)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6846](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6846) + +___ + +### `StoreUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`setLanguages`? | [*Maybe*](#maybe)<[*SetStoreLanguages*](#setstorelanguages)\> | +`setName`? | [*Maybe*](#maybe)<[*SetStoreName*](#setstorename)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6854](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6854) + +___ + +### `StringAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6859](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6859) + +___ + +### `StringField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6865](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6865) + +___ + +### `StringType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6871](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6871) + +___ + +### `SubRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *SubRate* | +`amount` | [*Scalars*](#scalars)[*Float*] | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6876](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6876) + +___ + +### `SubRateDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`amount` | [*Scalars*](#scalars)[*Float*] | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6882](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6882) + +___ + +### `SyncInfo` + +Stores information about order synchronization activities (like export or import). + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *SyncInfo* | +`channel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | +`channelRef` | [*Reference*](#reference) | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`syncedAt` | [*Scalars*](#scalars)[*DateTime*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6890](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6890) + +___ + +### `TaxCategory` + +Tax Categories define how products are to be taxed in different countries. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6910](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6910) + +___ + +### `TaxCategoryAddTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxRate` | [*TaxRateDraft*](#taxratedraft) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6924](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6924) + +___ + +### `TaxCategoryChangeName` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`name` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6928](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6928) + +___ + +### `TaxCategoryDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`name` | [*Scalars*](#scalars)[*String*] | +`rates`? | [*Maybe*](#maybe)<[*TaxRateDraft*](#taxratedraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6932](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6932) + +___ + +### `TaxCategoryQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TaxCategoryQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*TaxCategory*](#taxcategory)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6939](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6939) + +___ + +### `TaxCategoryRemoveTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxRateId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6947](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6947) + +___ + +### `TaxCategoryReplaceTaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`taxRate` | [*TaxRateDraft*](#taxratedraft) | +`taxRateId` | [*Scalars*](#scalars)[*String*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6951) + +___ + +### `TaxCategorySetDescription` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6956](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6956) + +___ + +### `TaxCategoryUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryAddTaxRate*](#taxcategoryaddtaxrate)\> | +`changeName`? | [*Maybe*](#maybe)<[*TaxCategoryChangeName*](#taxcategorychangename)\> | +`removeTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryRemoveTaxRate*](#taxcategoryremovetaxrate)\> | +`replaceTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryReplaceTaxRate*](#taxcategoryreplacetaxrate)\> | +`setDescription`? | [*Maybe*](#maybe)<[*TaxCategorySetDescription*](#taxcategorysetdescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetTaxCategoryKey*](#settaxcategorykey)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6960](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6960) + +___ + +### `TaxPortion` + +Represents the portions that sum up to the totalGross field of a TaxedPrice. The portions are calculated +from the TaxRates. If a tax rate has SubRates, they are used and can be identified by name. Tax portions +from line items that have the same rate and name will be accumulated to the same tax portion. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TaxPortion* | +`amount` | [*Money*](#money) | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`rate` | [*Scalars*](#scalars)[*Float*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7006](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7006) + +___ + +### `TaxPortionDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`amount` | [*MoneyInput*](#moneyinput) | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`rate` | [*Scalars*](#scalars)[*Float*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7013](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7013) + +___ + +### `TaxRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TaxRate* | +`amount` | [*Scalars*](#scalars)[*Float*] | +`country` | [*Scalars*](#scalars)[*Country*] | +`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`includedInPrice` | [*Scalars*](#scalars)[*Boolean*] | +`name` | [*Scalars*](#scalars)[*String*] | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`subRates` | [*SubRate*](#subrate)[] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7019](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7019) + +___ + +### `TaxRateDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`amount`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Float*]\> | +`country` | [*Scalars*](#scalars)[*Country*] | +`includedInPrice` | [*Scalars*](#scalars)[*Boolean*] | +`name` | [*Scalars*](#scalars)[*String*] | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`subRates`? | [*Maybe*](#maybe)<[*SubRateDraft*](#subratedraft)[]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7030](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7030) + +___ + +### `TaxedItemPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TaxedItemPrice* | +`totalGross` | [*Money*](#money) | +`totalNet` | [*Money*](#money) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6969](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6969) + +___ + +### `TaxedPrice` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TaxedPrice* | +`taxPortions` | [*TaxPortion*](#taxportion)[] | +`totalGross` | [*Money*](#money) | +`totalNet` | [*Money*](#money) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6975](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6975) + +___ + +### `TextAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7039](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7039) + +___ + +### `TextLineItem` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TextLineItem* | +`addedAt` | [*Scalars*](#scalars)[*DateTime*] | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | +`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | +`id` | [*Scalars*](#scalars)[*String*] | +`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | +`quantity` | [*Scalars*](#scalars)[*Int*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7050) + +___ + +### `TextLineItemDescriptionArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7067](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7067) + +___ + +### `TextLineItemDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | +`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | +`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | +`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7072](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7072) + +___ + +### `TextLineItemNameArgs` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7062](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7062) + +___ + +### `TimeAttribute` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7080](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7080) + +___ + +### `TimeAttributeDefinitionType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7086](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7086) + +___ + +### `TimeField` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7091](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7091) + +___ + +### `TimeType` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7097](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7097) + +___ + +### `TrackingData` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TrackingData* | +`carrier`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`isReturn` | [*Scalars*](#scalars)[*Boolean*] | +`provider`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`providerTransaction`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`trackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7102](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7102) + +___ + +### `TrackingDataDraftType` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`carrier`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`isReturn`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`provider`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`providerTransaction`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`trackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7111](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7111) + +___ + +### `Transaction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *Transaction* | +`amount` | [*Money*](#money) | +`id` | [*Scalars*](#scalars)[*String*] | +`interactionId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`state` | [*TransactionState*](../enums/types_graphql.transactionstate.md) | +`timestamp`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`type`? | [*Maybe*](#maybe)<[*TransactionType*](../enums/types_graphql.transactiontype.md)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7119) + +___ + +### `TransitionOrderCustomLineItemState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actualTransitionDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`customLineItemId` | [*Scalars*](#scalars)[*String*] | +`fromState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`toState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7144](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7144) + +___ + +### `TransitionOrderLineItemState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`actualTransitionDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | +`fromState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`lineItemId` | [*Scalars*](#scalars)[*String*] | +`quantity` | [*Scalars*](#scalars)[*Long*] | +`toState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7152](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7152) + +___ + +### `TransitionOrderState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`force`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`state` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7160](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7160) + +___ + +### `TransitionProductState` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`force`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | +`state` | [*ReferenceInput*](#referenceinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7165](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7165) + +___ + +### `Type` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | +`typeRef` | [*Reference*](#reference) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7170](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7170) + +___ + +### `TypeDefinition` + +Types define the structure of custom fields which can be attached to different entities throughout the platform. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7176) + +___ + +### `TypeDefinitionDescriptionArgs` + +Types define the structure of custom fields which can be attached to different entities throughout the platform. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7200) + +___ + +### `TypeDefinitionFieldDefinitionsArgs` + +Types define the structure of custom fields which can be attached to different entities throughout the platform. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | +`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7206) + +___ + +### `TypeDefinitionNameArgs` + +Types define the structure of custom fields which can be attached to different entities throughout the platform. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | +`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7194](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7194) + +___ + +### `TypeDefinitionQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *TypeDefinitionQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*TypeDefinition*](#typedefinition)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7211](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7211) + +___ + +### `UnpublishProduct` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7219) + +___ + +### `UpdateCartItemShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address` | [*AddressInput*](#addressinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7223](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7223) + +___ + +### `UpdateOrderItemShippingAddress` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`address` | [*AddressInput*](#addressinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7227](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7227) + +___ + +### `UpdateOrderSyncInfo` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`channel` | [*ResourceIdentifierInput*](#resourceidentifierinput) | +`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | +`syncedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7231](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7231) + +___ + +### `Versioned` + +Versioned object have an ID and version and modification. Every update of this object changes it's version. + +#### Type declaration: + +Name | Type | +:------ | :------ | +`createdAt` | [*Scalars*](#scalars)[*DateTime*] | +`createdBy`? | [*Maybe*](#maybe)<[*Initiator*](#initiator)\> | +`id` | [*Scalars*](#scalars)[*String*] | +`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | +`lastModifiedBy`? | [*Maybe*](#maybe)<[*Initiator*](#initiator)\> | +`version` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7238) + +___ + +### `WhitespaceSuggestTokenizerInput` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7247](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7247) + +___ + +### `Zone` + +Zones allow defining ShippingRates for specific Locations. + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7252](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7252) + +___ + +### `ZoneLocation` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`country` | [*Scalars*](#scalars)[*Country*] | +`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7266](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7266) + +___ + +### `ZoneQueryResult` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ZoneQueryResult* | +`count` | [*Scalars*](#scalars)[*Int*] | +`offset` | [*Scalars*](#scalars)[*Int*] | +`results` | [*Zone*](#zone)[] | +`total` | [*Scalars*](#scalars)[*Long*] | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7271](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7271) + +___ + +### `ZoneRate` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`__typename`? | *ZoneRate* | +`shippingRates` | [*ShippingRate*](#shippingrate)[] | +`zone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | +`zoneRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7279](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7279) + +___ + +### `ZoneRateDraft` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`shippingRates`? | [*Maybe*](#maybe)<[*ShippingRateDraft*](#shippingratedraft)[]\> | +`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7286) + +___ + +### `ZoneUpdateAction` + +#### Type declaration: + +Name | Type | +:------ | :------ | +`addLocation`? | [*Maybe*](#maybe)<[*AddZoneLocation*](#addzonelocation)\> | +`changeName`? | [*Maybe*](#maybe)<[*ChangeZoneName*](#changezonename)\> | +`removeLocation`? | [*Maybe*](#maybe)<[*RemoveZoneLocation*](#removezonelocation)\> | +`setDescription`? | [*Maybe*](#maybe)<[*SetZoneDescription*](#setzonedescription)\> | +`setKey`? | [*Maybe*](#maybe)<[*SetZoneKey*](#setzonekey)\> | + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7291](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7291) + + + +### `CategoryData` + +* **CategoryData** + +### `categories` + +Defined in: [packages/shopify/api-client/src/api/getCategory/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getCategory/index.ts#L9) + + + +### `GetMeParams` + +* **GetMeParams** + +### `customer` + +Defined in: [packages/shopify/api-client/src/api/getMe/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getMe/index.ts#L7) + + + +### `OrdersData` + +* **OrdersData** + +### `me` + +Defined in: [packages/shopify/api-client/src/api/getMe/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getMe/index.ts#L12) + + + +### `ProductData` + +* **ProductData** + +### `products` + +Defined in: [packages/shopify/api-client/src/api/getProduct/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getProduct/index.ts#L9) + + + + +### `UpdateCartParams` + +* **UpdateCartParams** + +### `actions` + +Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:11](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/api/updateCart/index.ts#L11) + +___ + +### `id` + +Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L9) + +___ + +### `version` + +Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:10](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L10) + +___ + +### `versionFallback` + +Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L12) + + + +### `BaseSearch` + +* **BaseSearch** + + ↳ [*ProductWhereSearch*](#interfacestypes_apiproductwheresearchmd) + + ↳ [*CategoryWhereSearch*](#interfacestypes_apicategorywheresearchmd) + + ↳ [*OrderWhereSearch*](#interfacestypes_apiorderwheresearchmd) + +### `limit` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) + +___ + +### `offset` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) + +___ + +### `sort` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) + + + +### `CartData` + +* *Omit*<[*CartDraft*](#cartdraft), *currency*\> + + ↳ **CartData** + +### `anonymousId` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:827](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L827) + +___ + +### `billingAddress` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:816](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L816) + +___ + +### `country` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:811](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L811) + +___ + +### `currency` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:83](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L83) + +___ + +### `custom` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:813](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L813) + +___ + +### `customLineItems` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:824](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L824) + +___ + +### `customerEmail` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:814](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L814) + +___ + +### `customerGroup` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:830](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L830) + +___ + +### `customerId` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:825](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L825) + +___ + +### `deleteDaysAfterLastModification` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:820](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L820) + +___ + +### `discountCodes` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:822](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L822) + +___ + +### `externalTaxRateForShippingMethod` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L826) + +___ + +### `inventoryMode` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:812](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L812) + +___ + +### `itemShippingAddresses` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:821](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L821) + +___ + +### `lineItems` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:823](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L823) + +___ + +### `locale` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L819) + +___ + +### `origin` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:832](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L832) + +___ + +### `shippingAddress` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:815](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L815) + +___ + +### `shippingMethod` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:817](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L817) + +___ + +### `shippingRateInput` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:831](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L831) + +___ + +### `store` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:833](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L833) + +___ + +### `taxCalculationMode` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:829](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L829) + +___ + +### `taxMode` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:818](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L818) + +___ + +### `taxRoundingMode` + +Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:828](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L828) + + + +### `CategoryWhereSearch` + +* [*BaseSearch*](#interfacestypes_apibasesearchmd) + + ↳ **CategoryWhereSearch** + +### `catId` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:68](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L68) + +___ + +### `limit` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) + +___ + +### `offset` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) + +___ + +### `slug` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:69](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L69) + +___ + +### `sort` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) + + + +### `Filter` + +* **Filter** + +### `name` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:49](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L49) + +___ + +### `type` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:48](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L48) + +___ + +### `value` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:50](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L50) + + + +### `FilterOption` + +* **FilterOption** + +### `label` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:62](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L62) + +___ + +### `selected` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:64](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L64) + +___ + +### `value` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:63](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L63) + + + +### `FlowOptions` + +* **FlowOptions** + +### `currentToken` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:77](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L77) + +___ + +### `customerCredentials` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:78](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L78) + +___ + +### `requireUserSession` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:79](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L79) + + + +### `OrderWhereSearch` + +* [*BaseSearch*](#interfacestypes_apibasesearchmd) + + ↳ **OrderWhereSearch** + +### `id` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:73](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L73) + +___ + +### `limit` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) + +___ + +### `offset` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) + +___ + +### `sort` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) + + + +### `ProductWhereSearch` + +* [*BaseSearch*](#interfacestypes_apibasesearchmd) + + ↳ **ProductWhereSearch** + +### `catId` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:54](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L54) + +___ + +### `filters` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:58](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L58) + +___ + +### `id` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:57](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L57) + +___ + +### `limit` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) + +___ + +### `offset` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) + +___ + +### `skus` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:55](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L55) + +___ + +### `slug` + +Defined in: [packages/shopify/api-client/src/types/Api.ts:56](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L56) + +___ + +### `sort` + +Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) + +Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) + + + + +### `ClientInstance` + +* *ShopifyBuy* + + ↳ **ClientInstance** + +### `fetchProducts` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js + +___ + +### `fetchSingleProductByID` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:39 + +___ + +### `fetchSingleProductByHandle` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:36 + +___ + +### `fetchAllCollectonsWithAllProducts` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:32 + +___ + +### `fetchCollectonWithProducts` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:38 + +___ + +### `InitializeCart` + +Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:35 + +___ diff --git a/packages/core/docs/shopify/auth-middleware.md b/packages/core/docs/shopify/auth-middleware.md new file mode 100644 index 0000000000..8b29e04101 --- /dev/null +++ b/packages/core/docs/shopify/auth-middleware.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/core/docs/shopify/authorization-strategy.md b/packages/core/docs/shopify/authorization-strategy.md new file mode 100644 index 0000000000..07dc81b7d9 --- /dev/null +++ b/packages/core/docs/shopify/authorization-strategy.md @@ -0,0 +1,5 @@ +# Authorization + +We are following [HTTP Authorization guide](https://shopify.dev/apps/auth) from Shopify documentation and using their library - [JS buy SDK](https://github.com/Shopify/js-buy-sdk). A token is stored in the cookie as we access it on both the client and server-side. + +You can read more about Authentication in Vue Storefront [here](/guide/authentication.html). \ No newline at end of file diff --git a/packages/core/docs/shopify/checkout.md b/packages/core/docs/shopify/checkout.md new file mode 100644 index 0000000000..70bde9cd7f --- /dev/null +++ b/packages/core/docs/shopify/checkout.md @@ -0,0 +1,171 @@ +# Checkout Flow +This tutorial shows a Shopify integrator how Storefront API is used in the lifecycle of an order, including creating + cart, preparing for checkout, and more order-related tasks. + +#### Before you begin +Let's get to know more about the Shopify Storefront API. Storefront API gives you full creative control to add Shopify +buying experiences anywhere your customers are, including websites, apps, and video games. Access product information, create customers' orders, and check out purchases programmatically. + +The Storefront API is composed of the following: + +**Customers** - Information about customers in Shopify, such as their shipping address and display name. + +**Nodes** - Set of Shopify Storefront API root nodes, including Checkouts, Collections, Orders, Payments, etc. See a +complete list of nodes [here.](https://shopify.dev/docs/storefront-api/reference/object) + +**Shops** - Shop information such as billing address, currency code, and domain. + +Using the Storefront API, you can: + +* Fetch data about a single product or a collection of products to display on any website or device. +* Create unique checkout experiences with full control over the shopping cart. +* Create new customers or modify existing ones, including address information. +* Allow customers to select unique product options. + +This **5-step** tutorial generally takes 30 minutes to understand the complete lifecycle of checkout. + +### Step 1: Get Product +Retrieve the product information from Shopify store. Use the `useProduct` composable method to retrieve products by +handle (URL key) or product id. + +This example fetch a single product by handle. +```typescript +import { computed } from '@vue/composition-api'; +import { onSSR } from '@vue-storefront/core'; +import { useProduct, productGetters } from '@vue-storefront/shopify'; + +export default { + setup(props, context) { + const { products, search } = useProduct('products'); + const { slug } = context.root.$route.params; + + const product = computed(() => productGetters.getFiltered(products.value)); + + onSSR(async () => { + await search({ slug }); + }); + + return { + product + }; + } +}; +``` + +* [useProduct](/shopify/use-product) provides additional information about the product. + +### Step 2: Add to cart +This step shows how to add a product to the cart. To add a product to a cart, you must provide product object and the + quantity to `addToCart` method of `useCart` composable. + +```typescript +import { useCart } from '@vue-storefront/shopify'; +import { ref } from '@vue/composition-api'; + +export default { + setup() { + + const qty = ref(1); + const { addItem } = useCart(); + + return { + addItem, + qty + }; + } +}; +``` +Now, add the following line on your "Add to cart" button to trigger the `addToCart` event. + +``` +@click="addItem(product, parseInt(qty))" +``` + +### Step 3: List cart item +Now that all the items have been added to the cart, then retrieve the cart to review all cart items and summary. +Use `loadCart` method of `useCart` to get the cart from Shop. + +```javascript +import { onSSR } from '@vue-storefront/core'; +import { useCart } from '@vue-storefront/shopify'; + +export default { + setup() { + const { cart, loadCart } = useCart(); + + onSSR(async () => { + await loadCart(); + }); + + return { + cart + }; + } +}; +``` + +* [useCart](/shopify/use-cart) provides additional information about the cart. + +### Step 4: Go to Checkout +In this step, redirect the customer to Shopify checkout page to complete the order. + +First, obtain the checkout URL from the cart object. + +```javascript + const { cart, loadCart } = useCart(); + + const checkoutUrl = computed(() => cartGetters.getCheckoutUrl(cart.value)); + + onSSR(async () => { + await loadCart(); + }); + + return { + cart, + checkoutUrl + }; +``` + +The checkout URL looks like the following: +```javascript +const checkoutUrl = 'https://shopify-pwa.aureatelabs.com/40719024288/checkouts/9882505fd32f9432c5b72e213ed0d7b8'; +``` + +Now, add the following link to the cart page. + +```Vue + +``` + +When you submit payment information, Shopify creates an order and sends an order confirmation to the customer. + +### Step 5: Thank you page +Thank you page appears on placed order successfully but the customer still on Shopify website. +You've to edit the thank you page and following code to redirect them back to the frontend. +```javascript +const wrapper = document.querySelectorAll("header.main__header")[0].querySelectorAll(".logo"); +if (wrapper) { + const a = document.createElement('a'); + a.appendChild(document.createTextNode("Back To Home")); + a.title = "Back To Home"; + a.classList.add('btn'); + a.classList.add('back-btn'); + a.href = "https://shopify-pwa.aureatelabs.com/"; + wrapper[0].appendChild(a); +} + +setTimeout(function(){ + window.location.href="https://shopify-pwa.aureatelabs.com/"; +}, 5000); +``` +You can edit the above code as per your needs. + +Shopify has a special section in the admin where you can enter that code so that it'll apply to the Thank You page. +It's called **"Additional Scripts."** + +If you navigate to **Settings > Checkout** and scroll to the bottom of the Order Processing section, you'll find a +text box where you can paste code into. diff --git a/packages/core/docs/shopify/composables.md b/packages/core/docs/shopify/composables.md new file mode 100755 index 0000000000..c6ac3da0d7 --- /dev/null +++ b/packages/core/docs/shopify/composables.md @@ -0,0 +1,29 @@ +--- +platform: Shopify +platform_pkg: shopify +--- + + + + +::: slot example-product-search +```js +import { useProduct } from '@vue-storefront/shopify' + +const { products, search, loading } = useProduct() + +search({ id: '12345' }) +``` +::: + +::: slot example-product-search-getters +```js +import { useProduct, productGetters } from '@vue-storefront/shopify' + +const { products, search } = useProduct() + +search({ id: '12345' }) + +const attributes = computed(() => productGetters.getAttributes(product.value[0])) +``` +::: diff --git a/packages/core/docs/shopify/configuration.md b/packages/core/docs/shopify/configuration.md new file mode 100644 index 0000000000..2b4f99a1b1 --- /dev/null +++ b/packages/core/docs/shopify/configuration.md @@ -0,0 +1,69 @@ +# Configuration + + +Shopify configuration is located in two places: + +- nuxt.config.js is a place where you're configuring properties related only to the frontend part of your application. + +- middleware.config.js is a place where you're configuring the Shopify SDK and extensions. You will put there API keys, integration configurations, custom GraphQL queries, and new API endpoints. + +## Nuxt Shopify configuration + +```js +// nuxt.config.js +['@vue-storefront/shopify/nuxt', { + i18n: { + useNuxtI18nConfig: true + } +}] +``` + +- `useNuxtI18nConfig` - when enabled, `@vue-storefront/shopify/nuxt` package will use `i18n` config object provided in `nuxt.config.js`. Otherwise, the `i18n` config should be declared directly inside this package configuration. You can read more about it on [Internationalization](https://docs.vuestorefront.io/v2/advanced/internationalization.html) page + +## Middleware Shopify configuration + +You can read more about middleware configuration in Vue Storefront [here](../advanced/server-middleware.md#configuration) + +```js +// middleware.config.js +module.exports = { + integrations: { + shopify: { + location: '@vue-storefront/shopify-api/server', + configuration: { + api: { + domain: 'YOUR SHOPIFY STORE DOMAIN', + storefrontAccessToken: 'SHOPIFY STORE API KEY' + }, + currency: 'USD', + country: 'US' + } + } + } +}; + +``` + +### `api` + +- `domain` - link to your Shopify storefront. +- `storefrontAccessToken` - Shopify private app API key. Visit [Shopify documentation](https://shopify.dev/tutorials/generate-api-credentials) for more details about creating an API key + +### `acceptLanguage` + +An array of possible locales Shopify will use. You can read more about Shopify internationalization configuration [here](https://shopify.dev/tutorials/review-theme-store-requirements-internationalization) + +```js +acceptLanguage: ['en-gb', 'en-us'] +``` + +### `languageMap` + +If you supply a `languageMap` during setup, this will be used to map a locale to the accepted languages. + +```js +languageMap: { + 'en-gb': ['en-gb', 'en-us'], + 'en-us': ['en-us', 'en-gb'], +} +``` diff --git a/packages/core/docs/shopify/feature-list.md b/packages/core/docs/shopify/feature-list.md new file mode 100644 index 0000000000..993a6dc8cc --- /dev/null +++ b/packages/core/docs/shopify/feature-list.md @@ -0,0 +1,178 @@ +--- +sidebar: false +--- +# Ecommerce and theme features + +The following document lists the most important (but not all!) features of [Shopify integration with Vue Storefront 2](https://www.vuestorefront.io/shopify) offering. + + +## eCommerce integration and theme + +### Product Tile + + + +1. Display product image +2. Display product regular/sale price +3. Display product name +4. Display product catalog discounts +5. Quick Add to Cart (with default variant) + + +### Product Listing Page + + + + +1. Products + 1. Display a list of products for a specific collection + 2. Display number of total products found + 3. Display Breadcrumbs +2. Pagination + 1. Display pagination + 2. Change the number of items per page +3. Sorting + 1. Sort latest + 2. Sort by Title: A to Z + 3. Sort by Title: Z to A + 4. Sort by Price: Low to high + 5. Sort by Price: High to low + 6. Sorting is reflected in the URL +4. UI + 1. Horizontal/Vertical product list switch + +### Product Details Page + + + +1. Product + 1. Display master variant + 2. Display product name + 3. Display product price + 4. Display discounted price + 5. Display product description +2. Product Variants + 1. Display product variants + 2. Change variant + 3. Variant change is reflected in the URL +3. Product Gallery + 1. Show all product images as thumbnails + 2. Show one big product image + 3. Change big product image with one of thumbnails + 4. Change active variant image on variant selection +4. Add to cart + 1. Add product variant to cart + 2. Change quantity +5. Suggested products + 1. Display a list of suggested products from the same collection + +### Cart drawer + + + + + +- Product + - Display product name + - Display product price + - Add product to cart + - Remove product from cart + - Confirmation on remove from cart + - Change product Quantity + - Empty cart +- Summary + - Show total price + +### User Authentication + + + +- Log in with email and password +- Create a new account +- Reset password + +### User Profile + + + + + + + +- My Profile (Personal Details) + - Change firstname + - Change lastname + - Change password with adding confirm password +- Address book + - Delete address + - Change address + - View all address +- Order History + - See Order Status + - See Order Id + - See Order Price + - Download Orders + - Order tracking + - Order address +- Log Out + +### Error page + + + +- Error Page for 404/server errors + +## Content Management System +1. Out of the box components available in the CMS + - Accordion + - Alert + - Banner + - Call to action + - Carousel + - Editorial (renders HTML) + - Footer + - Gallery + - Grid + - Heading + - Hero + - Link + - List + - Navigation list + - Product Card + - Product Slider + - Steps + - Tabs +## Internationalization +1. Frontend translations based on `nuxt-i18n` + 1. String translations based on keys + 2. Currencies translation + 3. Automatic routes generation and custom paths + 4. Search Engine Optimization + 5. Lazy-loading of translation messages + 6. Redirection based on auto-detected language + 7. Different domain names for different languages +2. eCommerce platform internationalization connected with `nuxt-i18n` +3. CMS platform internationalization connected with `nuxt-i18n` + +## Progressive Web App +1. Automatic Web Manifest generation +2. Automatic icons scaling +3. Static Assets Caching (partial offline support) +4. Add to Home Screen + +## Performance +- Two output modes + - Modern mode without polyfills for modern browsers (20-30% smaller) + - Legacy mode for old browsers (minority) +- Server-Side Rendering +- Server-Side Tag-based Cache +- Majority of JS code is executed on the server side to keep small bundles +- Automatic route-based code splitting (incl. CSS) +- Static assets client-side caching via Service Worker +- CSS Purging +- Preconnects to CDNs/Google Fonts +- HTTP/2 Push +- Lazy Hydration of below-the-fold elements + +## Middleware +- Server-side Express API middleware diff --git a/packages/core/docs/shopify/getting-started.md b/packages/core/docs/shopify/getting-started.md new file mode 100755 index 0000000000..7a3ee3a60f --- /dev/null +++ b/packages/core/docs/shopify/getting-started.md @@ -0,0 +1,30 @@ +# Getting started + +## Before dive into the Shopify integration with Vue Storefront 2 + +If you [generated your project from our CLI](/general/installation.html), your shop will be connected to our [demo store](https://shopify-pwa.aureatelabs.com/). + +If you haven't yet generated your project and just to play with Vue Storefront integration with Shopify and understand its capabilities, the first thing you should do after setting it up is changing the credentials to connect to your Shopify store. + +First, you need to initiate the fresh project copy from [Vue Storefront CLI](https://docs.vuestorefront.io/v2/general/installation.html). + +Then set up your credentials in `middleware.config.js`. Replace ```SHOPIFY STORE DOMAIN``` and ```SHOPIFY STORE ACCESS TOKEN``` with yours + +```js +// middleware.config.js +module.exports = { + integrations: { + shopify: { + location: '@vue-storefront/shopify-api/server', + configuration: { + api: { + domain: '', + storefrontAccessToken: '' + }, + currency: 'USD', + country: 'US' + } + } + } +}; +``` diff --git a/packages/core/docs/shopify/maintainers.md b/packages/core/docs/shopify/maintainers.md new file mode 100644 index 0000000000..d084196126 --- /dev/null +++ b/packages/core/docs/shopify/maintainers.md @@ -0,0 +1,22 @@ +# Maintainers and support + +The Shopify integration is developed and maintained by the core partner **[Aureate Labs](https://aureatelabs.com/)** and **Vue Storefront core team**. + +           + +## Support + +In case of any questions don't hesitate reaching out to the maintainers on [Discord](https://discord.vuestorefront.io) and visiting `#shopify` channel. You can also [hire the core team](https://www.vuestorefront.io/support) to support you in delivering your project. + + + diff --git a/packages/core/docs/shopify/use-cart.md b/packages/core/docs/shopify/use-cart.md new file mode 100644 index 0000000000..6fbfa3cc10 --- /dev/null +++ b/packages/core/docs/shopify/use-cart.md @@ -0,0 +1,132 @@ +# `useCart` + +`useCart` composition API function is responsible, as its name suggests, for interactions with cart in your eCommerce. This function returns following values: + +## Features + +`useCart` composable can be used to: + +* load cart information, +* add, update and remove items in the cart, +* applying and removing coupons, +* checking if product is already added to the cart. + +## API + +- `cart` - the main data object that holds the cart structure in platform specific structure + +```ts +export type Maybe = T | null; + +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Json: any; + Array: any; +}; + +export type Cart = { + __typename?: 'Cart'; + id: Maybe; + ready?: Maybe; + requiresShipping?: Maybe; + note?: Maybe; + paymentDueV2?: Maybe; + webUrl?: Maybe; + orderStatusUrl?: Maybe; + taxExempt?: Maybe; + taxesIncluded?: Maybe; + currencyCode: Maybe; + paymentDueV2?: Maybe; + totalTaxV2?: Maybe; + lineItemsSubtotalPrice?: Maybe; + subtotalPriceV2?: Maybe; + totalPriceV2?: Maybe; + completedAt: Maybe; + createdAt: Maybe; + updatedAt?: Maybe; + email: Maybe; + discountApplications: Maybe; + appliedGiftCards: Maybe; + shippingAddress?: Maybe; + shippingLine?: Maybe; + customAttributes: Maybe; + order?: Maybe; + lineItems?: Maybe; + refetchQuery: Maybe; + errors: Maybe; + userErrors?: Maybe; +} +``` +- `load` - function required to fetch cart from a server or create a brand new if it doesn't exist. +- `addItem` - Adds cart items to an existing checkout. + - It takes two parameters: + - `product` (Object) The identifier of the product variant for the cart item. + - `quantity` (Int) The quantity of the cart item. +- `updateItemQty` - Updates line items on an existing checkout. + - It takes two parameters: + - `product` (Object) The identifier of the product variant for the cart item. + - `quantity` (Int) The quantity of the cart item. +- `removeItem` - function for removing a product that currently is in the cart. + - It takes one parameter: + - `product` (Object) The identifier of the product variant for the cart item. +- `isInCart` - function for checking if a product is currently in the cart. +- `clear` - function for removing all items currently stored in the cart. +- `coupon` - reactive data object containing coupon details +- `applyCoupon` - function for applying the coupon to cart + - It takes one parameter: + - `coupon` (String) The coupon string. +- `removeCoupon` - function for removing coupon applied to the cart. +- `loading` - a reactive object containing information about loading state of the cart. + +## cartGetters + +- `getTotals` - Return an object cart totals + - `total` (float) - The value of cart total + - `subtotal` (float) - The value of cart subtotal. +- `getShippingPrice` - To retrieve shipping price. +- `getItems` - Return list of cart items. +- `getItemName` - Accept one parameter `product` and return the name of product. +- `getItemImage` - Accept one parameter `product` and return the image source URL of product. +- `getItemPrice` - Accept one parameter `product` and return the price of the product. +- `getItemQty` - Accept one parameter `product` and return the quantity of product. +- `getItemAttributes` - Accept two parameter, `product` and `filterByAttributeName` (Optional). +- `getItemSku` - Accept one parameter `product` and return the sku of product. +- `getFormattedPrice` Accept one parameter `product` and return the product's price with a currency symbol. +- `getTotalItems` - To get the total numbers of cart items +- `getCheckoutUrl`- To retrieve the Shopify checkout URL. i.e. `https://shopify-pwa.aureatelabs.com/40719024288/checkouts/9882505fd32f9432c5b72e213ed0d7b8` +- `hasItemAttributes` - Check if product contains variant or not. +- `getCoupons` - Yet to be implement. Will get applied coupons array. +- `getDiscounts` - Yet to be implement. Will get applied coupons discounts array. + +## Examples +Cart composable is a service designed for supporting a single cart and access it everywhere with ease. + +Initialization of a cart requires using `load()` when calling `useCart()` for the first time. + +Keep in mind that upon execution of `load`, the cart will get loaded only once. Note that all the composables uses same load method, so you need to use it using alias. load: loadCart. + +```javascript +import { useCart, cartGetters } from '@vue-storefront/shopify'; +import { onSSR } from '@vue-storefront/core' + +export default { + setup() { + const { cart, removeItem, updateItemQty, load } = useCart(); + + onSSR(async () => { + await load(); + }) + + return { + removeItem, + updateItemQty, + products: computed(() => cartGetters.getItems(cart.value)), + totals: computed(() => cartGetters.getTotals(cart.value)), + totalItems: computed(() => cartGetters.getTotalItems(cart.value)) + } + } +} +``` diff --git a/packages/core/docs/shopify/use-category.md b/packages/core/docs/shopify/use-category.md new file mode 100644 index 0000000000..e59d0f00db --- /dev/null +++ b/packages/core/docs/shopify/use-category.md @@ -0,0 +1,71 @@ +# useCategory composable + +`useCategory` composition API function allows loading the categories. This function returns the following values: + +- `search` - a primary querying function that is used to query products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. + + - The `params` has the following options: + - `id` (String) The id of the collection to fetch. + - `slug` (String) The handle of the collection to fetch. + - `customQuery` (Object) An object specifying the query data containing zero or more of: + - `first` (Int) The relay `first` param. This specifies page size. + - `sortKey` (String) The key to sorting results by. Available values are ID, TITLE, UPDATED_AT + - `query` (String) A query string. + - `reverse` (Boolean) Whether or not to reverse the sort order of the results + - `withProducts` (Boolean) Fetch collections, including products. +- `categories: Category[]` - a main data object that contains an array of categories fetched by `search` method +```typescript +export type Category = { + __typename?: 'Category'; + id: string; + handle: string; + title: string; + image: string; + description: string; + descriptionHtml: string; + updatedAt: string; + products: array; +} +``` +- `loading` - a reactive object containing information about the loading state of your `search` method + + +## Examples + +Fetch all collections in the shop, including products. + +```javascript +import { useCategory } from '@vue-storefront/shopify'; +import { onSSR } from '@vue-storefront/core' + +export default { + setup() { + const { categories, search, loading } = useCategory('menu-categories'); + + onSSR(async () => { + await search({}); + }); + + return { + categories, + loading + } + } +} +``` + +Fetch a single collection by slug on the shop, including products. + +```javascript + + const { categories, search } = useCategory('categories'); + + onSSR(async () => { + await search({ slug: 'sale' }); + }); + + return { + categories + }; + +``` diff --git a/packages/core/docs/shopify/use-content.md b/packages/core/docs/shopify/use-content.md new file mode 100644 index 0000000000..2219edbdf2 --- /dev/null +++ b/packages/core/docs/shopify/use-content.md @@ -0,0 +1,63 @@ +# useContent composable + +`useContent` composition API function allows loading of the CMS pages. This function returns the following values: + +- `search` - the main function that is used to fetch a cms page from the eCommerce platform and populate the `content` object with the result. Every time you invoke this function API request is made. This method accepts a single `slug` string. +- `content: Content[]` - a main data object that contains an array of page data fetched by `loadPage` method. +```typescript +export type Content = { + id: string; + name: string; + body: string; + handle: string; +} +``` +- `loading` - a reactive object containing information about the loading state of your `loadPage` method. + +## contentGetters + +- `getFiltered` - Retrieve the single page fetch by handle from Shopify store +- `getContents` - Return the list of pages of the Shopify store. + +## Examples + +Fetch a single page by the handle of the shop. + +```javascript +import { onSSR } from '@vue-storefront/core'; +import { useContent, contentGetters } from '@vue-storefront/shopify'; + +export default { + setup(props, context) { + const { search, content } = useContent(); + const { slug } = context.root.$route.params; + + onSSR(async () => { + await search(slug); + }); + + const page = computed(() => contentGetters.getFiltered(content.value)); + + return { + page + }; + } +}; +``` + +List of the shop's pages. + +```javascript + + const { pages, content } = useContent(); + + onSSR(async () => { + await pages(); + }); + + const cmsPages = computed(() => contentGetters.getContents(content.value)); + return { + cmsPages + }; + +``` diff --git a/packages/core/docs/shopify/use-product.md b/packages/core/docs/shopify/use-product.md new file mode 100644 index 0000000000..70d437b315 --- /dev/null +++ b/packages/core/docs/shopify/use-product.md @@ -0,0 +1,165 @@ +# useProduct composable + +`useProduct` composition API function allows for loading the products. This function returns the following values: + +- `search` - the main querying function that is used to query products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. + - The `params` has the following options: + - `id` (String) The id of the product to fetch. + ```javascript + const id = 'Xk9lM2JkNzFmNzIQ4NTIY4ZDFi9DaGVja291dC9lM2JkN=='; + ``` + - `ids` (String[]) The ids of the products to fetch. + ```javascript + const ids = [ + 'Xk9lM2JkNzFmNzIQ4NTIY4ZDFi9DaGVja291dC9lM2JkN==', + 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzc4NTc5ODkzODQ=' + ]; + ``` + - `slug` (String) The handle of the product to fetch. + ```javascript + const slug = 'my-product'; + ``` + - `customQuery` (Object) An object specifying the query data containing zero or more of: + - `first` (Int) The relay `first` param. This specifies page size. + - `sortKey` (String) The key to sorting results by. Available values are ID, TITLE, UPDATED_AT + - `query` (String) A query string. + - `reverse` (Boolean) Whether or not to reverse the sort order of the results +- `products: Product[]` - the main data object that contains an array of products fetched by `search` method +```typescript +export type Maybe = T | null; + +export type Image = { + id: Maybe; + src: Maybe; + altText: Maybe; +} + +export type Price = { + amount: Maybe; + currencyCode: Maybe; +} + +export type Option = { + name: Maybe; + value: Maybe; +} + +export type ProductVariant = { + __typename?: 'ProductVariant'; + _id?: Maybe; + _description: Maybe; + _descriptionHtml: Maybe; + _slug: Maybe; + _categoriesRef: string[]; + name: Maybe; + images: Maybe; + product?: Maybe; + options: Maybe; + variantBySelectedOptions?: Maybe; + _coverImage: Maybe; + price: { + original: number; + current: number; + }; + variants?: Maybe; + available?: Maybe; + productType: Maybe; + _availableForSale?: Maybe; +} + +export type Product = { + id: Maybe; + handle: Maybe; + images: Maybe; + options: Maybe; + productType: Maybe; + publishedAt: Maybe; + title: Maybe; + description: Maybe; + descriptionHtml: Maybe; + updatedAt: Maybe; + createdAt: Maybe; + availableForSale: Maybe; + variants: Maybe; + vendor: Maybe; +} + +``` +- `loading` - a reactive object containing information about the loading state of your `search` method + +## productGetters +- `getName` - Get product name +- `getSlug` - Get product URL key +- `getPrice` - Return an object `checkSpecialPrice`, it will contains two parameters: + - `regular` (float) regular price + - `special` (float) special price +- `getGallery` - Return an array of object `AgnosticMediaGalleryItem[]`, which contains the following parameters: + - `small` (string) image source URL + - `normal` (string) image source URL + - `big` (string) image source URL +- `getCoverImage` - Get product's mail image. +- `getFiltered` - Return the array of products. +- `getAttributes` - Return the product variants. +- `getOptions` - Get product custom options +- `getDescription` - Retrieve product description +- `getCategoryIds` - Get category ids +- `getId` - Get product id +- `getFormattedPrice` - Return product price with currency sign +- `getStatus` - Return true if product is available +- `hasSpecialPrice` - Return true if product product has discounted price +- `isInWishlist` - Return true if product was added to wishlist +- `getBreadcrumbs` - Prepared bread crumbs for the product. +- `getVendor` - Get vendor name of product. + +## Examples + +Fetch a single product by handle of the product. +```typescript +import { computed } from '@vue/composition-api'; +import { onSSR } from '@vue-storefront/core'; +import { useProduct, productGetters } from '@vue-storefront/shopify'; + +export default { + setup(props, context) { + const { products, search } = useProduct('products'); + const { slug } = context.root.$route.params; + + const product = computed(() => productGetters.getFiltered(products.value)); + + onSSR(async () => { + await search({ slug }); + }); + + return { + product + }; + } +}; +``` + +Fetch best selling products. +```typescript +import { useProduct } from '@vue-storefront/shopify'; +import { onSSR } from '@vue-storefront/core'; +export default { + setup() { + const { products, search: productsSearch } = useProduct('categoryProducts'); + + const productsSearchParams = { + customQuery: { + first: 8, + sortKey: 'bestSelling', + reverse: false + } + }; + + onSSR(async () => { + await productsSearch(productsSearchParams); + }); + + return { + products, + } + } +} +``` diff --git a/packages/core/docs/shopify/use-search.md b/packages/core/docs/shopify/use-search.md new file mode 100644 index 0000000000..d0653f33c6 --- /dev/null +++ b/packages/core/docs/shopify/use-search.md @@ -0,0 +1,106 @@ +# useSearch composable + +`useSearch` composition API function allows searching for products. This function returns the following values: + +- `search` - the main querying function that is used to search products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object + - The `params` has the following options: + - `first` (Int) Returns up to the first `n` elements from the list. + - `sortKey` (String) The key to sorting results by. Available values are VENDOR, CREATED_AT, ID, PRICE, PRODUCT_TYPE, RELEVANCE, TITLE, UPDATED_AT, BEST_SELLING. + - `reverse` (Boolean) Whether or not to reverse the sort order of the results. + - `query` (String) A query string. +- `searchResults: Product[]` - the main data object that contains an array of categories fetched by `search` method + +```typescript +export type Maybe = T | null; + +export type Image = { + id: Maybe; + src: Maybe; + altText: Maybe; +} + +export type Price = { + amount: Maybe; + currencyCode: Maybe; +} + +export type Option = { + name: Maybe; + value: Maybe; +} + +export type ProductVariant = { + __typename?: 'ProductVariant'; + _id?: Maybe; + _description: Maybe; + _descriptionHtml: Maybe; + _slug: Maybe; + _categoriesRef: string[]; + name: Maybe; + images: Maybe; + product?: Maybe; + options: Maybe; + variantBySelectedOptions?: Maybe; + _coverImage: Maybe; + price: { + original: number; + current: number; + }; + variants?: Maybe; + available?: Maybe; + productType: Maybe; + _availableForSale?: Maybe; +} + +export type Product = { + id: Maybe; + handle: Maybe; + images: Maybe; + options: Maybe; + productType: Maybe; + publishedAt: Maybe; + title: Maybe; + description: Maybe; + descriptionHtml: Maybe; + updatedAt: Maybe; + createdAt: Maybe; + availableForSale: Maybe; + variants: Maybe; + vendor: Maybe; +} +``` +- `loading` - a reactive object containing information about the loading state of your `search` method + +## Examples + +```javascript +import { onSSR } from '@vue-storefront/core'; +import { useSearch } from '@vue-storefront/shopify'; + +export default { + setup(props, context) { + const { search, searchResults } = useSearch(); + + const searchQuery = ref(""); + const productsFound = computed(() => searchResults.value?.products); + + const onSearchQueryChanged = value => { + searchQuery.value = value; + if (value.length > 2) { + search({ term: searchQuery.value }); + } + }; + + onSSR(async () => { + await search({ term: "" }); + }); + + return { + productsFound, + searchQuery, + searchResults, + onSearchQueryChanged + }; + } +}; +``` diff --git a/packages/core/docs/shopify/use-user-order.md b/packages/core/docs/shopify/use-user-order.md new file mode 100644 index 0000000000..e751c37f37 --- /dev/null +++ b/packages/core/docs/shopify/use-user-order.md @@ -0,0 +1,54 @@ +# useUserOrder composable + +`useUserOrder` composition API function allows interactions with the customer's order history. This function returns the following values: + +- `searchOrders` - the main querying function that is used to query a user's order history from the eCommerce platform and populate the `orders` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. +- `orders` - the main data object that contains an array of orders fetched by `searchOrders` method +```typescript +export type Maybe = T | null; + +export type Price = { + amount: Maybe; + currencyCode: Maybe; +} + +export type Order = { + name?: Maybe; + totalPriceV2?: Maybe; + processedAt?: Maybe; + financialStatus?: Maybe; + lineItems?: Maybe; +} + +export type OrderItem = { + sku?: Maybe; + originalTotalPrice?: Maybe; + quantity?: Maybe; + title?: Maybe; +} +``` +- `loading` - a reactive object containing information about the loading state of your `searchOrders` method + +## Example + +Fetch a list of orders associated with the customer. + +```javascript +import { onSSR } from '@vue-storefront/core'; +import { computed } from '@vue/composition-api'; +import { useUserOrders } from '@vue-storefront/shopify'; + +export default { + setup() { + const { orders, searchOrders } = useUserOrders(); + + onSSR(async () => { + await searchOrders(); + }); + + return { + orders: computed(() => orders ? orders.value : []) + }; + } +}; +``` diff --git a/packages/core/docs/shopify/use-user.md b/packages/core/docs/shopify/use-user.md new file mode 100644 index 0000000000..c596301359 --- /dev/null +++ b/packages/core/docs/shopify/use-user.md @@ -0,0 +1,108 @@ +# useUser composable + +`useUser` composition API function allows loading the customer data. This function returns the following values: + +- `user` - the main data object that contains user structure in the platform-specific structure +```typescript +export type Maybe = T | null; + +export type Customer = { + id: Maybe; + firstName: Maybe; + lastName: Maybe; + displayName: Maybe; + email: Maybe; + phone: Maybe; +} +``` +- `updateUser` - function required to update user information like email, first and last name. + - This method accepts the following parameters. + - `email` (String) - The customer’s email. + - `firstName` (String) - The customer’s first name. + - `lastName` (String) - The customer’s last name. +- `register` - function for registering a user with email, name, and password. + - This method accepts the following parameters. + - `email` (String) - The customer’s email. + - `password` (String) - The login password used by the customer. + - `firstName` (String) - The customer’s first name. + - `lastName` (String) - The customer’s last name. +- `login` - function for authenticating the user with email and password and retrieve the token. + - This method accepts the following parameters. + - `username` (String) - The email associated with the customer. + - `password` (String) - The login password to be used by the customer. +- `logout` - function for removing user's token. +- `changePassword` - function for change user's password. + - This method accept the following parameters. + - `currentPassword` (String) - The existing password + - `newPassword` (String) - The login password used by the customer. +- `refreshUser` - function for retrieve user details by the token. +- `loading` - a reactive object containing information about the loading state of the user + +## Example +Create customer's access token. The access token is used to identify the customer and is required to modify the customer object in any way. +This method accepts two parameters, username, and password, and on the success, it will return a token. The token is required and mandatory to call other APIs like `updateUser`, `changePassword`, `refreshUser`, and `logout`. + +```vue + + + +``` diff --git a/packages/core/jest.config.js b/packages/core/jest.config.js new file mode 100644 index 0000000000..a3a5747d49 --- /dev/null +++ b/packages/core/jest.config.js @@ -0,0 +1,26 @@ +module.exports = { + preset: 'ts-jest', + transform: { + '^.+\\.[jt]s$': 'ts-jest' + }, + collectCoverage: true, + coverageDirectory: 'coverage', + coverageReporters: ['html', 'lcov', 'text'], + collectCoverageFrom: [ + './**/*.ts', + '!./**/*.d.ts', + '!**/__tests__/**/*.ts', + '!nuxt-theme-module/**/*' + ], + watchPathIgnorePatterns: ['/node_modules/'], + moduleFileExtensions: ['ts', 'js', 'json'], + moduleNameMapper: { + '^@vue-storefront/cli/(.*?)$': '/cli/$1', + '^@vue-storefront/nuxt-theme/(.*?)$': '/nuxt-theme-module/$1' + }, + rootDir: __dirname, + setupFilesAfterEnv: [ + './core/__tests__/setup.ts' + ], + testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'] +}; diff --git a/packages/core/middleware/package.json b/packages/core/middleware/package.json index b0448d03dd..378110663a 100644 --- a/packages/core/middleware/package.json +++ b/packages/core/middleware/package.json @@ -1,13 +1,12 @@ { "name": "@vue-storefront/middleware", - "version": "2.4.1", + "version": "2.4.2", "description": "", "main": "lib/index.cjs.js", "module": "lib/index.es.js", "types": "lib/index.d.ts", "scripts": { "build": "rimraf lib && rollup -c", - "test": "jest", "prepublish": "yarn build" }, "author": "Vue Storefront", diff --git a/packages/core/middleware/src/createServer.ts b/packages/core/middleware/src/createServer.ts index 8a6cde7ca5..aa68b39c2d 100644 --- a/packages/core/middleware/src/createServer.ts +++ b/packages/core/middleware/src/createServer.ts @@ -25,7 +25,7 @@ interface RequestParams { function createServer (config: MiddlewareConfig): Express { consola.info('Middleware starting....'); - consola.info('Loading integrations...'); + consola.info('Loading integartions...'); const integrations = registerIntegrations(app, config.integrations); diff --git a/packages/core/nuxt-module/package.json b/packages/core/nuxt-module/package.json index 856b637cac..b24fb102b3 100644 --- a/packages/core/nuxt-module/package.json +++ b/packages/core/nuxt-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt", - "version": "2.4.1", + "version": "2.4.2", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/nuxt-theme-module/index.js b/packages/core/nuxt-theme-module/index.js index be520314d4..365a61dd92 100644 --- a/packages/core/nuxt-theme-module/index.js +++ b/packages/core/nuxt-theme-module/index.js @@ -8,7 +8,7 @@ const chalk = require('chalk'); const log = { info: (message) => consola.info(chalk.bold('VSF'), message), success: (message) => consola.success(chalk.bold('VSF'), message), - warning: (message) => consola.warn(chalk.bold('VSF'), message), + warning: (message) => consola.warning(chalk.bold('VSF'), message), error: (message) => consola.error(chalk.bold('VSF'), message) }; diff --git a/packages/core/nuxt-theme-module/package.json b/packages/core/nuxt-theme-module/package.json index e5aa419ddb..1d2ff73b25 100644 --- a/packages/core/nuxt-theme-module/package.json +++ b/packages/core/nuxt-theme-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt-theme", - "version": "2.4.1", + "version": "2.4.2", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue index 4c3edf744d..03de891978 100644 --- a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue +++ b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue @@ -47,7 +47,7 @@ :disabled="loading" :qty="cartGetters.getItemQty(product)" class="sf-collected-product__quantity-selector" - @input="updateQuantity({ product, quantity: $event })" + @input="updateItemQty({ product, quantity: $event })" /> @@ -121,9 +121,9 @@ import { SfQuantitySelector } from '@storefront-ui/vue'; import { computed } from '@vue/composition-api'; +import { onSSR } from '@vue-storefront/core'; import { useCart, useUser, cartGetters } from '<%= options.generate.replace.composables %>'; import { useUiState } from '~/composables'; -import debounce from 'lodash.debounce'; export default { name: 'Cart', @@ -145,18 +145,17 @@ export default { const products = computed(() => cartGetters.getItems(cart.value)); const totals = computed(() => cartGetters.getTotals(cart.value)); const totalItems = computed(() => cartGetters.getTotalItems(cart.value)); - loadCart(); - const updateQuantity = debounce(async ({ product, quantity }) => { - await updateItemQty({ product, quantity }); - }, 500); + onSSR(async () => { + await loadCart(); + }); return { - updateQuantity, loading, isAuthenticated, products, removeItem, + updateItemQty, isCartSidebarOpen, toggleCartSidebar, totals, diff --git a/packages/core/nuxt-theme-module/theme/composables/useUiState.ts b/packages/core/nuxt-theme-module/theme/composables/useUiState.ts index 37bbb5e151..617e6a1da2 100644 --- a/packages/core/nuxt-theme-module/theme/composables/useUiState.ts +++ b/packages/core/nuxt-theme-module/theme/composables/useUiState.ts @@ -8,7 +8,6 @@ const state = reactive({ isCartSidebarOpen: false, isWishlistSidebarOpen: false, isLoginModalOpen: false, - isNewsletterModalOpen: false, isCategoryGridView: true, isFilterSidebarOpen: false, isMobileMenuOpen: false @@ -38,11 +37,6 @@ const useUiState = () => { state.isLoginModalOpen = !state.isLoginModalOpen; }; - const isNewsletterModalOpen = computed(() => state.isNewsletterModalOpen); - const toggleNewsletterModal = () => { - state.isNewsletterModalOpen = !state.isNewsletterModalOpen; - }; - const isCategoryGridView = computed(() => state.isCategoryGridView); const changeToCategoryGridView = () => { state.isCategoryGridView = true; @@ -60,14 +54,12 @@ const useUiState = () => { isCartSidebarOpen, isWishlistSidebarOpen, isLoginModalOpen, - isNewsletterModalOpen, isCategoryGridView, isFilterSidebarOpen, isMobileMenuOpen, toggleCartSidebar, toggleWishlistSidebar, toggleLoginModal, - toggleNewsletterModal, changeToCategoryGridView, changeToCategoryListView, toggleFilterSidebar, diff --git a/packages/core/nuxt-theme-module/theme/lang/de.js b/packages/core/nuxt-theme-module/theme/lang/de.js index 8d83e80a01..b1c7ea702d 100644 --- a/packages/core/nuxt-theme-module/theme/lang/de.js +++ b/packages/core/nuxt-theme-module/theme/lang/de.js @@ -142,14 +142,5 @@ export default { 'Password': 'Passwort', 'Repeat Password': 'Wiederhole das Passwort', 'Forgot Password Modal Email': 'E-Mail, mit der Sie sich anmelden:', - forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.', - subscribeToNewsletterModalContent: - 'Wenn Sie sich für den Newsletter angemeldet haben, erhalten Sie spezielle Angebote und Nachrichten von VSF per E-Mail. Wir werden Ihre E-Mail zu keinem Zeitpunkt an Dritte verkaufen oder weitergeben. Bitte beachten Sie unsere {0}.', - 'Subscribe': 'Abonnieren', - 'Subscribe to newsletter': 'Anmeldung zum Newsletter', - 'Email address': 'E-Mail Adresse', - 'I confirm subscription': 'Ich bestätige das Abonnement', - 'You can unsubscribe at any time': 'Sie können sich jederzeit abmelden', - 'show more': 'mehr anzeigen', - 'hide': 'ausblenden' + forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.' }; diff --git a/packages/core/nuxt-theme-module/theme/lang/en.js b/packages/core/nuxt-theme-module/theme/lang/en.js index 482677f5a8..489d52df67 100644 --- a/packages/core/nuxt-theme-module/theme/lang/en.js +++ b/packages/core/nuxt-theme-module/theme/lang/en.js @@ -142,14 +142,5 @@ export default { 'Password': 'Password', 'Repeat Password': 'Repeat Password', 'Forgot Password Modal Email': 'Email you are using to sign in:', - forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.', - subscribeToNewsletterModalContent: - 'After signing up for the newsletter, you will receive special offers and messages from VSF via email. We will not sell or distribute your email to any third party at any time. Please see our {0}.', - 'Subscribe': 'Subscribe', - 'Subscribe to newsletter': 'Subscribe to newsletter', - 'Email address': 'Email address', - 'I confirm subscription': 'I confirm subscription', - 'You can unsubscribe at any time': 'You can unsubscribe at any time', - 'show more': 'show more', - 'hide': 'hide' + forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.' }; diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index 9511628c32..c5ea357750 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -236,7 +236,7 @@ {{ $t('Show on page') }} @@ -372,7 +372,7 @@ export default { const uiState = useUiState(); const { addItem: addItemToCart, isInCart } = useCart(); const { addItem: addItemToWishlist, isInWishlist, removeItem: removeItemFromWishlist } = useWishlist(); - const { result, search, loading, error } = useFacet(); + const { result, search, loading } = useFacet(); const products = computed(() => facetGetters.getProducts(result.value)); const categoryTree = computed(() => facetGetters.getCategoryTree(result.value)); @@ -405,7 +405,6 @@ export default { onSSR(async () => { await search(th.getFacetsFromURL()); - if (error?.value?.search) context.root.$nuxt.error({ statusCode: 404 }); setSelectedFilters(); }); diff --git a/packages/core/nuxt-theme-module/theme/pages/Home.vue b/packages/core/nuxt-theme-module/theme/pages/Home.vue index c5acca7149..27a515a034 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Home.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Home.vue @@ -78,21 +78,7 @@ description="Be aware of upcoming sales and events. Receive gifts and special offers!" image="/homepage/newsletter.webp" class="call-to-action" - > - - - - - - + /> @@ -116,11 +102,8 @@ import { SfButton } from '@storefront-ui/vue'; import InstagramFeed from '~/components/InstagramFeed.vue'; -import NewsletterModal from '~/components/NewsletterModal.vue'; import LazyHydrate from 'vue-lazy-hydration'; -import { useUiState } from '../composables'; import cacheControl from './../helpers/cacheControl'; -const { toggleNewsletterModal } = useUiState(); export default { name: 'Home', @@ -141,7 +124,6 @@ export default { SfHeading, SfArrow, SfButton, - NewsletterModal, LazyHydrate }, data() { @@ -274,13 +256,6 @@ export default { methods: { toggleWishlist(index) { this.products[index].isInWishlist = !this.products[index].isInWishlist; - }, - handleNewsletterClick() { - toggleNewsletterModal(); - }, - onSubscribe(emailAddress) { - console.log(`Email ${emailAddress} was added to newsletter.`); - toggleNewsletterModal(); } } }; diff --git a/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue b/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue index e6607d63e9..26ad806ed1 100644 --- a/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue +++ b/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue @@ -56,16 +56,27 @@ v-for="tableHeader in tableHeaders" :key="tableHeader" >{{ tableHeader }} - + + {{ $t('Download') }} + + {{ $t('Download all') }} + + - {{ orderGetters.getId(order) }} + {{ orderGetters.getId(order) }} {{ orderGetters.getDate(order) }} {{ $n(orderGetters.getPrice(order), 'currency') }} {{ orderGetters.getStatus(order) }} + + {{ $t('Download') }} + {{ $t('View details') }} @@ -91,8 +102,7 @@ import { SfTabs, SfTable, SfButton, - SfProperty, - SfLink + SfProperty } from '@storefront-ui/vue'; import { computed, ref } from '@vue/composition-api'; import { useUserOrder, orderGetters } from '<%= options.generate.replace.composables %>'; @@ -105,8 +115,7 @@ export default { SfTabs, SfTable, SfButton, - SfProperty, - SfLink + SfProperty }, setup() { const { orders, search } = useUserOrder(); @@ -186,7 +195,7 @@ export default { @include for-desktop { &__element { &--right { - --table-column-flex: 1; + --table-column-flex: 0; text-align: right; } } diff --git a/packages/jest.base.config.js b/packages/jest.base.config.js index a79e60212e..cfcd206ebb 100644 --- a/packages/jest.base.config.js +++ b/packages/jest.base.config.js @@ -6,11 +6,8 @@ module.exports = { '^.+\\.[jt]s$': 'ts-jest' }, coverageDirectory: './coverage/', - coverageReporters: ['html', 'lcov', 'text'], collectCoverageFrom: [ 'src/**/*.ts' ], - moduleFileExtensions: ['ts', 'js', 'json'], - watchPathIgnorePatterns: ['**/node_modules'], testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'] }; diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000000..1f36ece1d1 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,13 @@ +{ + "name": "scripts", + "version": "1.0.0", + "description": "", + "main": "index.js", + "private": true, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "release": "ts-node ./release/index.ts" + }, + "author": "", + "license": "MIT" +} diff --git a/scripts/release/constants.ts b/scripts/release/constants.ts new file mode 100644 index 0000000000..9c35bbcef8 --- /dev/null +++ b/scripts/release/constants.ts @@ -0,0 +1,33 @@ +import path from 'path'; + +enum PACKAGE_TYPES { + NotPackage = 0, + Wrapper, + IntegrationWrapper, + Package +} + +enum PACKAGE_SUBTYPE { + INDEPENDENT = 0, + API, + COMPOSABLE, + THEME, + CLI +} + +enum RELEASE_GRADATIONS { + path = 1, + minor, + major +} + +interface OperationsData { + pathsToRun: Array; + freshVersions: Record; + oldFiles: Record; +} + +const BASE = path.resolve('../packages/'); +const REGISTRY = 'https://registry.npmjs.org'; + +export { BASE, REGISTRY, PACKAGE_TYPES, PACKAGE_SUBTYPE, RELEASE_GRADATIONS, OperationsData }; diff --git a/scripts/release/index.ts b/scripts/release/index.ts new file mode 100644 index 0000000000..896809969b --- /dev/null +++ b/scripts/release/index.ts @@ -0,0 +1,147 @@ +import fs from 'fs'; +import { getPackageType, getCustomPackagesInIntegrationWrapper } from './packageTypes'; +import updatePackageVersion from './updatePackageVersion'; +import { execSync } from 'child_process'; +import { RELEASE_GRADATIONS, PACKAGE_SUBTYPE, PACKAGE_TYPES, REGISTRY } from './constants'; + +const publishPackage = (path: string) => execSync(`cd ${path} && npm publish --registry ${REGISTRY} --tag next`); +const isProperGradation = (gradation: string) => Object.keys(RELEASE_GRADATIONS).filter(key => isNaN(Number(key))).includes(gradation); +const sliceAbsolutePathPart = (path: string) => path.replace(/(.*?)packages/, 'packages'); + +// CLI depends on THEME +// THEME depends on COMPOSABLE +// COMPOSABLE depends on API + +const getPackageSubtype = (pckg: string): PACKAGE_SUBTYPE => { + switch (pckg.split('/').pop()) { + case 'api-client': + return PACKAGE_SUBTYPE.API; + case 'composables': + return PACKAGE_SUBTYPE.COMPOSABLE; + case 'theme': + return PACKAGE_SUBTYPE.THEME; + case 'cli': + return PACKAGE_SUBTYPE.CLI; + default: + return PACKAGE_SUBTYPE.INDEPENDENT; + } +}; + +const getSubtypeName = (subtype: PACKAGE_SUBTYPE): string => { + switch (subtype) { + case PACKAGE_SUBTYPE.API: + return 'api-client'; + case PACKAGE_SUBTYPE.COMPOSABLE: + return 'composables'; + case PACKAGE_SUBTYPE.THEME: + return 'theme'; + case PACKAGE_SUBTYPE.CLI: + return 'cli'; + default: + + } +}; + +const pckgSubtypeToPath = (pckg: string, subtype: PACKAGE_SUBTYPE): string => { + if (subtype === PACKAGE_SUBTYPE.CLI) { + return 'core/cli'; + } + const base = pckg.split('/'); + base[base.length - 1] = getSubtypeName(subtype); + return base.join('/'); +}; + +const pckgCustomSubpackageToPath = (pckg: string, subpackage: string): string => { + const base = pckg.split('/'); + base[base.length - 1] = subpackage; + return base.join('/'); +}; + +const buildPackageDependencyList = (pckg: string): PACKAGE_SUBTYPE[] => { + const packageSubtype = getPackageSubtype(pckg); + if (packageSubtype === PACKAGE_SUBTYPE.INDEPENDENT) { + return []; + } + + const enumKeys = Object.keys(PACKAGE_SUBTYPE) + .filter(key => isNaN(Number(key))) + .keys(); + + return Array.from(enumKeys).slice(packageSubtype + 1); +}; + +const program = () => { + const args = process.argv.slice(2); + let pckg = args[0]; + const gradation = args[2]; + + if (!pckg || !gradation) { + console.log('Provide package and gradation. Pattern is: {package} - {gradation}'); + return; + } + if (!isProperGradation(gradation)) { + console.log(`${gradation} is bad gradation. Use 'path', 'minor' or 'major'`); + return; + } + + const packageType = getPackageType(pckg); + if (!packageType) { + console.log('Bad package\'s type'); + return; + } + + let operationList = { + pathsToRun: [], + freshVersions: {}, + oldFiles: {} + }; + let customPackagesInIntegrationWrapper = []; + + if (packageType === PACKAGE_TYPES.Package || packageType === PACKAGE_TYPES.IntegrationWrapper) { + if (packageType === PACKAGE_TYPES.IntegrationWrapper) { + customPackagesInIntegrationWrapper = getCustomPackagesInIntegrationWrapper(pckg); + pckg = `${pckg}/api-client`; + } + const dependencyList: PACKAGE_SUBTYPE[] = buildPackageDependencyList(pckg); + try { + operationList = updatePackageVersion(pckg, RELEASE_GRADATIONS[gradation]); + for (const subtype of dependencyList) { + operationList = updatePackageVersion(pckgSubtypeToPath(pckg, subtype), RELEASE_GRADATIONS[gradation], operationList); + } + for (const customPackage of customPackagesInIntegrationWrapper) { + operationList = updatePackageVersion(pckgCustomSubpackageToPath(pckg, customPackage), RELEASE_GRADATIONS[gradation], operationList); + } + } catch (err) { + console.log(err); + } + + const statusLog = []; + + try { + while (operationList.pathsToRun.length) { + publishPackage(operationList.pathsToRun[0]); + statusLog.push('Succesfully published ' + sliceAbsolutePathPart(operationList.pathsToRun[0]) + ` new ${gradation} version`); + operationList.pathsToRun.shift(); + } + } catch (err) { + for (const pathToRun of operationList.pathsToRun) { + statusLog.push('Failed publishing ' + sliceAbsolutePathPart(pathToRun)); + const pathWithFile = `${pathToRun}/package.json`; + fs.writeFileSync(pathWithFile, JSON.stringify(operationList.oldFiles[pathWithFile], null, 2)); + statusLog.push('Rolled back to old version'); + } + } + + console.log('\n'); + for (const log of statusLog) { + console.log(log); + } + + } else if (packageType === PACKAGE_TYPES.Wrapper && pckg === 'core') { + console.log('Pick specific core\'s package'); + } else { + console.log('Bad package\'s type'); + } +}; + +program(); diff --git a/scripts/release/packageTypes.ts b/scripts/release/packageTypes.ts new file mode 100644 index 0000000000..1e4f66ae98 --- /dev/null +++ b/scripts/release/packageTypes.ts @@ -0,0 +1,53 @@ +import fs from 'fs'; +import { BASE, PACKAGE_TYPES } from './constants'; + +const integrationWrapperPackages = [ + 'api-client', + 'composables', + 'theme' +]; + +const getDirectories = (source: string) => + fs.readdirSync(`${BASE}/${source}`, { withFileTypes: true }) + .filter(dirent => dirent.isDirectory()) + .map(dirent => dirent.name); + +const isPackage = (pckg: string) => fs.existsSync(`${BASE}/${pckg}/package.json`); +const hasIntegrationWrapperPackages = (pckg: string): boolean => integrationWrapperPackages.every(directory => isPackage(`${pckg}/${directory}`)); + +const isIntegrationWrapper = (pckg: string) => { + try { + const directories = getDirectories(pckg); + return integrationWrapperPackages.length <= directories.length && hasIntegrationWrapperPackages(pckg); + } catch (err) { + return false; + } +}; + +const isWrapper = (pckg: string) => { + try { + return getDirectories(pckg).some(directory => isPackage(`${pckg}/${directory}`)); + } catch (err) { + return false; + } +}; + +const getPackageType = (pckg: string): PACKAGE_TYPES => { + if (isPackage(pckg)) { + return PACKAGE_TYPES.Package; + } + if (isIntegrationWrapper(pckg)) { + return PACKAGE_TYPES.IntegrationWrapper; + } + if (isWrapper(pckg)) { + return PACKAGE_TYPES.Wrapper; + } + return PACKAGE_TYPES.NotPackage; +}; + +const getCustomPackagesInIntegrationWrapper = (integration: string): string[] => { + const directories = getDirectories(integration); + return directories.filter(directory => !integrationWrapperPackages.includes(directory)); +}; + +export { getPackageType, getCustomPackagesInIntegrationWrapper }; diff --git a/scripts/release/updatePackageVersion.ts b/scripts/release/updatePackageVersion.ts new file mode 100644 index 0000000000..e84e126a9c --- /dev/null +++ b/scripts/release/updatePackageVersion.ts @@ -0,0 +1,64 @@ +import fs from 'fs'; +import { OperationsData, RELEASE_GRADATIONS, BASE } from './constants'; + +const updateVersion = (version: string, gradation: RELEASE_GRADATIONS): string => { + return version.replace(/([\^~]?)(\d+)\.(\d+)\.(\d+)$/, (_, special, major, minor, path) => { + switch (gradation) { + case RELEASE_GRADATIONS.path: + path++; + break; + case RELEASE_GRADATIONS.minor: + minor++; + break; + case RELEASE_GRADATIONS.major: + major++; + break; + } + return `${special}${major}.${minor}.${path}`; + }); +}; + +const updatePackageVersion = (pckg: string, gradation: RELEASE_GRADATIONS, operationsData: OperationsData = { + pathsToRun: [], + freshVersions: {}, + oldFiles: {} +}): OperationsData => { + const filePath = `${BASE}/${pckg}/package.json`; + // eslint-disable-next-line global-require + const packageJson = require(filePath); + if (!packageJson) { + return operationsData; + } + + const modifiedFile = { + ...packageJson, + version: updateVersion(packageJson.version, gradation) + }; + + for (const [dependency, version] of Object.entries(operationsData.freshVersions)) { + if (modifiedFile.dependencies && modifiedFile.dependencies[dependency]) { + modifiedFile.dependencies[dependency] = modifiedFile.dependencies[dependency].replace(/([\^~]?)(.*)/, (_, specialChar) => { + return `${specialChar}${version}`; + }); + } + } + + fs.writeFileSync(filePath, JSON.stringify(modifiedFile, null, 2)); + + return { + freshVersions: { + ...operationsData.freshVersions, + [packageJson.name]: modifiedFile.version + }, + pathsToRun: [ + ...operationsData.pathsToRun, + filePath.replace('/package.json', '') + ], + oldFiles: { + ...operationsData.oldFiles, + [filePath]: packageJson + } + }; +}; + +export default updatePackageVersion; diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json new file mode 100644 index 0000000000..1c60feb2d7 --- /dev/null +++ b/scripts/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../packages/tsconfig.base.json", + "include": ["./release"], + "exclude": ["node_modules", "lib"], + "compilerOptions": { + "target": "ES2017", + "module": "commonjs", + "moduleResolution": "node", + "esModuleInterop": true, + "importHelpers": true, + "noEmitHelpers": true, + "sourceMap": true, + "declaration": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": "./", + "lib": ["es6", "es7", "ES2017", "ES2018", "ES2019"], + "strict": false, + "preserveSymlinks": true, + }, +} diff --git a/tsconfig.json b/tsconfig.json index 5f1dcbc1dc..1791b7c36e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,5 @@ { "extends": "./packages/tsconfig.base.json", - "include": [ - "packages" - ], - "exclude": [ - "dev", - "node_modules" - ] + "include": ["src"], + "exclude": ["node_modules", "lib"] } diff --git a/yarn.lock b/yarn.lock index 5ec5077b00..8120cc68de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,25 +2,7 @@ # yarn lockfile v1 -"@apollo/client@^3.2.5", "@apollo/client@^3.2.9", "@apollo/client@^3.3.21": - version "3.4.9" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.4.9.tgz#78d0decf8371b768f97c721d1b71c96260bac4db" - integrity sha512-1AlYjRJ/ktDApEUEP2DqHI38tqSyhSlsF/Q3fFb/aCbLHQfcSZ1dCv7ZlC9UXRyDwQYc0w23gYJ7wZde6W8P4A== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.3" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.9.0" - tslib "^2.3.0" - zen-observable-ts "^1.1.0" - -"@apollo/client@~3.2.5 || ~3.3.0": +"@apollo/client@^3.2.5", "@apollo/client@^3.3.21", "@apollo/client@~3.2.5 || ~3.3.0": version "3.3.21" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.21.tgz#2862baa4e1ced8c5e89ebe6fc52877fc64a726aa" integrity sha512-RAmZReFuKCKx0Rs5C0nVJwKomAHUHn+gGP/YvbEsXQWu0sXoncEUZa71UqlfCPVXa/0MkYOIbCXSQdOcuRrHgw== @@ -39,6 +21,24 @@ tslib "^1.10.0" zen-observable "^0.8.14" +"@apollo/client@^3.2.9": + version "3.4.8" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.4.8.tgz#66d06dc1784d07d46731b3bda546046f8c280b74" + integrity sha512-/cNqTSwc2Dw8q6FDDjdd30+yvhP7rI0Fvl3Hbro0lTtFuhzkevfNyQaI2jAiOrjU6Jc0RbanxULaNrX7UmvjSQ== + dependencies: + "@graphql-typed-document-node/core" "^3.0.0" + "@wry/context" "^0.6.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.3" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.9.0" + tslib "^2.3.0" + zen-observable-ts "^1.1.0" + "@ardatan/aggregate-error@0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz#fe6924771ea40fc98dc7a7045c2e872dc8527609" @@ -53,17 +53,29 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.0", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" + integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== + +"@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" + integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== "@babel/core@7.4.5": version "7.4.5" @@ -85,20 +97,41 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.11.0", "@babel/core@^7.14.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.4": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== +"@babel/core@^7.0.0": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.11.0", "@babel/core@^7.13.14", "@babel/core@^7.8.4": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0" + integrity sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-module-transforms" "^7.13.14" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.15" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.14" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -106,15 +139,31 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.12.13", "@babel/generator@^7.15.0", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== +"@babel/generator@^7.12.13", "@babel/generator@^7.14.5", "@babel/generator@^7.5.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== + dependencies: + "@babel/types" "^7.14.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.13.9", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.13.0" jsesc "^2.5.1" source-map "^0.5.0" +"@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -122,48 +171,69 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" - integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0", "@babel/helper-compilation-targets@^7.9.6": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8", "@babel/helper-compilation-targets@^7.9.6": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" + integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== + dependencies: + "@babel/compat-data" "^7.13.12" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== dependencies: - "@babel/compat-data" "^7.15.0" + "@babel/compat-data" "^7.14.5" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.3.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" - integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11", "@babel/helper-create-class-features-plugin@^7.3.0": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" + integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" + integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-member-expression-to-functions" "^7.14.5" "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-replace-supers" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" -"@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== +"@babel/helper-define-polyfill-provider@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" + integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -174,14 +244,23 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" - integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.5": +"@babel/helper-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== @@ -190,6 +269,13 @@ "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -197,6 +283,14 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + dependencies: + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + "@babel/helper-hoist-variables@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" @@ -204,33 +298,68 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== +"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.8.3": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.13.12" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" + integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.13" + "@babel/types" "^7.13.14" + +"@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== dependencies: "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" + "@babel/helper-validator-identifier" "^7.14.5" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -239,36 +368,65 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-plugin-utils@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-remap-async-to-generator@^7.14.5": +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" + integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.12" + +"@babel/helper-replace-supers@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" - integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-wrap-function" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== +"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/types" "^7.13.12" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.12.1" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": version "7.14.5" @@ -277,43 +435,78 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-split-export-declaration@^7.12.13", "@babel/helper-split-export-declaration@^7.14.5": +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helper-wrap-function@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" - integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.13.10", "@babel/helpers@^7.4.4": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== dependencies: - "@babel/helper-function-name" "^7.14.5" "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helpers@^7.14.8", "@babel/helpers@^7.4.4": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": +"@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -327,27 +520,32 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4" integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw== -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.5", "@babel/parser@^7.14.9", "@babel/parser@^7.15.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.5", "@babel/parser@^7.7.2", "@babel/parser@^7.9.6": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.0.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" + integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.4.3", "@babel/parser@^7.4.5", "@babel/parser@^7.9.6": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" + integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" - integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-proposal-async-generator-functions@^7.14.9", "@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" - integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== +"@babel/plugin-proposal-async-generator-functions@^7.13.15", "@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" + integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@7.3.0": @@ -358,7 +556,7 @@ "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== @@ -366,70 +564,69 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" - integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== +"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-decorators@^7.13.15", "@babel/plugin-proposal-decorators@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" - integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== +"@babel/plugin-proposal-decorators@^7.13.5", "@babel/plugin-proposal-decorators@^7.8.3": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz#e91ccfef2dc24dd5bd5dcc9fc9e2557c684ecfb8" + integrity sha512-ibAMAqUm97yzi+LPgdr5Nqb9CMkeieGHvwPg1ywSGjZrZHQEGqE01HmOio8kxRpA/+VtOHouIVy2FMpBbtltjA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-decorators" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.13.11" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-decorators" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== +"@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.14.5", "@babel/plugin-proposal-json-strings@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== +"@babel/plugin-proposal-json-strings@^7.13.8", "@babel/plugin-proposal-json-strings@^7.2.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== +"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== +"@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@7.3.2": @@ -440,7 +637,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.4.4": +"@babel/plugin-proposal-object-rest-spread@^7.0.0": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== @@ -451,48 +648,49 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-optional-catch-binding@^7.14.5", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== +"@babel/plugin-proposal-object-rest-spread@^7.13.8", "@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== +"@babel/plugin-proposal-optional-catch-binding@^7.13.8", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.13.0", "@babel/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" + integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" - integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -501,33 +699,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" - integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== +"@babel/plugin-syntax-decorators@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" + integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -550,13 +734,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -564,14 +741,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.14.5", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" - integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -585,7 +762,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -613,61 +790,68 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-transform-arrow-functions@^7.0.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" - integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== +"@babel/plugin-transform-arrow-functions@^7.13.0", "@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.14.5", "@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== +"@babel/plugin-transform-async-to-generator@^7.13.0", "@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-async-to-generator@^7.14.5", "@babel/plugin-transform-async-to-generator@^7.4.4": +"@babel/plugin-transform-block-scoped-functions@^7.0.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: - "@babel/helper-module-imports" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.14.5", "@babel/plugin-transform-block-scoped-functions@^7.2.0": +"@babel/plugin-transform-block-scoped-functions@^7.12.13", "@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-block-scoping@^7.0.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.14.5", "@babel/plugin-transform-block-scoping@^7.4.4": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== +"@babel/plugin-transform-block-scoping@^7.12.13", "@babel/plugin-transform-block-scoping@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.14.9", "@babel/plugin-transform-classes@^7.4.4": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" - integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== +"@babel/plugin-transform-classes@^7.0.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" + integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" @@ -677,42 +861,69 @@ "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.14.5", "@babel/plugin-transform-computed-properties@^7.2.0": +"@babel/plugin-transform-classes@^7.13.0", "@babel/plugin-transform-classes@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.4.4": +"@babel/plugin-transform-computed-properties@^7.13.0", "@babel/plugin-transform-computed-properties@^7.2.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-destructuring@^7.0.0": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== +"@babel/plugin-transform-destructuring@^7.13.0", "@babel/plugin-transform-destructuring@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-duplicate-keys@^7.14.5", "@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.14.5", "@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== +"@babel/plugin-transform-duplicate-keys@^7.12.13", "@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-exponentiation-operator@^7.12.13", "@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-flow-strip-types@^7.0.0": version "7.14.5" @@ -722,14 +933,21 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-flow" "^7.14.5" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.14.5", "@babel/plugin-transform-for-of@^7.4.4": +"@babel/plugin-transform-for-of@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.14.5", "@babel/plugin-transform-function-name@^7.4.4": +"@babel/plugin-transform-for-of@^7.13.0", "@babel/plugin-transform-for-of@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-function-name@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== @@ -737,73 +955,105 @@ "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.14.5", "@babel/plugin-transform-literals@^7.2.0": +"@babel/plugin-transform-function-name@^7.12.13", "@babel/plugin-transform-function-name@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-literals@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.14.5", "@babel/plugin-transform-member-expression-literals@^7.2.0": +"@babel/plugin-transform-literals@^7.12.13", "@babel/plugin-transform-literals@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-member-expression-literals@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.14.5", "@babel/plugin-transform-modules-amd@^7.2.0": +"@babel/plugin-transform-member-expression-literals@^7.12.13", "@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.2.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== + dependencies: + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.0.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.15.0", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" - integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== +"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.14.5", "@babel/plugin-transform-modules-systemjs@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" - integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== +"@babel/plugin-transform-modules-systemjs@^7.13.8", "@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.14.5", "@babel/plugin-transform-modules-umd@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== +"@babel/plugin-transform-modules-umd@^7.13.0", "@babel/plugin-transform-modules-umd@^7.2.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" - integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-new-target@^7.14.5", "@babel/plugin-transform-new-target@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== +"@babel/plugin-transform-new-target@^7.12.13", "@babel/plugin-transform-new-target@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.14.5", "@babel/plugin-transform-object-super@^7.2.0": +"@babel/plugin-transform-object-super@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== @@ -811,65 +1061,87 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.4.4": +"@babel/plugin-transform-object-super@^7.12.13", "@babel/plugin-transform-object-super@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.14.5", "@babel/plugin-transform-property-literals@^7.2.0": +"@babel/plugin-transform-parameters@^7.13.0", "@babel/plugin-transform-parameters@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-property-literals@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-property-literals@^7.12.13", "@babel/plugin-transform-property-literals@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-react-display-name@^7.0.0": - version "7.15.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" - integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz#33041e665453391eb6ee54a2ecf3ba1d46bd30f4" - integrity sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" + integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz#79f728e60e6dbd31a2b860b0bf6c9765918acf1d" - integrity sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" + integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" - integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" + integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-jsx" "^7.14.5" - "@babel/types" "^7.14.9" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.13.12" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.4.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== +"@babel/plugin-transform-regenerator@^7.13.15", "@babel/plugin-transform-regenerator@^7.4.5": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.14.5", "@babel/plugin-transform-reserved-words@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== +"@babel/plugin-transform-reserved-words@^7.12.13", "@babel/plugin-transform-reserved-words@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-runtime@7.2.0": version "7.2.0" @@ -881,26 +1153,33 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.13.15": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" - integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== +"@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.13.10": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz#2eddf585dd066b84102517e10a577f24f76a9cd7" + integrity sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.14.5", "@babel/plugin-transform-shorthand-properties@^7.2.0": +"@babel/plugin-transform-shorthand-properties@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.14.6", "@babel/plugin-transform-spread@^7.2.0": +"@babel/plugin-transform-shorthand-properties@^7.12.13", "@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.0.0": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== @@ -908,41 +1187,56 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" -"@babel/plugin-transform-sticky-regex@^7.14.5", "@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== +"@babel/plugin-transform-spread@^7.13.0", "@babel/plugin-transform-spread@^7.2.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.13", "@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.14.5", "@babel/plugin-transform-template-literals@^7.4.4": +"@babel/plugin-transform-template-literals@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-typeof-symbol@^7.14.5", "@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== +"@babel/plugin-transform-template-literals@^7.13.0", "@babel/plugin-transform-template-literals@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== +"@babel/plugin-transform-typeof-symbol@^7.12.13", "@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-regex@^7.14.5", "@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.13", "@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@7.4.5": version "7.4.5" @@ -998,34 +1292,31 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.14.1": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" - integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.13.12": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" + integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions" "^7.14.9" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-json-strings" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/compat-data" "^7.13.15" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-async-generator-functions" "^7.13.15" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.13.8" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.13.8" + "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -1035,46 +1326,45 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.14.5" - "@babel/plugin-transform-async-to-generator" "^7.14.5" - "@babel/plugin-transform-block-scoped-functions" "^7.14.5" - "@babel/plugin-transform-block-scoping" "^7.14.5" - "@babel/plugin-transform-classes" "^7.14.9" - "@babel/plugin-transform-computed-properties" "^7.14.5" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-dotall-regex" "^7.14.5" - "@babel/plugin-transform-duplicate-keys" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator" "^7.14.5" - "@babel/plugin-transform-for-of" "^7.14.5" - "@babel/plugin-transform-function-name" "^7.14.5" - "@babel/plugin-transform-literals" "^7.14.5" - "@babel/plugin-transform-member-expression-literals" "^7.14.5" - "@babel/plugin-transform-modules-amd" "^7.14.5" - "@babel/plugin-transform-modules-commonjs" "^7.15.0" - "@babel/plugin-transform-modules-systemjs" "^7.14.5" - "@babel/plugin-transform-modules-umd" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" - "@babel/plugin-transform-new-target" "^7.14.5" - "@babel/plugin-transform-object-super" "^7.14.5" - "@babel/plugin-transform-parameters" "^7.14.5" - "@babel/plugin-transform-property-literals" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-reserved-words" "^7.14.5" - "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" - "@babel/plugin-transform-sticky-regex" "^7.14.5" - "@babel/plugin-transform-template-literals" "^7.14.5" - "@babel/plugin-transform-typeof-symbol" "^7.14.5" - "@babel/plugin-transform-unicode-escapes" "^7.14.5" - "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.13.0" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.15.0" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.16.0" + "@babel/types" "^7.13.14" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" + core-js-compat "^3.9.0" semver "^6.3.0" "@babel/preset-modules@^0.1.4": @@ -1106,14 +1396,30 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" - integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" + integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.11.0", "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.14.5", "@babel/template@^7.3.3", "@babel/template@^7.4.0", "@babel/template@^7.4.4": +"@babel/template@^7.0.0", "@babel/template@^7.12.13", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/template@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== @@ -1137,18 +1443,32 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.9", "@babel/traverse@^7.15.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" + integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.15" + "@babel/types" "^7.13.14" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" + integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" + "@babel/generator" "^7.14.5" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/parser" "^7.14.7" + "@babel/types" "^7.14.5" debug "^4.1.0" globals "^11.1.0" @@ -1161,18 +1481,22 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" + integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== dependencies: - "@babel/helper-validator-identifier" "^7.14.9" + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" to-fast-properties "^2.0.0" -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@babel/types@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + to-fast-properties "^2.0.0" "@cld-apis/utils@^0.1.0": version "0.1.3" @@ -1203,154 +1527,6 @@ resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-http/-/sdk-middleware-http-6.0.11.tgz#0ca16cefe881b68c1d2b77ddbd3a48733a5ee062" integrity sha512-9Keb5rv6fvdA9qdehBEjk/JMrAzlBbg76TodsvhCZZZteaO0+ybjFgtV0ekdGyI4awxOxgsiPDZrTmQNvnI5Wg== -"@commitlint/cli@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-13.1.0.tgz#3608bb24dbef41aaa0729ffe65c7f9b57409626a" - integrity sha512-xN/uNYWtGTva5OMSd+xA6e6/c2jk8av7MUbdd6w2cw89u6z3fAWoyiH87X0ewdSMNYmW/6B3L/2dIVGHRDID5w== - dependencies: - "@commitlint/format" "^13.1.0" - "@commitlint/lint" "^13.1.0" - "@commitlint/load" "^13.1.0" - "@commitlint/read" "^13.1.0" - "@commitlint/types" "^13.1.0" - lodash "^4.17.19" - resolve-from "5.0.0" - resolve-global "1.0.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-13.1.0.tgz#f02871d50c73db0a31b777231f49203b964d9d59" - integrity sha512-zukJXqdr6jtMiVRy3tTHmwgKcUMGfqKDEskRigc5W3k2aYF4gBAtCEjMAJGZgSQE4DMcHeok0pEV2ANmTpb0cw== - dependencies: - conventional-changelog-conventionalcommits "^4.3.1" - -"@commitlint/config-lerna-scopes@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-lerna-scopes/-/config-lerna-scopes-13.1.0.tgz#c30006ff60a2a625184b9c37bc2ba8ce44ff0d60" - integrity sha512-/OTFM75GYHFRm5m1TKOpHsLvAUuGL6GYnA5xJDT4fe2vPIGqgBYVL9hEolKYTJfDtviBq4fEkEWZQjQF5e4KgA== - dependencies: - globby "^11.0.1" - import-from "4.0.0" - resolve-pkg "2.0.0" - semver "7.3.5" - -"@commitlint/ensure@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-13.1.0.tgz#057a325b54f104cbeed2a26bacb5eec29298e7d5" - integrity sha512-NRGyjOdZQnlYwm9it//BZJ2Vm+4x7G9rEnHpLCvNKYY0c6RA8Qf7hamLAB8dWO12RLuFt06JaOpHZoTt/gHutA== - dependencies: - "@commitlint/types" "^13.1.0" - lodash "^4.17.19" - -"@commitlint/execute-rule@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-13.0.0.tgz#7823303b82b5d86dac46e67cfa005f4433476981" - integrity sha512-lBz2bJhNAgkkU/rFMAw3XBNujbxhxlaFHY3lfKB/MxpAa+pIfmWB3ig9i1VKe0wCvujk02O0WiMleNaRn2KJqw== - -"@commitlint/format@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-13.1.0.tgz#915570d958d83bae5fa645de6b1e6c9dd1362ec0" - integrity sha512-n46rYvzf+6Sm99TJjTLjJBkjm6JVcklt31lDO5Q+pCIV0NnJ4qIUcwa6wIL9a9Vqb1XzlMgtp27E0zyYArkvSg== - dependencies: - "@commitlint/types" "^13.1.0" - chalk "^4.0.0" - -"@commitlint/is-ignored@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-13.1.0.tgz#88a5dfbc8f9ea91e860323af6681aa131322b0c4" - integrity sha512-P6zenLE5Tn3FTNjRzmL9+/KooTXEI0khA2TmUbuei9KiycemeO4q7Xk7w7aXwFPNAbN0O9oI7z3z7cFpzKJWmQ== - dependencies: - "@commitlint/types" "^13.1.0" - semver "7.3.5" - -"@commitlint/lint@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-13.1.0.tgz#ea56ce0970f9b75ffe7bd2c9968f4f1d4461ba3a" - integrity sha512-qH9AYSQDDTaSWSdtOvB3G1RdPpcYSgddAdFYqpFewlKQ1GJj/L+sM7vwqCG7/ip6AiM04Sry1sgmFzaEoFREUA== - dependencies: - "@commitlint/is-ignored" "^13.1.0" - "@commitlint/parse" "^13.1.0" - "@commitlint/rules" "^13.1.0" - "@commitlint/types" "^13.1.0" - -"@commitlint/load@>6.1.1", "@commitlint/load@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-13.1.0.tgz#d6c9b547551f2216586d6c1964d93f92e7b04277" - integrity sha512-zlZbjJCWnWmBOSwTXis8H7I6pYk6JbDwOCuARA6B9Y/qt2PD+NCo0E/7EuaaFoxjHl+o56QR5QttuMBrf+BJzg== - dependencies: - "@commitlint/execute-rule" "^13.0.0" - "@commitlint/resolve-extends" "^13.0.0" - "@commitlint/types" "^13.1.0" - chalk "^4.0.0" - cosmiconfig "^7.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - -"@commitlint/message@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-13.0.0.tgz#4f8d56b59e9cee8b37b8db6b48c26d7faf33762f" - integrity sha512-W/pxhesVEk8747BEWJ+VGQ9ILHmCV27/pEwJ0hGny1wqVquUR8SxvScRCbUjHCB1YtWX4dEnOPXOS9CLH/CX7A== - -"@commitlint/parse@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-13.1.0.tgz#b88764be36527a468531e1b8dd2d95693ff9ba34" - integrity sha512-xFybZcqBiKVjt6vTStvQkySWEUYPI0AcO4QQELyy29o8EzYZqWkhUfrb7K61fWiHsplWL1iL6F3qCLoxSgTcrg== - dependencies: - "@commitlint/types" "^13.1.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.0.0" - -"@commitlint/read@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-13.1.0.tgz#ccb65426b1228b8a598ed36966722d19756eea41" - integrity sha512-NrVe23GMKyL6i1yDJD8IpqCBzhzoS3wtLfDj8QBzc01Ov1cYBmDojzvBklypGb+MLJM1NbzmRM4PR5pNX0U/NQ== - dependencies: - "@commitlint/top-level" "^13.0.0" - "@commitlint/types" "^13.1.0" - fs-extra "^10.0.0" - git-raw-commits "^2.0.0" - -"@commitlint/resolve-extends@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-13.0.0.tgz#a38fcd2474483bf9ec6e1e901b27b8a23abe7d73" - integrity sha512-1SyaE+UOsYTkQlTPUOoj4NwxQhGFtYildVS/d0TJuK8a9uAJLw7bhCLH2PEeH5cC2D1do4Eqhx/3bLDrSLH3hg== - dependencies: - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-13.1.0.tgz#04f5aaf952884364ebf4e899ec440e3985f0e580" - integrity sha512-b6F+vBqEXsHVghrhomG0Y6YJimHZqkzZ0n5QEpk03dpBXH2OnsezpTw5e+GvbyYCc7PutGbYVQkytuv+7xCxYA== - dependencies: - "@commitlint/ensure" "^13.1.0" - "@commitlint/message" "^13.0.0" - "@commitlint/to-lines" "^13.0.0" - "@commitlint/types" "^13.1.0" - execa "^5.0.0" - -"@commitlint/to-lines@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-13.0.0.tgz#5937dd287e3a4f984580ea94bdb994132169a780" - integrity sha512-mzxWwCio1M4/kG9/69TTYqrraQ66LmtJCYTzAZdZ2eJX3I5w52pSjyP/DJzAUVmmJCYf2Kw3s+RtNVShtnZ+Rw== - -"@commitlint/top-level@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-13.0.0.tgz#f8e1d1425240cd72c600e4da5716418c4ea0bda2" - integrity sha512-baBy3MZBF28sR93yFezd4a5TdHsbXaakeladfHK9dOcGdXo9oQe3GS5hP3BmlN680D6AiQSN7QPgEJgrNUWUCg== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^13.1.0": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-13.1.0.tgz#12cfb6e932372b1816af8900e2d10694add28191" - integrity sha512-zcVjuT+OfKt8h91vhBxt05RMcTGEx6DM7Q9QZeuMbXFk6xgbsSEDMMapbJPA1bCZ81fa/1OQBijSYPrKvtt06g== - dependencies: - chalk "^4.0.0" - "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -1390,15 +1566,10 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/mount-utils@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@cypress/mount-utils/-/mount-utils-1.0.2.tgz#afbc4f8c350b7cd86edc5ad0db0cbe1e0181edc8" - integrity sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw== - "@cypress/request@^2.88.5": - version "2.88.6" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.6.tgz#a970dd675befc6bdf8a8921576c01f51cc5798e9" - integrity sha512-z0UxBE/+qaESAHY9p9sM2h8Y4XqtsbDCt0/DPOrqA/RZgKi4PkxdpXyK4wCCnSk1xHqWHZZAE+gV6aDAR6+caQ== + version "2.88.5" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" + integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1413,20 +1584,13 @@ isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" + oauth-sign "~0.9.0" performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" tough-cookie "~2.5.0" tunnel-agent "^0.6.0" - uuid "^8.3.2" - -"@cypress/vue@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cypress/vue/-/vue-2.2.3.tgz#81822914019c47b5a6011652e50c5aad6041c6cc" - integrity sha512-KgrUjiLVyoiU5xb5JAhsdFLDzyh7Njhm4TMuINFsoBZkt4PJptGCsMzdaI7lk1XX20NGvg8MPIFbbQi+L0L8qQ== - dependencies: - "@cypress/mount-utils" "1.0.2" - "@vue/test-utils" "^1.1.3" + uuid "^3.3.2" "@cypress/xvfb@^1.2.4": version "1.2.4" @@ -1436,15 +1600,15 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/eslintrc@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" + integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^13.9.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -1533,11 +1697,6 @@ postcss "7.0.32" purgecss "^2.3.0" -"@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== - "@glidejs/glide@^3.3.0": version "3.4.1" resolved "https://registry.yarnpkg.com/@glidejs/glide/-/glide-3.4.1.tgz#8ad21f3169076e32bbfd75ed0753807662c25e90" @@ -1677,21 +1836,13 @@ valid-url "1.0.9" "@graphql-tools/merge@^6.2.11", "@graphql-tools/merge@^6.2.12", "@graphql-tools/merge@^6.2.14": - version "6.2.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" - integrity sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow== - dependencies: - "@graphql-tools/schema" "^8.0.2" - "@graphql-tools/utils" "8.0.2" - tslib "~2.3.0" - -"@graphql-tools/merge@^8.0.2": - version "8.0.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.0.3.tgz#56c844bc5d7d833456695c8e5eda4f1a0d5be873" - integrity sha512-lVMyW9cREs+nQYbUvMaaqSl+pRCezl2RafNMFi/04akjvOtjVefdi7n3pArpSqPhLHPJDyQRlI8CK8cmOZ9jTA== + version "6.2.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.14.tgz#694e2a2785ba47558e5665687feddd2935e9d94e" + integrity sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow== dependencies: - "@graphql-tools/utils" "^8.1.2" - tslib "~2.3.0" + "@graphql-tools/schema" "^7.0.0" + "@graphql-tools/utils" "^7.7.0" + tslib "~2.2.0" "@graphql-tools/mock@^7.0.0": version "7.0.0" @@ -1718,23 +1869,22 @@ tslib "~2.0.1" "@graphql-tools/relay-operation-optimizer@^6.2.5": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.7.tgz#16c874a091a1a37bc308136d87277443cebe5056" - integrity sha512-7UYnxPvIUDrdEKFAYrNF/YsoVBYMj6l3rwwuNs1jZyzAVZh8uq3TdvaFIIlcYvRychj45BEsg1jvRBvmhTaj3Q== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.0.tgz#f8c7f6c8aa4a9cf50ab151fbc5db4f4282a79532" + integrity sha512-Or3UgRvkY9Fq1AAx7q38oPqFmTepLz7kp6wDHKyR0ceG7AvHv5En22R12mAeISInbhff4Rpwgf6cE8zHRu6bCw== dependencies: - "@graphql-tools/utils" "^8.1.1" - relay-compiler "11.0.2" - tslib "~2.3.0" + "@graphql-tools/utils" "^7.1.0" + relay-compiler "10.1.0" + tslib "~2.0.1" "@graphql-tools/resolvers-composition@^6.2.5": - version "6.3.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.3.5.tgz#846856247c31f73381e4e9221971c41a1e429c08" - integrity sha512-bN2ztDSkcA5MIL9pCxmBCDQDaVYSuUbs3Hi1QWEMRSor3QaMbm6I3Ir1wFNaLgXNe9XrGxugZ5jUD78a768+dQ== + version "6.2.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.2.8.tgz#fa91be40ef424e88290cc101e1ab67b1201ce04f" + integrity sha512-/2xedRZYhvts88x9Rv/VWrk69wpl84M7cuYZ4aAacqxnXNm7zxT+MqeL54lsRhq2Kb2yjEhtfguEiqOn+kV8Xg== dependencies: - "@graphql-tools/utils" "^8.1.1" + "@graphql-tools/utils" "^7.9.1" lodash "4.17.21" - micromatch "^4.0.4" - tslib "~2.3.0" + tslib "~2.2.0" "@graphql-tools/schema@^7.0.0", "@graphql-tools/schema@^7.1.4", "@graphql-tools/schema@^7.1.5": version "7.1.5" @@ -1745,16 +1895,6 @@ tslib "~2.2.0" value-or-promise "1.0.6" -"@graphql-tools/schema@^8.0.2": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.1.2.tgz#913879da1a7889a9488e9b7dc189e7c83eff74be" - integrity sha512-rX2pg42a0w7JLVYT+f/yeEKpnoZL5PpLq68TxC3iZ8slnNBNjfVfvzzOn8Q8Q6Xw3t17KP9QespmJEDfuQe4Rg== - dependencies: - "@graphql-tools/merge" "^8.0.2" - "@graphql-tools/utils" "^8.1.1" - tslib "~2.3.0" - value-or-promise "1.0.10" - "@graphql-tools/stitch@^7.3.0": version "7.5.3" resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-7.5.3.tgz#1b339942ebb93ea4e9da248439b8cf06660688cc" @@ -1793,14 +1933,7 @@ valid-url "1.0.9" ws "7.4.5" -"@graphql-tools/utils@8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.0.2.tgz#795a8383cdfdc89855707d62491c576f439f3c51" - integrity sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ== - dependencies: - tslib "~2.3.0" - -"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.1", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0": +"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.1", "@graphql-tools/utils@^7.1.0", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0", "@graphql-tools/utils@^7.9.1": version "7.10.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-7.10.0.tgz#07a4cb5d1bec1ff1dc1d47a935919ee6abd38699" integrity sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w== @@ -1809,13 +1942,6 @@ camel-case "4.1.2" tslib "~2.2.0" -"@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.1.2": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.1.2.tgz#a376259fafbca7532fda657e3abeec23b545e5d3" - integrity sha512-3G+NIBR5mHjPm78jAD0l07JRE0XH+lr9m7yL/wl69jAzK0Jr/H+/Ok4ljEolI70iglz+ZhIShVPAwyesF6rnFg== - dependencies: - tslib "~2.3.0" - "@graphql-tools/wrap@^7.0.0", "@graphql-tools/wrap@^7.0.4", "@graphql-tools/wrap@^7.0.6": version "7.0.8" resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-7.0.8.tgz#ad41e487135ca3ea1ae0ea04bb3f596177fb4f50" @@ -1832,24 +1958,10 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== - "@intlify/shared@^9.0.0": - version "9.1.7" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.7.tgz#e7d8bc90cb59dc17dd7b4c85a73db16fcb7891fc" - integrity sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ== + version "9.1.5" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.5.tgz#4e68bdaa4a3cdea6bbbff5c0d8f653890b056dbc" + integrity sha512-ZWLbwRwEyR3/Zd7QfANFraNeqMOUKgI+u/JeK+56AJqU9zfiemBHaYwF6aAh0C5aIrB4GAq3LYtGk2qsQhdyOg== "@intlify/vue-i18n-extensions@^1.0.2": version "1.0.2" @@ -1867,22 +1979,6 @@ js-yaml "^3.13.1" json5 "^2.1.1" -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" @@ -1892,18 +1988,6 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/console@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" - integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== - dependencies: - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.0.6" - jest-util "^27.0.6" - slash "^3.0.0" - "@jest/core@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" @@ -1938,41 +2022,6 @@ slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/core@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" - integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== - dependencies: - "@jest/console" "^27.0.6" - "@jest/reporters" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.0.6" - jest-config "^27.0.6" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-resolve-dependencies "^27.0.6" - jest-runner "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - jest-watcher "^27.0.6" - micromatch "^4.0.4" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - "@jest/environment@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" @@ -1983,16 +2032,6 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" -"@jest/environment@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" - integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== - dependencies: - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - "@jest/fake-timers@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" @@ -2002,27 +2041,6 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" -"@jest/fake-timers@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" - integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== - dependencies: - "@jest/types" "^27.0.6" - "@sinonjs/fake-timers" "^7.0.2" - "@types/node" "*" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-util "^27.0.6" - -"@jest/globals@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" - integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/types" "^27.0.6" - expect "^27.0.6" - "@jest/reporters@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" @@ -2050,36 +2068,6 @@ source-map "^0.6.0" string-length "^2.0.0" -"@jest/reporters@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" - integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.0.0" - "@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" @@ -2089,15 +2077,6 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/source-map@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" - integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - "@jest/test-result@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" @@ -2107,16 +2086,6 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-result@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" - integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== - dependencies: - "@jest/console" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - "@jest/test-sequencer@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" @@ -2127,16 +2096,6 @@ jest-runner "^24.9.0" jest-runtime "^24.9.0" -"@jest/test-sequencer@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" - integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== - dependencies: - "@jest/test-result" "^27.0.6" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-runtime "^27.0.6" - "@jest/transform@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" @@ -2159,27 +2118,6 @@ source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/transform@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" - integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.0.6" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-regex-util "^27.0.6" - jest-util "^27.0.6" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -2187,34 +2125,7 @@ dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" - integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@juggle/resize-observer@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz#b50a781709c81e10701004214340f25475a171a0" - integrity sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw== + "@types/yargs" "^13.0.0" "@lerna/add@3.21.0": version "3.21.0" @@ -2902,14 +2813,14 @@ write-file-atomic "^2.3.0" "@microsoft/api-documenter@^7.13.7": - version "7.13.41" - resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.13.41.tgz#91d305e5ff6890a0b8dfe548172f819ef6f10a5a" - integrity sha512-ql4ALuhITlDh9uewwiUyICRUJXjF1uo4UFNHreuI7MOlsc5WSQ9IlDMSixKn9nNaf3zFOCJ/YeS0BfqhP3G27A== + version "7.13.39" + resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.13.39.tgz#62882d760a640336b98998ea301594b21ab6fc29" + integrity sha512-it9JJ2bz/ByQuqRw0pfrKBhYssjAqZCrQWK+IB2O4Owdid7zd3guHPK2LZoDaiExltHam4Iu9RgwyLGBAbX0tA== dependencies: "@microsoft/api-extractor-model" "7.13.5" "@microsoft/tsdoc" "0.13.2" "@rushstack/node-core-library" "3.40.0" - "@rushstack/ts-command-line" "4.9.0" + "@rushstack/ts-command-line" "4.8.1" colors "~1.2.1" js-yaml "~3.13.1" resolve "~1.17.0" @@ -2924,16 +2835,16 @@ "@rushstack/node-core-library" "3.40.0" "@microsoft/api-extractor@^7.18.3": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.7.tgz#851d2413a3c5d696f7cc914eb59de7a7882b2e8b" - integrity sha512-JhtV8LoyLuIecbgCPyZQg08G1kngIRWpai2UzwNil9mGVGYiDZVeeKx8c2phmlPcogmMDm4oQROxyuiYt5sJiw== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.5.tgz#cc2804d7c8b9d0f1e63fd85d0448569b767db102" + integrity sha512-NUGS6WxexziEnroHUOI3KKVmMX02god7SLA8Y4a5GKCL5k7AHuHFqP2bpd5Otx2odfbdj15ObO7FU/XA3Oxh8w== dependencies: "@microsoft/api-extractor-model" "7.13.5" "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" "@rushstack/node-core-library" "3.40.0" - "@rushstack/rig-package" "0.3.0" - "@rushstack/ts-command-line" "4.9.0" + "@rushstack/rig-package" "0.2.13" + "@rushstack/ts-command-line" "4.8.1" colors "~1.2.1" lodash "~4.17.15" resolve "~1.17.0" @@ -2969,18 +2880,18 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - "@nodelib/fs.stat" "2.0.5" + "@nodelib/fs.stat" "2.0.4" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -2988,21 +2899,13 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== dependencies: - "@nodelib/fs.scandir" "2.1.5" + "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" - integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - "@npmcli/move-file@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" @@ -3011,42 +2914,41 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@nuxt/babel-preset-app@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.15.8.tgz#c78eb8c47c1cafec1c5aba6a52385a3ce877b968" - integrity sha512-z23bY5P7dLTmIbk0ZZ95mcEXIEER/mQCOqEp2vxnzG2nurks+vq6tNcUAXqME1Wl6aXWTXlqky5plBe7RQHzhQ== +"@nuxt/babel-preset-app@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.15.4.tgz#e5ca0714806db1ede41ae6f0a42d34022ab68150" + integrity sha512-49boY5aSfs7ImExW2EHutkfyxoipZeCF2MxF8kYKyhJz/9esoJdo6eY8JNhzDZYISDaWSeN2w5HjiMVo9zTrjg== dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/core" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" + "@babel/compat-data" "^7.13.12" + "@babel/core" "^7.13.14" + "@babel/helper-compilation-targets" "^7.13.13" "@babel/helper-module-imports" "^7.13.12" "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.13.15" + "@babel/plugin-proposal-decorators" "^7.13.5" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-transform-runtime" "^7.13.15" - "@babel/preset-env" "^7.14.1" - "@babel/runtime" "^7.14.0" + "@babel/plugin-transform-runtime" "^7.13.10" + "@babel/preset-env" "^7.13.12" + "@babel/runtime" "^7.13.10" "@vue/babel-preset-jsx" "^1.2.4" core-js "^2.6.5" - core-js-compat "^3.12.1" + core-js-compat "^3.10.0" regenerator-runtime "^0.13.7" -"@nuxt/builder@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.15.8.tgz#66ead4be0a2ce6932a2b7e521cfe1621e49290e7" - integrity sha512-WVhN874LFMdgRiJqpxmeKI+vh5lhCUBVOyR9PhL1m1V/GV3fb+Dqc1BKS6XgayrWAWavPLveCJmQ/FID0puOfQ== +"@nuxt/builder@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.15.4.tgz#0b54e0acb48aacc339af71b3b5d4df2d52a3d9da" + integrity sha512-C2pmWH1ueUnwo/W0YIwlzQRqLy9BkoQTUHvy849hDTE4EFeTnW9g8cE9sGI0MTfmKY2dDDx2dc/W63MPP8r3wQ== dependencies: "@nuxt/devalue" "^1.2.5" - "@nuxt/utils" "2.15.8" - "@nuxt/vue-app" "2.15.8" - "@nuxt/webpack" "2.15.8" - chalk "^4.1.1" + "@nuxt/utils" "2.15.4" + "@nuxt/vue-app" "2.15.4" + "@nuxt/webpack" "2.15.4" + chalk "^4.1.0" chokidar "^3.5.1" consola "^2.15.3" fs-extra "^9.1.0" - glob "^7.1.7" + glob "^7.1.6" hash-sum "^2.0.0" ignore "^5.1.8" lodash "^4.17.21" @@ -3054,20 +2956,20 @@ serialize-javascript "^5.0.1" upath "^2.0.1" -"@nuxt/cli@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.15.8.tgz#3b946ee08c7b5b3223c8952873c65727e775ec30" - integrity sha512-KcGIILW/dAjBKea1DHsuLCG1sNzhzETShwT23DhXWO304qL8ljf4ndYKzn2RenzauGRGz7MREta80CbJCkLSHw== +"@nuxt/cli@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.15.4.tgz#d5f33ee3e1e0cc4a3edaaf21e9b0c294cd0e4097" + integrity sha512-KlBXwvvgP0H3lcub5PGez2OhaNo3p8ln6Dhejmv8WoOfsn/z6Qa7+3sGUE3a03uBbh59JXYLSBFzhVDVx7NdDg== dependencies: - "@nuxt/config" "2.15.8" - "@nuxt/utils" "2.15.8" - boxen "^5.0.1" - chalk "^4.1.1" + "@nuxt/config" "2.15.4" + "@nuxt/utils" "2.15.4" + boxen "^5.0.0" + chalk "^4.1.0" compression "^1.7.4" connect "^3.7.0" consola "^2.15.3" crc "^3.8.0" - defu "^4.0.1" + defu "^3.2.2" destr "^1.1.0" execa "^5.0.0" exit "^0.1.2" @@ -3084,43 +2986,43 @@ upath "^2.0.1" wrap-ansi "^7.0.0" -"@nuxt/components@^2.1.8": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.2.1.tgz#49c4442ac5a0ef49f49ef7d9960f4376fc3e7c78" - integrity sha512-r1LHUzifvheTnJtYrMuA+apgsrEJbxcgFKIimeXKb+jl8TnPWdV3egmrxBCaDJchrtY/wmHyP47tunsft7AWwg== - dependencies: - chalk "^4.1.2" - chokidar "^3.5.2" - glob "^7.1.7" - globby "^11.0.4" - scule "^0.2.1" +"@nuxt/components@^2.1.4": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.1.6.tgz#5fc35c168bdfaa9f48854e335e5710ced8f71680" + integrity sha512-TXgqc43xIn+Lgnkc2NY1IB3psZxynjMlGIl4q5jB4Ylzf4e7LAB5R6nFSoR/0etkdvifQmGsMlwV6rbjUOdSrw== + dependencies: + chalk "^4.1.0" + chokidar "^3.5.1" + glob "^7.1.6" + globby "^11.0.3" + scule "^0.1.1" semver "^7.3.5" upath "^2.0.1" - vue-template-compiler "^2.6.14" + vue-template-compiler "^2.6.12" -"@nuxt/config@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.15.8.tgz#56cc1b052871072a26f76c6d3b69d9b53808ce52" - integrity sha512-KMQbjmUf9RVHeTZEf7zcuFnh03XKZioYhok6GOCY+leu3g5n/UhyPvLnTsgTfsLWohqoRoOm94u4A+tNYwn9VQ== +"@nuxt/config@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.15.4.tgz#b99d1623a7b9ed3f0fe0dbf768c7424f1455d896" + integrity sha512-IwbsSrCMXN0QLY4e0tFImMsFxGtAFaf42TuYkwwJiG4YgqaY6CBHI6GYmmcDma+kPtoZ85n0RRyyuQp6lUwBLw== dependencies: - "@nuxt/utils" "2.15.8" + "@nuxt/utils" "2.15.4" consola "^2.15.3" - defu "^4.0.1" + defu "^3.2.2" destr "^1.1.0" - dotenv "^9.0.2" + dotenv "^8.2.0" lodash "^4.17.21" rc9 "^1.2.0" std-env "^2.3.0" - ufo "^0.7.4" + ufo "^0.6.10" -"@nuxt/core@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.15.8.tgz#443d13da9edc5c4ae47d7902f1d6504a8cce27a2" - integrity sha512-31pipWRvwHiyB5VDqffgSO7JtmHxyzgshIzuZzSinxMbVmK3BKsOwacD/51oEyELgrPlUgLqcY9dg+RURgmHGQ== +"@nuxt/core@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.15.4.tgz#73dee1a03ba82bad745b23e5c72e66f9c73b29d9" + integrity sha512-SM+mEE7X3RgO+cyD0VP62pJ9Pd9KUAGDka32uaQAGEwGdRyoz1g1jUayzfnut75Pk0s96zuOmsD+uwdIGTU0vQ== dependencies: - "@nuxt/config" "2.15.8" - "@nuxt/server" "2.15.8" - "@nuxt/utils" "2.15.8" + "@nuxt/config" "2.15.4" + "@nuxt/server" "2.15.4" + "@nuxt/utils" "2.15.4" consola "^2.15.3" fs-extra "^9.1.0" hable "^3.0.0" @@ -3134,7 +3036,7 @@ dependencies: consola "^2.9.0" -"@nuxt/friendly-errors-webpack-plugin@^2.5.1": +"@nuxt/friendly-errors-webpack-plugin@^2.5.0": version "2.5.1" resolved "https://registry.yarnpkg.com/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.1.tgz#3ab815c31eb43859a239848a85481157aaf7b07e" integrity sha512-mKN0Mbb1PjJYBzrswsyWvSEZw5Jxi0fQZPMA0ssrTmkz9lvtxtXq4luhX31OpULUvbc0jLaBu/SL0ExlxIbTlw== @@ -3144,29 +3046,29 @@ error-stack-parser "^2.0.0" string-width "^2.0.0" -"@nuxt/generator@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.15.8.tgz#d6bd4a677edf14f34d516e13bcb70d62cdd4c5b4" - integrity sha512-hreLdYbBIe3SWcP8LsMG7OlDTx2ZVucX8+f8Vrjft3Q4r8iCwLMYC1s1N5etxeHAZfS2kZiLmF92iscOdfbgMQ== +"@nuxt/generator@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.15.4.tgz#6060ac9c37f78fa9c99ad73735a41da103d3f76e" + integrity sha512-Yq5tlLszZjBaw2PPt5d+WCDmfqcYrPxHngaDo/VmQR0tGyGEUETGNCYvJziOmErk0pZjk54npSr7ftnrFtJXxA== dependencies: - "@nuxt/utils" "2.15.8" - chalk "^4.1.1" + "@nuxt/utils" "2.15.4" + chalk "^4.1.0" consola "^2.15.3" - defu "^4.0.1" + defu "^3.2.2" devalue "^2.0.1" fs-extra "^9.1.0" html-minifier "^4.0.0" - node-html-parser "^3.2.0" - ufo "^0.7.4" + node-html-parser "^3.1.2" + ufo "^0.6.10" "@nuxt/loading-screen@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-2.0.4.tgz#756abd861f77c57001be4d21d47534723afb4f3a" - integrity sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-2.0.3.tgz#1d6b1f976bb143c6592231af0bf7fa6245f6ebd2" + integrity sha512-ThvxxUpfTZezzz0gAgyG4vHCM7KDeA692EL7lKrZ/fU8JvXlG6LYngVLWAobexBsydtGkuZyKCwCVDnEGNL4jw== dependencies: connect "^3.7.0" - defu "^5.0.0" - get-port-please "^2.2.0" + defu "^2.0.4" + get-port-please "^1.0.0" node-res "^5.0.1" serve-static "^1.14.1" @@ -3179,13 +3081,13 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@nuxt/server@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.15.8.tgz#ec733897de78f858ae0eebd174e8549f247c4e99" - integrity sha512-E4EtXudxtWQBUHMHOxFwm5DlPOkJbW+iF1+zc0dGmXLscep1KWPrlP+4nrpZj8/UKzpupamE8ZTS9I4IbnExVA== +"@nuxt/server@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.15.4.tgz#6b9beae7aa945387d277a2f442368f8beb82670d" + integrity sha512-RxHBif+12v9Tqg0hBADGRJA+HnVJDd5RDDlo4plHhIU8KhgfewGGSdF3PAltHoCavXAHrTVdTEAZKN11gtAAlA== dependencies: - "@nuxt/utils" "2.15.8" - "@nuxt/vue-renderer" "2.15.8" + "@nuxt/utils" "2.15.4" + "@nuxt/vue-renderer" "2.15.4" "@nuxtjs/youch" "^4.2.3" compression "^1.7.4" connect "^3.7.0" @@ -3200,31 +3102,31 @@ serve-placeholder "^1.2.3" serve-static "^1.14.1" server-destroy "^1.0.1" - ufo "^0.7.4" + ufo "^0.6.10" "@nuxt/telemetry@^1.3.3": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-1.3.6.tgz#a27a27b2f56a2ad4ef2c1bef82e12f0bc0dc40ac" - integrity sha512-sZpLf/rU3cvN8/alR1HpJIl3mHPA1GOg41GKdOOrtw7Gi/lCEVk4hK+lpXgYInZ2n6i1JyknpKhM9YzX2RU33w== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-1.3.3.tgz#beefa94c6032a1312c7dc9c8784c6b8cc3aa42ae" + integrity sha512-ElnoAJo1n/Ui0j9i3xqhXajoGJdEwmkEtsWftlZUpQNJxdfoz+623qnt9XHMYa0X5Nf1PXYdcUKa2u4AASXOjA== dependencies: arg "^5.0.0" - chalk "^4.1.1" - ci-info "^3.1.1" - consola "^2.15.3" + chalk "^4.1.0" + ci-info "^2.0.0" + consola "^2.15.0" create-require "^1.1.1" - defu "^5.0.0" + defu "^3.2.2" destr "^1.1.0" - dotenv "^9.0.2" + dotenv "^8.2.0" fs-extra "^8.1.0" - git-url-parse "^11.4.4" + git-url-parse "^11.4.3" inquirer "^7.3.3" - is-docker "^2.2.1" - jiti "^1.9.2" - nanoid "^3.1.23" + is-docker "^2.1.1" + jiti "^1.3.0" + nanoid "^3.1.20" node-fetch "^2.6.1" parse-git-config "^3.0.0" rc9 "^1.2.0" - std-env "^2.3.0" + std-env "^2.2.1" "@nuxt/types@^0.7.9": version "0.7.9" @@ -3260,31 +3162,31 @@ ts-loader "^8.0.17" typescript "~4.2" -"@nuxt/utils@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.15.8.tgz#0c3594f01be63ab521583904cafd32215b719d4c" - integrity sha512-e0VBarUbPiQ4ZO1T58puoFIuXme7L5gk1QfwyxOONlp2ryE7aRyZ8X/mryuOiIeyP64c4nwSUtN7q9EUWRb7Lg== +"@nuxt/utils@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.15.4.tgz#1c84dfa964357224a79d402797c9feab2040991c" + integrity sha512-ngvE7TDVXDIQgB+vvENEPfwetWu5zxGX0vqszeEB6248MZAoU1nBqT+nVH9tIm1/aiZZz1Wg0plc4d+QLizpmA== dependencies: consola "^2.15.3" create-require "^1.1.1" fs-extra "^9.1.0" hash-sum "^2.0.0" - jiti "^1.9.2" + jiti "^1.6.4" lodash "^4.17.21" proper-lockfile "^4.1.2" semver "^7.3.5" serialize-javascript "^5.0.1" signal-exit "^3.0.3" - ua-parser-js "^0.7.28" - ufo "^0.7.4" + ua-parser-js "^0.7.26" + ufo "^0.6.10" -"@nuxt/vue-app@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.15.8.tgz#46b7ec8fc93f8d1f4cdf4f6b04134cb40ceb7c4a" - integrity sha512-FJf9FSMPsWT3BqkS37zEuPTxLKzSg2EIwp1sP8Eou25eE08qxRfe2PwTVA8HnXUPNdpz2uk/T9DlNw+JraiFRQ== +"@nuxt/vue-app@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.15.4.tgz#85f478ddbde4fe3f64fbe9d8878ceb41a1a704fb" + integrity sha512-AtvMkY0OdsqlLQLEHbc61fSX3Y6HGsZPbvdFPuBX8fjFVhOCggC9HtYKcJf/S7qXhnDm241biDCy7U51myxuPw== dependencies: node-fetch "^2.6.1" - ufo "^0.7.4" + ufo "^0.6.10" unfetch "^4.2.0" vue "^2.6.12" vue-client-only "^2.0.0" @@ -3294,42 +3196,42 @@ vue-template-compiler "^2.6.12" vuex "^3.6.2" -"@nuxt/vue-renderer@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.15.8.tgz#1cd781de18724a98e27655e89bfe64cd5521491e" - integrity sha512-54I/k+4G6axP9XVYYdtH6M1S6T49OIkarpF6/yIJj0yi3S/2tdJ9eUyfoLZ9EbquZFDDRHBxSswTtr2l/eakPw== +"@nuxt/vue-renderer@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.15.4.tgz#39831811fff62f4ba65200163d523d0fd7311fee" + integrity sha512-UQzU4XzYFBOiwrZvh4ORcVEQbNzXPfub3/MWWZiYR7uuKjCfRNmU/ZIvAcSsWCrkyc1bvaw8Iehq4h0z88ZyQw== dependencies: "@nuxt/devalue" "^1.2.5" - "@nuxt/utils" "2.15.8" + "@nuxt/utils" "2.15.4" consola "^2.15.3" - defu "^4.0.1" + defu "^3.2.2" fs-extra "^9.1.0" lodash "^4.17.21" lru-cache "^5.1.1" - ufo "^0.7.4" + ufo "^0.6.10" vue "^2.6.12" vue-meta "^2.4.0" vue-server-renderer "^2.6.12" -"@nuxt/webpack@2.15.8": - version "2.15.8" - resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.15.8.tgz#6169b4b8a13ee2cdb4987df6c5a401e18c412ef1" - integrity sha512-CzJYFed23Ow/UK0+cI1FVthDre1p2qc8Q97oizG39d3/SIh3aUHjgj8c60wcR+RSxVO0FzZMXkmq02NmA7vWJg== +"@nuxt/webpack@2.15.4": + version "2.15.4" + resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.15.4.tgz#f65df7234248c6622f172f84646cde20ef26f347" + integrity sha512-VyrTuTpl+aXjuymHHunBg0c+F7BFuPNWU62A3fwdNoCq4zxHt4+JzXTcQkst2FlL9btJ/y2+OEM7QJRVE0+1FA== dependencies: - "@babel/core" "^7.14.0" - "@nuxt/babel-preset-app" "2.15.8" - "@nuxt/friendly-errors-webpack-plugin" "^2.5.1" - "@nuxt/utils" "2.15.8" + "@babel/core" "^7.13.14" + "@nuxt/babel-preset-app" "2.15.4" + "@nuxt/friendly-errors-webpack-plugin" "^2.5.0" + "@nuxt/utils" "2.15.4" babel-loader "^8.2.2" cache-loader "^4.1.0" - caniuse-lite "^1.0.30001228" + caniuse-lite "^1.0.30001205" consola "^2.15.3" css-loader "^4.3.0" - cssnano "^4.1.11" + cssnano "^4.1.10" eventsource-polyfill "^0.9.6" extract-css-chunks-webpack-plugin "^4.9.0" file-loader "^6.2.0" - glob "^7.1.7" + glob "^7.1.6" hard-source-webpack-plugin "^0.13.1" hash-sum "^2.0.0" html-webpack-plugin "^4.5.1" @@ -3348,18 +3250,18 @@ std-env "^2.3.0" style-resources-loader "^1.4.1" terser-webpack-plugin "^4.2.3" - thread-loader "^3.0.4" + thread-loader "^3.0.1" time-fix-plugin "^2.0.7" - ufo "^0.7.4" + ufo "^0.6.10" url-loader "^4.1.1" - vue-loader "^15.9.7" + vue-loader "^15.9.6" vue-style-loader "^4.1.3" vue-template-compiler "^2.6.12" webpack "^4.46.0" - webpack-bundle-analyzer "^4.4.1" - webpack-dev-middleware "^4.2.0" + webpack-bundle-analyzer "^4.4.0" + webpack-dev-middleware "^4.1.0" webpack-hot-middleware "^2.25.0" - webpack-node-externals "^3.0.0" + webpack-node-externals "^2.5.2" webpackbar "^4.0.0" "@nuxtjs/composition-api@0.17.0": @@ -3387,13 +3289,13 @@ workbox-cdn "^5.1.4" "@nuxtjs/style-resources@^1.0.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@nuxtjs/style-resources/-/style-resources-1.2.1.tgz#9a2b6580b2ed9b06e930bee488a56b8376a263de" - integrity sha512-sOp71gCBNuGK2jchybTtVab83yB7jnSr+hw6DAKDgAGX/jrMYUyxRc9tiFxe+8YDSnqghTgQrkEkqPsfS4D4sg== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/style-resources/-/style-resources-1.0.0.tgz#7c4d6be19d7f7cc5d687d689f2ab16c0b94773a1" + integrity sha512-tDRcC/pm8B0Kpxtzb/1/HOBkv3/kPD+2FiCiUBGMB7YriRud9OUPw1pnYCsAH9ftwpMJS4k4XOyUY8FCTk6OxA== dependencies: - consola "^2.15.3" - glob-all "^3.2.1" - sass-resources-loader "^2.2.4" + consola "^2.4.0" + glob-all "^3.1.0" + sass-resources-loader "^2.0.0" "@nuxtjs/youch@^4.2.3": version "4.2.3" @@ -3412,18 +3314,18 @@ "@octokit/types" "^6.0.3" "@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + version "6.0.11" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.11.tgz#082adc2aebca6dcefa1fb383f5efb3ed081949d1" + integrity sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ== dependencies: "@octokit/types" "^6.0.3" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^9.5.0": - version "9.7.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.7.0.tgz#9897cdefd629cd88af67b8dbe2e5fb19c63426b2" - integrity sha512-TUJ16DJU8mekne6+KVcMV5g6g/rJlrnIKn7aALG9QrNpnEipFc1xjoarh0PKaAWf2Hf+HwthRKYt+9mCm5RsRg== +"@octokit/openapi-types@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-6.0.0.tgz#7da8d7d5a72d3282c1a3ff9f951c8133a707480d" + integrity sha512-CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -3438,9 +3340,9 @@ "@octokit/types" "^2.0.1" "@octokit/plugin-request-log@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d" + integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ== "@octokit/plugin-rest-endpoint-methods@2.4.0": version "2.4.0" @@ -3459,23 +3361,23 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143" + integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg== dependencies: "@octokit/types" "^6.0.3" deprecation "^2.0.0" once "^1.4.0" "@octokit/request@^5.2.0": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.1.tgz#f97aff075c37ab1d427c49082fefeef0dba2d8ce" - integrity sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ== + version "5.4.15" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.15.tgz#829da413dc7dd3aa5e2cdbb1c7d0ebe1f146a128" + integrity sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag== dependencies: "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^6.7.1" is-plain-object "^5.0.0" node-fetch "^2.6.1" universal-user-agent "^6.0.0" @@ -3509,17 +3411,17 @@ dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": - version "6.25.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.25.0.tgz#c8e37e69dbe7ce55ed98ee63f75054e7e808bf1a" - integrity sha512-bNvyQKfngvAd/08COlYIN54nRgxskmejgywodizQNyiKoXmWRAjKup2/LYwm+T9V0gsKH6tuld1gM0PzmOiB4Q== +"@octokit/types@^6.0.3", "@octokit/types@^6.7.1": + version "6.13.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.13.0.tgz#779e5b7566c8dde68f2f6273861dd2f0409480d0" + integrity sha512-W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA== dependencies: - "@octokit/openapi-types" "^9.5.0" + "@octokit/openapi-types" "^6.0.0" -"@polka/url@^1.0.0-next.19": - version "1.0.0-next.20" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.20.tgz#111b5db0f501aa89b05076fa31f0ea0e0c292cd3" - integrity sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q== +"@polka/url@^1.0.0-next.9": + version "1.0.0-next.12" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" + integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== "@rollup/plugin-babel@^5.1.0": version "5.3.0" @@ -3538,9 +3440,9 @@ graphql-tag "^2.2.2" "@rollup/plugin-node-resolve@^13.0.0": - version "13.0.4" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz#b10222f4145a019740acb7738402130d848660c0" - integrity sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w== + version "13.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.0.tgz#352f07e430ff377809ec8ec8a6fd636547162dc4" + integrity sha512-41X411HJ3oikIDivT5OKe9EZ6ud6DXudtfNrGbC4nniaxx2esiWjkLOzgnZsWq1IM8YIeL2rzRGLZLBjlhnZtQ== dependencies: "@rollup/pluginutils" "^3.1.0" "@types/resolve" "1.17.1" @@ -3567,9 +3469,9 @@ picomatch "^2.2.2" "@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.1.0": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" - integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" @@ -3589,18 +3491,18 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/rig-package@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.0.tgz#334ad2846797861361b3445d4cc9ae9164b1885c" - integrity sha512-Lj6noF7Q4BBm1hKiBDw94e6uZvq1xlBwM/d2cBFaPqXeGdV+G6r3qaCWfRiSXK0pcHpGGpV5Tb2MdfhVcO6G/g== +"@rushstack/rig-package@0.2.13": + version "0.2.13" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.2.13.tgz#418f0aeb4c9b33bd8bd2547759fc0ae91fd970c7" + integrity sha512-qQMAFKvfb2ooaWU9DrGIK9d8QfyHy/HiuITJbWenlKgzcDXQvQgEduk57YF4Y7LLasDJ5ZzLaaXwlfX8qCRe5Q== dependencies: resolve "~1.17.0" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.9.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.9.0.tgz#781ba42cff73cae097b6d5241b6441e7cc2fe6e0" - integrity sha512-kmT8t+JfnvphISF1C5WwY56RefjwgajhSjs9J4ckvAFXZDXR6F5cvF5/RTh7fGCzIomg8esy2PHO/b52zFoZvA== +"@rushstack/ts-command-line@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.8.1.tgz#c233a0226112338e58e7e4fd219247b4e7cec883" + integrity sha512-rmxvYdCNRbyRs+DYAPye3g6lkCkWHleqO40K8UPvUAzFqEuj6+YCVssBiOmrUDCoM5gaegSNT0wFDYhz24DWtw== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -3619,29 +3521,15 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^7.0.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@storefront-ui/shared@0.10.2": version "0.10.2" resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.2.tgz#144d3a7d5508563ad97c1882fbd291abb0166349" integrity sha512-EWwct/pMYcXhMKGEE2h7blw0XIvcVokhzdzfl5VROSajtflJkJ11hfaOxFWkB5Zgd6IdS9iwR2ayzVjunVRuEA== -"@storefront-ui/shared@0.10.71": - version "0.10.71" - resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.71.tgz#210665f54f04b62e000c97ce2ce9aa973ce95197" - integrity sha512-fLv7iAEk1YEq7yoZkvWkQNGMH6XqpqqJWjrJ5Hcr51gUvzk0vCLGebOp8iOYbSHmMwRhOkCxUVOFK9oo3WKdAQ== +"@storefront-ui/shared@0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.4.tgz#f0579e807e43486f45d3b9942b0cb96ce1fe8f7e" + integrity sha512-luFwpkawD5dnFT9hg40MvX1aZYFXlt1RThcAvpsZjNkxlR4+uGY+9IzFibGE3dOz+zBUvy8RVOT07JKlt4AR0g== "@storefront-ui/vue@0.10.3": version "0.10.3" @@ -3663,23 +3551,22 @@ vue2-leaflet "^2.5.2" "@storefront-ui/vue@^0.10.3": - version "0.10.71" - resolved "https://registry.yarnpkg.com/@storefront-ui/vue/-/vue-0.10.71.tgz#18c512d2234db4ba009e49e4391d5062ec05b63f" - integrity sha512-cWdml1ZPx3g1i/kyhktd0cMjQNDgnKi6h3e5+VZS21gJEjmnXyhIilc0gQffRJ852w06fhQ3KXgC3TF6mFEauQ== + version "0.10.4" + resolved "https://registry.yarnpkg.com/@storefront-ui/vue/-/vue-0.10.4.tgz#9550c059948ab03e1b09d4de13d8ec8deced7011" + integrity sha512-OUR1vxUB++G/ToFxNCyphGCUI5TbWT7yJ0+9feQI9Wg71yiRSCsDkDO765KpcyFGhrqchgi3R/YobOt+8dCwiA== dependencies: - "@cypress/vue" "^2.0.1" "@glidejs/glide" "^3.3.0" - "@storefront-ui/shared" "0.10.71" + "@storefront-ui/shared" "0.10.4" body-scroll-lock "^3.0.1" cloudinary-build-url "^0.1.1" core-js "^3.6.5" hammerjs "^2.0.8" leaflet "^1.5.1" node-sass "^4.13.1" - nouislider "^15.2.0" sass-loader "^8.0.2" simplebar-vue "^1.4.0" - vue "^2.6.12" + vue-drag-drop "^1.1.4" + vue-fragment "^1.5.1" vue2-leaflet "^2.5.2" "@szmarczak/http-timer@^1.1.2": @@ -3689,10 +3576,10 @@ dependencies: defer-to-connect "^1.0.1" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== "@types/argparse@1.0.38": version "1.0.38" @@ -3707,10 +3594,10 @@ "@types/browserslist" "*" postcss "7.x.x" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.8": - version "7.1.15" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" - integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== +"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.8": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -3719,31 +3606,31 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== dependencies: "@babel/types" "^7.3.0" "@types/body-parser@*": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" - integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== dependencies: "@types/connect" "*" "@types/node" "*" @@ -3756,24 +3643,24 @@ browserslist "*" "@types/clean-css@*": - version "4.2.5" - resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.5.tgz#69ce62cc13557c90ca40460133f672dc52ceaf89" - integrity sha512-NEzjkGGpbs9S9fgC4abuBvTpVwE3i+Acu9BBod3PUyjDVZcNsGx61b8r2PphR61QGPnn0JHVs5ey6/I4eTrkxw== + version "4.2.4" + resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.4.tgz#4fe4705c384e6ec9ee8454bc3d49089f38dc038a" + integrity sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag== dependencies: "@types/node" "*" source-map "^0.6.0" "@types/compression@^1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.1.tgz#d935a1cd6f5cd9a4dc8b0d8aadf2ee91a2975acc" - integrity sha512-d6K1bU3qIjtfB2u+A1N0WDf62LpewRjrvbqY79qlPwk2otgQ4mWB4+LzPCWTvGmcuVwo+zAroEhsNlJavRcFvg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390" + integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw== dependencies: "@types/express" "*" "@types/connect@*", "@types/connect@^3.4.33": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.34" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" + integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== dependencies: "@types/node" "*" @@ -3783,9 +3670,9 @@ integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== "@types/estree@*": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + version "0.0.47" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" + integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== "@types/estree@0.0.39": version "0.0.39" @@ -3793,25 +3680,25 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/etag@^1.8.0": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@types/etag/-/etag-1.8.1.tgz#593ca8ddb43acb3db049bd0955fd64d281ab58b9" - integrity sha512-bsKkeSqN7HYyYntFRAmzcwx/dKW4Wa+KVMTInANlI72PWLQmOpZu96j0OqHZGArW4VQwCmJPteQlXaUDeOB0WQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@types/etag/-/etag-1.8.0.tgz#37f0b1f3ea46da7ae319bbedb607e375b4c99f7e" + integrity sha512-EdSN0x+Y0/lBv7YAb8IU4Jgm6DWM+Bqtz7o5qozl96fzaqdqbdfHS5qjdpFeIv7xQ8jSLyjMMNShgYtMajEHyQ== dependencies: "@types/node" "*" "@types/express-serve-static-core@^4.17.18": - version "4.17.24" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" - integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== + version "4.17.19" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" + integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.11.1": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" + integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -3826,24 +3713,17 @@ "@types/webpack" "^4" "@types/glob@^7.1.1": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" - integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - "@types/html-minifier-terser@^5.0.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" - integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== "@types/html-minifier@^3.5.3": version "3.5.3" @@ -3854,7 +3734,7 @@ "@types/relateurl" "*" "@types/uglify-js" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== @@ -3874,25 +3754,17 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.24": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== +"@types/jest@^24.0.23": + version "24.9.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" + integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q== dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" + jest-diff "^24.3.0" -"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/json5@^0.0.29": version "0.0.29" @@ -3900,9 +3772,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/less@^3.0.1": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.3.tgz#f9451dbb9548d25391107d65d6401a0cfb15db92" - integrity sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.2.tgz#2761d477678c8374cb9897666871662eb1d1115e" + integrity sha512-62vfe65cMSzYaWmpmhqCMMNl0khen89w57mByPi1OseGfcV/LV03fO8YVrNj7rFQsRWNJo650WWyh6m7p8vZmA== "@types/memory-fs@*": version "0.3.3" @@ -3917,26 +3789,26 @@ integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" + integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node-sass@^4.11.1": - version "4.11.2" - resolved "https://registry.yarnpkg.com/@types/node-sass/-/node-sass-4.11.2.tgz#ecdaa44a1ba8847bf7dea2aadbfe33a91a263514" - integrity sha512-pOFlTw/OtZda4e+yMjq6/QYuvY0RDMQ+mxXdWj7rfSyf18V8hS4SfgurO+MasAkQsv6Wt6edOGlwh5QqJml9gw== + version "4.11.1" + resolved "https://registry.yarnpkg.com/@types/node-sass/-/node-sass-4.11.1.tgz#bda27c5181cbf7c090c3058e119633dfb2b6504c" + integrity sha512-wPOmOEEtbwQiPTIgzUuRSQZ3H5YHinsxRGeZzPSDefAm4ylXWnZG9C0adses8ymyplKK0gwv3JkDNO8GGxnWfg== dependencies: "@types/node" "*" "@types/node@*", "@types/node@>= 8", "@types/node@>=6": - version "16.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.2.tgz#0465a39b5456b61a04d98bd5545f8b34be340cb7" - integrity sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw== + version "14.14.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.39.tgz#9ef394d4eb52953d2890e4839393c309aa25d2d1" + integrity sha512-Qipn7rfTxGEDqZiezH+wxqWYR8vcXq5LRpZrETD19Gs4o8LbklbmqotSUsMU+s5G3PJwMRDfNEYoxrcBwIxOuw== "@types/node@10.17.13": version "10.17.13" @@ -3949,19 +3821,19 @@ integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w== "@types/node@^12.12.14", "@types/node@^12.12.2", "@types/node@^12.12.47": - version "12.20.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.21.tgz#575e91f59c2e79318c2d39a48286c6954e484fd5" - integrity sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA== + version "12.20.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.8.tgz#e8552c505de64739fc997e28920ff4539fc8f185" + integrity sha512-uxDkaUGwXNDHu5MHqs+FAsmOjNoNibDF1cu4668QG96mQldQfgV3M+UyntXWWrtXSh13jFxEdNUdoLWH46mLKQ== "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/optimize-css-assets-webpack-plugin@^5.0.1": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#eb2c8b9d3f9f14b72639ac18a1a72998a4313083" - integrity sha512-dpRBcoyUD1uJLzyrnEl0LCwqPc/vprmOrl6fkk0dZEZe0b28rsB6t4WsbFNitFhD4oS8lRZO1+MiKzslfCTTNQ== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#9bf5bdbb57b379f59a37a6775336f42cd6701852" + integrity sha512-PJgbI4KplJfyxKWVrBbEL+rePEBqeozJRMT0mBL3ynhvngASBV/XJ+BneLuJN74RjjMzO0gA5ns80mgubQdZAA== dependencies: "@types/webpack" "^4" @@ -3970,35 +3842,30 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.1.5": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" - integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== - "@types/pug@^2.0.4": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.5.tgz#69bc700934dd473c7ab97270bd2dbacefe562231" - integrity sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2" + integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.6" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" + integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/relateurl@*": - version "0.2.29" - resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.29.tgz#68ccecec3d4ffdafb9c577fe764f912afc050fe6" - integrity sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg== + version "0.2.28" + resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" + integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= "@types/resolve@1.17.1": version "1.17.1" @@ -4008,22 +3875,22 @@ "@types/node" "*" "@types/serve-static@*", "@types/serve-static@^1.13.4": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.13.9" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" + integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/sinonjs__fake-timers@^6.0.1": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz#79df6f358ae8f79e628fe35a63608a0ea8e7cf08" - integrity sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g== + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae" + integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg== "@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" + integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== "@types/source-list-map@*": version "0.1.2" @@ -4035,42 +3902,37 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - "@types/tapable@^1", "@types/tapable@^1.0.5": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" + integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== "@types/terser-webpack-plugin@^2.2.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-2.2.3.tgz#53ee74f6c237843ddf98ac409c250226412db85b" - integrity sha512-IqmP1OBzNyx9ZNj/3Svf0QFN+cJUrtECceVLENlXhXX4snmkgxo8n3U3wMJv1c066FXqwP+iorzCZCJhshytsw== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-2.2.2.tgz#7cd355affe6e62c0cbc5d2fc9f30fd440d1c0778" + integrity sha512-cesfeuYsaBJwGVvhJC0b8bgKnsxeNT1MkEpy1BhLrEgi1U1SATenWew2J8vr9aZLRcpf6D3T+ReVtoq0vGswuQ== dependencies: "@types/webpack" "^4" terser "^4.3.9" "@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== + version "3.13.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" + integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== dependencies: source-map "^0.6.1" "@types/webpack-bundle-analyzer@^3.8.0": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.4.tgz#029d31294a3dc36a9d655cf36de30fe9a254e72d" - integrity sha512-I00B3BPLnKArbbLMhocyvY+jEwEAnIWoyPRdWZD+4z6q91dubgLR0czoTdDwfTlmjSfuT5HcMc56b6cCxRKbbQ== + version "3.9.3" + resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.3.tgz#3a12025eb5d86069c30b47a157e62c0aca6e39a1" + integrity sha512-l/vaDMWGcXiMB3CbczpyICivLTB07/JNtn1xebsRXE9tPaUDEHgX3x7YP6jfznG5TOu7I4w0Qx1tZz61znmPmg== dependencies: "@types/webpack" "^4" "@types/webpack-dev-middleware@^3.7.1": - version "3.7.5" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-middleware/-/webpack-dev-middleware-3.7.5.tgz#a5e87668d36b3e8cf2c58a9e27314b7cf0999fce" - integrity sha512-jHcCoRc2Hh6oDozoc27ibKAqrfn8nlewheoFV704EMJqheaOe7HxZZp9Q39bPh2eUDLtEJApLNQy6l20yT/4jA== + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-middleware/-/webpack-dev-middleware-3.7.4.tgz#5190360d93cbfff51ab09167e92ea5f3a0e251dc" + integrity sha512-NV7qwBHYYOxgUo3PB12bBngpW7I4JY2AZTVLszmeNkmGH8DCgBTXKyc9t9KLaaATE07A9bXeJmyHFaE5OiV6mA== dependencies: "@types/connect" "*" "@types/memory-fs" "*" @@ -4078,32 +3940,32 @@ loglevel "^1.6.2" "@types/webpack-hot-middleware@^2.25.3": - version "2.25.5" - resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.5.tgz#b42c7a00fa3e508b3fb9809cd7261f6dbe01355f" - integrity sha512-/eRWWMgZteNzl17qLCRdRmtKPZuWy984b11Igz9+BAU5a99Hc2AJinnMohMPVahGRSHby4XwsnjlgIt9m0Ce3g== + version "2.25.4" + resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#e439e9a3694158badf23b094bc1ad6051767ca05" + integrity sha512-6tQb9EBKIANZYUVLQYWiWfDFVe7FhXSj4bB2EF5QB7VtYWL3HDR+y/zqjZPAnCorv0spLqVMRqjRK8AmhfocMw== dependencies: "@types/connect" "*" "@types/webpack" "^4" "@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4", "@types/webpack@^4.41.17", "@types/webpack@^4.41.8": - version "4.41.30" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" - integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== + version "4.41.27" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" + integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== dependencies: + "@types/anymatch" "*" "@types/node" "*" "@types/tapable" "^1" "@types/uglify-js" "*" "@types/webpack-sources" "*" - anymatch "^3.0.0" source-map "^0.6.0" "@types/websocket@1.0.2": @@ -4114,28 +3976,14 @@ "@types/node" "*" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== "@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + version "13.0.11" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" + integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== dependencies: "@types/yargs-parser" "*" @@ -4144,78 +3992,84 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== -"@types/zen-observable@0.8.3", "@types/zen-observable@^0.8.0": +"@types/zen-observable@0.8.3": version "0.8.3" resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== +"@types/zen-observable@^0.8.0": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" + integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== + "@typescript-eslint/eslint-plugin@^4.15.2": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz#95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa" - integrity sha512-tBgfA3K/3TsZY46ROGvoRxQr1wBkclbVqRQep97MjVHJzcRBURRY3sNFqLk0/Xr//BY5hM9H2p/kp+6qim85SA== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz#3d5f29bb59e61a9dba1513d491b059e536e16dbc" + integrity sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA== dependencies: - "@typescript-eslint/experimental-utils" "4.29.3" - "@typescript-eslint/scope-manager" "4.29.3" - debug "^4.3.1" + "@typescript-eslint/experimental-utils" "4.22.0" + "@typescript-eslint/scope-manager" "4.22.0" + debug "^4.1.1" functional-red-black-tree "^1.0.1" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" + lodash "^4.17.15" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz#68765167cca531178e7b650a53456e6e0bef3b1f" + integrity sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.22.0" + "@typescript-eslint/types" "4.22.0" + "@typescript-eslint/typescript-estree" "4.22.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.15.2": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.22.0.tgz#e1637327fcf796c641fe55f73530e90b16ac8fe8" + integrity sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q== + dependencies: + "@typescript-eslint/scope-manager" "4.22.0" + "@typescript-eslint/types" "4.22.0" + "@typescript-eslint/typescript-estree" "4.22.0" + debug "^4.1.1" -"@typescript-eslint/experimental-utils@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz#52e437a689ccdef73e83c5106b34240a706f15e1" - integrity sha512-ffIvbytTVWz+3keg+Sy94FG1QeOvmV9dP2YSdLFHw/ieLXWCa3U1TYu8IRCOpMv2/SPS8XqhM1+ou1YHsdzKrg== +"@typescript-eslint/scope-manager@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz#ed411545e61161a8d702e703a4b7d96ec065b09a" + integrity sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q== dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.29.3" - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/typescript-estree" "4.29.3" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@typescript-eslint/types" "4.22.0" + "@typescript-eslint/visitor-keys" "4.22.0" -"@typescript-eslint/parser@^4.15.2": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz#2ac25535f34c0e98f50c0e6b28c679c2357d45f2" - integrity sha512-jrHOV5g2u8ROghmspKoW7pN8T/qUzk0+DITun0MELptvngtMrwUJ1tv5zMI04CYVEUsSrN4jV7AKSv+I0y0EfQ== - dependencies: - "@typescript-eslint/scope-manager" "4.29.3" - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/typescript-estree" "4.29.3" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz#497dec66f3a22e459f6e306cf14021e40ec86e19" - integrity sha512-x+w8BLXO7iWPkG5mEy9bA1iFRnk36p/goVlYobVWHyDw69YmaH9q6eA+Fgl7kYHmFvWlebUTUfhtIg4zbbl8PA== - dependencies: - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/visitor-keys" "4.29.3" - -"@typescript-eslint/types@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz#d7980c49aef643d0af8954c9f14f656b7fd16017" - integrity sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg== - -"@typescript-eslint/typescript-estree@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz#1bafad610015c4ded35c85a70b6222faad598b40" - integrity sha512-45oQJA0bxna4O5TMwz55/TpgjX1YrAPOI/rb6kPgmdnemRZx/dB0rsx+Ku8jpDvqTxcE1C/qEbVHbS3h0hflag== - dependencies: - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/visitor-keys" "4.29.3" - debug "^4.3.1" - globby "^11.0.3" +"@typescript-eslint/types@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.22.0.tgz#0ca6fde5b68daf6dba133f30959cc0688c8dd0b6" + integrity sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA== + +"@typescript-eslint/typescript-estree@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz#b5d95d6d366ff3b72f5168c75775a3e46250d05c" + integrity sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg== + dependencies: + "@typescript-eslint/types" "4.22.0" + "@typescript-eslint/visitor-keys" "4.22.0" + debug "^4.1.1" + globby "^11.0.1" is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" + semver "^7.3.2" + tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz#c691760a00bd86bf8320d2a90a93d86d322f1abf" - integrity sha512-MGGfJvXT4asUTeVs0Q2m+sY63UsfnA+C/FDgBKV3itLBmM9H0u+URcneePtkd0at1YELmZK6HSolCqM4Fzs6yA== +"@typescript-eslint/visitor-keys@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz#169dae26d3c122935da7528c839f42a8a42f6e47" + integrity sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw== dependencies: - "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/types" "4.22.0" eslint-visitor-keys "^2.0.0" "@vue-storefront/commercetools-api@~1.2.0": @@ -4238,9 +4092,9 @@ isomorphic-fetch "^2.2.1" "@vue-storefront/theme-utilities@^0.1.3": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@vue-storefront/theme-utilities/-/theme-utilities-0.1.5.tgz#0bab806b79694ec13714ce42f45fc771ea72480c" - integrity sha512-RGFoOIeXWSd7qww1yq+f7DjZ3w/7VNPEWyUNHYYSgicB0+qj4/aJnLVFSh9SjEDqC/fU6sgqPEJHJ785zwe/dg== + version "0.1.3" + resolved "https://registry.yarnpkg.com/@vue-storefront/theme-utilities/-/theme-utilities-0.1.3.tgz#348d825f71281df614e75e30338bb9b24316bd91" + integrity sha512-njMxgitKIYfVNS/2q7TofOJZtTrrySfFZnRTTg4laKzMTC5XGSoWfLSwYboHuBWo8QotZAw16cq+36HLRV507Q== dependencies: chalk "^4.1.0" chokidar "^3.4.3" @@ -4259,9 +4113,9 @@ integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== "@vue/babel-plugin-jsx@^1.0.3": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.6.tgz#184bf3541ab6efdbe5079ab8b20c19e2af100bfb" - integrity sha512-RzYsvBhzKUmY2YG6LoV+W5PnlnkInq0thh1AzCmewwctAgGN6e9UFon6ZrQQV1CO5G5PeME7MqpB+/vvGg0h4g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.4.tgz#077826ca0eccd77cb6ad698254f5821ded5c5189" + integrity sha512-Vu5gsabUdsiWc4vQarg46xWJGs8pMEJyyMQAKA1vO+F4+aR4/jaxWxPCOvZ7XvVyy+ecSbwQp/qIyDVje360UQ== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.0.0" @@ -4286,9 +4140,9 @@ svg-tags "^1.0.0" "@vue/babel-preset-app@^4.1.2": - version "4.5.13" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz#cb475321e4c73f7f110dac29a48c2a9cb80afeb6" - integrity sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw== + version "4.5.12" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.12.tgz#c3a23cf33f6e5ea30536f13c0f9b1fc7e028b1c1" + integrity sha512-8q67ORQ9O0Ms0nlqsXTVhaBefRBaLrzPxOewAZhdcO7onHwcO5/wRdWtHhZgfpCZlhY7NogkU16z3WnorSSkEA== dependencies: "@babel/core" "^7.11.0" "@babel/helper-compilation-targets" "^7.9.6" @@ -4371,15 +4225,15 @@ camelcase "^5.0.0" "@vue/component-compiler-utils@^3.1.0": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460" - integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" + integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== dependencies: consolidate "^0.15.1" hash-sum "^1.0.2" lru-cache "^4.1.2" merge-source-map "^1.1.0" - postcss "^7.0.36" + postcss "^7.0.14" postcss-selector-parser "^6.0.2" source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" @@ -4400,10 +4254,10 @@ dependencies: vue-eslint-parser "^7.0.0" -"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30", "@vue/test-utils@^1.1.3": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.2.2.tgz#0242ea4e202d4853541bb167fead3f2249140ab7" - integrity sha512-P+yiAsszoy8z1TqXiVUnAZaJj0WGGz5fCxm4bOSI6Cpwy1+PNYwYxDv0ROAA/SUtOPppV+aD8tp/QWwxf8ROJw== +"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.4.tgz#a9acb32ea1fa4535b2e1ce5ca100bceb4fade2db" + integrity sha512-9BeL8IqGvJKy553lq/07rhYURQkpS/k+j19rJ/4eDpGJk7z872M0YrBWFhjS14yMKlvYVYOCfWnVIXyrAx0xNw== dependencies: dom-event-types "^1.0.0" lodash "^4.17.15" @@ -4475,13 +4329,20 @@ markdown-it-table-of-contents "^0.4.0" prismjs "^1.13.0" -"@vuepress/plugin-active-header-links@1.8.2": +"@vuepress/plugin-active-header-links@1.8.2", "@vuepress/plugin-active-header-links@^1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.8.2.tgz#0cb9b29c826dd97d35357a9b09c962ef782cb793" integrity sha512-JmXAQg8D7J8mcKe2Ue3BZ9dOCzJMJXP4Cnkkc/IrqfDg0ET0l96gYWZohCqlvRIWt4f0VPiFAO4FLYrW+hko+g== dependencies: lodash.debounce "^4.0.8" +"@vuepress/plugin-back-to-top@^1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-1.8.2.tgz#e9794409d1d589e4952b0700291270d2696e6d01" + integrity sha512-htAf2m8+6cGmYQexWerznGBY10y1E4TBfebYC3Y3wqNjFjvXUmRKcAG/u6Yxvey4OFkQUxbth2ilKi/GlIW8aQ== + dependencies: + lodash.debounce "^4.0.8" + "@vuepress/plugin-last-updated@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.8.2.tgz#7ce689f8d5050cf0213949bc2e5aa879c09ff4b1" @@ -4489,6 +4350,13 @@ dependencies: cross-spawn "^6.0.5" +"@vuepress/plugin-medium-zoom@^1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-1.8.2.tgz#0243dd27edf0c710f9a41a234d253d76ab51e625" + integrity sha512-Mljso/8E6IbNmIKmwKeC6FDfnhKY3fsOUSs5kEGzz3RQwd54eshqHAMRVwW4LZkYZHhwQXF8+qk7YqoMZB7jjg== + dependencies: + medium-zoom "^1.0.4" + "@vuepress/plugin-nprogress@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.8.2.tgz#dc6c082925420c8c59ecb7fc2d4a9401f6d4664a" @@ -4503,7 +4371,7 @@ dependencies: "@vuepress/shared-utils" "1.8.2" -"@vuepress/plugin-search@1.8.2": +"@vuepress/plugin-search@1.8.2", "@vuepress/plugin-search@^1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.8.2.tgz#74b92f663acf6b4560e15dc0442a84c4e874e206" integrity sha512-JrSJr9o0Kar14lVtZ4wfw39pplxvvMh8vDBD9oW09a+6Zi/4bySPGdcdaqdqGW+OHSiZNvG+6uyfKSBBBqF6PA== @@ -4692,11 +4560,11 @@ tslib "^1.9.3" "@wry/context@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" - integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== + version "0.6.0" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.0.tgz#f903eceb89d238ef7e8168ed30f4511f92d83e06" + integrity sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q== dependencies: - tslib "^2.3.0" + tslib "^2.1.0" "@wry/equality@^0.1.2": version "0.1.11" @@ -4706,18 +4574,18 @@ tslib "^1.9.3" "@wry/equality@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" - integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== + version "0.5.1" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.1.tgz#b22e4e1674d7bf1439f8ccdccfd6a785f6de68b0" + integrity sha512-FZKbdpbcVcbDxQrKcaBClNsQaMg9nof1RKM7mReJe5DKUzM5u8S7T+PqwNqvib5O2j2xxF1R4p5O3+b6baTrbw== dependencies: - tslib "^2.3.0" + tslib "^2.1.0" "@wry/trie@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" - integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== + version "0.3.0" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.0.tgz#3245e74988c4e3033299e479a1bf004430752463" + integrity sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug== dependencies: - tslib "^2.3.0" + tslib "^2.1.0" "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -4746,7 +4614,7 @@ JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.0, abab@^2.0.3, abab@^2.0.5: +abab@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== @@ -4779,18 +4647,10 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: version "1.8.2" @@ -4812,9 +4672,9 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" - integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== + version "8.0.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" + integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== acorn@^5.5.3: version "5.7.4" @@ -4831,10 +4691,10 @@ acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.2.4: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.0.4: + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" + integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -4843,13 +4703,6 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -4898,9 +4751,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv uri-js "^4.2.2" ajv@^8.0.1: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" - integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + version "8.1.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" + integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -5011,11 +4864,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -5034,7 +4882,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@~3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -5185,9 +5033,9 @@ arg@^4.1.0: integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== arg@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" - integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== + version "5.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.0.tgz#a20e2bb5710e82950a516b3f933fee5ed478be90" + integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ== argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" @@ -5241,7 +5089,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.1.3: +array-includes@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -5274,7 +5122,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.4: +array.prototype.flat@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -5371,9 +5219,9 @@ async@^2.6.2: lodash "^4.17.14" async@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" - integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== asynckit@^0.4.0: version "0.4.0" @@ -5416,9 +5264,9 @@ autoprefixer@^9.5.1, autoprefixer@^9.6.1: postcss-value-parser "^4.1.0" awesome-phonenumber@^2.51.2: - version "2.58.0" - resolved "https://registry.yarnpkg.com/awesome-phonenumber/-/awesome-phonenumber-2.58.0.tgz#eaa788910b567abd6c1283025bcf491ac5b55d85" - integrity sha512-rsbIn7Htq/QqUfJ7E53oGiGnLca5SUJEshg8zG5h9WK+fTxoGA12/NDKC5eCvkK2eaP8gR/RVA1yuf0Arib7vg== + version "2.51.2" + resolved "https://registrynpm.storefrontcloud.io/awesome-phonenumber/-/awesome-phonenumber-2.51.2.tgz#67bbd899e7583ece38372bb1ee8c8ffb838b251d" + integrity sha512-CPV2WNfop9RTZWAeVAlo3kh9nBlVEPFD8RrJIKGSobnOP501ZWLrSju9zZcPwAlIhMGaLrtHM4Z7EZfyGZHMbQ== aws-sign2@~0.7.0: version "0.7.0" @@ -5450,20 +5298,6 @@ babel-jest@^24.1.0, babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.0.0" -babel-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" - integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== - dependencies: - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.0.6" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - babel-loader@^8.0.4, babel-loader@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -5498,17 +5332,6 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" - test-exclude "^6.0.0" - babel-plugin-jest-hoist@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" @@ -5516,63 +5339,35 @@ babel-plugin-jest-hoist@^24.9.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" - integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +babel-plugin-polyfill-corejs2@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" + integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.2.0" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" - integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" + integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + "@babel/helper-define-polyfill-provider" "^0.2.0" + core-js-compat "^3.9.1" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" + integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.2.0" babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: version "7.0.0-beta.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - babel-preset-fbjs@^3.3.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" @@ -5614,14 +5409,6 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -babel-preset-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" - integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== - dependencies: - babel-plugin-jest-hoist "^27.0.6" - babel-preset-current-node-syntax "^1.0.0" - babelify@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" @@ -5668,9 +5455,9 @@ bcrypt-pbkdf@^1.0.0: tweetnacl "^0.14.3" before-after-hook@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c" + integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw== bezier-easing@2.1.0: version "2.1.0" @@ -5798,7 +5585,7 @@ boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" -boxen@^5.0.1: +boxen@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== @@ -6048,16 +5835,27 @@ browserify@^16.1.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.16.8, browserslist@^4.6.0, browserslist@^4.6.4: - version "4.16.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" - integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== +browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.6.0, browserslist@^4.6.4: + version "4.16.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" + integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + dependencies: + caniuse-lite "^1.0.30001208" + colorette "^1.2.2" + electron-to-chromium "^1.3.712" + escalade "^3.1.1" + node-releases "^1.1.71" + +browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001251" - colorette "^1.3.0" - electron-to-chromium "^1.3.811" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" escalade "^3.1.1" - node-releases "^1.1.75" + node-releases "^1.1.71" bs-logger@0.x: version "0.2.6" @@ -6083,10 +5881,10 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" @@ -6164,9 +5962,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cac@^6.5.6: - version "6.7.3" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768" - integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg== + version "6.7.2" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.2.tgz#e7f0d21f4776c46c7d0de7976e56fa5562e17597" + integrity sha512-w0bH1IF9rEjdi0a6lTtlXYT+vBZEJL9oytaXXRdsD68MH6+SrZGOGsu7s2saHQvYXqwo/wBdkW75tt8wFpj+mw== cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" @@ -6190,11 +5988,10 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: y18n "^4.0.0" cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + version "15.0.6" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" + integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== dependencies: - "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -6270,11 +6067,6 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== -cachedir@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" - integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== - cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -6394,10 +6186,15 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001251: - version "1.0.30001252" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" - integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001205, caniuse-lite@^1.0.30001208: + version "1.0.30001208" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" + integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== + +caniuse-lite@^1.0.30001219: + version "1.0.30001243" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz#d9250155c91e872186671c523f3ae50cfc94a3aa" + integrity sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA== capture-exit@^2.0.0: version "2.0.0" @@ -6439,19 +6236,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -6486,22 +6278,22 @@ chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1, chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: - anymatch "~3.1.2" + anymatch "~3.1.1" braces "~3.0.2" - glob-parent "~5.1.2" + glob-parent "~5.1.0" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.6.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.1" -chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -6526,10 +6318,10 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.0.0, ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +ci-info@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" + integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -6539,11 +6331,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -6633,6 +6420,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clipboard@^2.0.0: + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -6651,15 +6447,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -6720,11 +6507,6 @@ coffeescript@1.12.7: resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -6733,7 +6515,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -6757,26 +6539,26 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" - integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== +color-string@^1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" + color-convert "^1.9.1" + color-string "^1.5.4" -colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" - integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== +colorette@^1.2.1, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== colors@^1.1.2: version "1.4.0" @@ -6843,26 +6625,6 @@ commander@~2.19.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== -commitizen@^4.0.3, commitizen@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.4.tgz#a3e5b36bd7575f6bf6e7aa19dbbf06b0d8f37165" - integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== - dependencies: - cachedir "2.2.0" - cz-conventional-changelog "3.2.0" - dedent "0.7.0" - detect-indent "6.0.0" - find-node-modules "^2.1.2" - find-root "1.1.0" - fs-extra "8.1.0" - glob "7.1.4" - inquirer "6.5.2" - is-utf8 "^0.2.1" - lodash "^4.17.20" - minimist "1.2.5" - strip-bom "4.0.0" - strip-json-comments "3.0.1" - common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -6946,9 +6708,9 @@ condense-newlines@^0.2.1: kind-of "^3.0.2" config-chain@^1.1.11, config-chain@^1.1.12: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -6980,7 +6742,7 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -consola@2.15.3, consola@^2.10.0, consola@^2.10.1, consola@^2.15.0, consola@^2.15.3, consola@^2.6.0, consola@^2.9.0: +consola@2.15.3, consola@^2.10.0, consola@^2.10.1, consola@^2.15.0, consola@^2.15.3, consola@^2.4.0, consola@^2.6.0, consola@^2.9.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== @@ -7017,6 +6779,11 @@ constants-browserify@^1.0.0, constants-browserify@~1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -7029,7 +6796,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.3: +conventional-changelog-angular@^5.0.3: version "5.0.12" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== @@ -7037,15 +6804,6 @@ conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.3: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-conventionalcommits@^4.3.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz#7fc17211dbca160acf24687bd2fdd5fd767750eb" - integrity sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - conventional-changelog-core@^3.1.6: version "3.2.3" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" @@ -7086,11 +6844,6 @@ conventional-changelog-writer@^4.0.6: split "^1.0.0" through2 "^4.0.0" -conventional-commit-types@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" - integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== - conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" @@ -7099,7 +6852,7 @@ conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.3: +conventional-commits-parser@^3.0.3: version "3.2.1" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== @@ -7126,10 +6879,10 @@ conventional-recommended-bump@^5.0.0: meow "^4.0.0" q "^1.5.1" -convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== +convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" @@ -7152,17 +6905,17 @@ cookie-signature@1.0.6: integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie-universal-nuxt@^2.1.3: - version "2.1.5" - resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.5.tgz#669f2ff95b1bc1962c86edd69c954f60729e71e5" - integrity sha512-P0WCTKIyemWNtHi9lxrS5cxZmieOIEjt28B7Alu6cdSB9RqtUtpkqYyV9PRK6oJrT5eIPDYjHsJQlh6SUrFJOg== + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.4.tgz#323f8645501f88cb2422127ad8ba2ee40187b716" + integrity sha512-xbn4Ozs9S0u2+0mQTZRwGlBL9MGNq8N4H6iGfprR5ufZFCS2hGef++3DBHSmHXZi30Wu3Q7RI/GkNMhz3cecmg== dependencies: "@types/cookie" "^0.3.3" - cookie-universal "^2.1.5" + cookie-universal "^2.1.4" -cookie-universal@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/cookie-universal/-/cookie-universal-2.1.5.tgz#9a6cefbfb61c750a1b8ee2610bf71566bd719544" - integrity sha512-nqOOmEkovCQxNYGIyzhcwsmh4c7xnxe7RWdiYFOoml9MP4L32IlU3LdPC7r7nQEnnM+9Uxlk/UhtvBl5is6M/w== +cookie-universal@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookie-universal/-/cookie-universal-2.1.4.tgz#826a273da7eb9b08bfb0139bae12ea70770d564b" + integrity sha512-dwWXs7NGBzaBYDypu3jWH5M3NJW+zu5QdyJkFMHJvhLuyL4/eXG4105fwtTDwfIqyTunwVvQX4PHdtfPDS7URQ== dependencies: "@types/cookie" "^0.3.3" cookie "^0.4.0" @@ -7217,12 +6970,12 @@ copy-webpack-plugin@^5.0.2: serialize-javascript "^4.0.0" webpack-log "^2.0.0" -core-js-compat@^3.1.1, core-js-compat@^3.12.1, core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5: - version "3.16.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.3.tgz#ae12a6e20505a1d79fbd16b6689dfc77fc989114" - integrity sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ== +core-js-compat@^3.1.1, core-js-compat@^3.10.0, core-js-compat@^3.6.5, core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz#62183a3a77ceeffcc420d907a3e6fc67d9b27f1c" + integrity sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg== dependencies: - browserslist "^4.16.8" + browserslist "^4.16.3" semver "7.0.0" core-js@^2.5.3, core-js@^2.6.5: @@ -7231,9 +6984,9 @@ core-js@^2.5.3, core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.0.1, core-js@^3.6.4, core-js@^3.6.5: - version "3.16.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz#1f2d43c51a9ed014cc6c83440af14697ae4b75f2" - integrity sha512-lM3GftxzHNtPNUJg0v4pC2RC6puwMd6VZA7vXUczi+SKmCWSf4JwO89VJGMqbzmB7jlK7B5hr3S64PqwFL49cA== + version "3.10.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.1.tgz#e683963978b6806dcc6c0a4a8bd4ab0bdaf3f21a" + integrity sha512-pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -7270,9 +7023,9 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -7491,7 +7244,7 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^2.0.0: +css-select@^2.0.0, css-select@^2.0.2: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== @@ -7501,15 +7254,15 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" nth-check "^2.0.0" css-tree@1.0.0-alpha.37: @@ -7533,10 +7286,10 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== -css-what@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== css@^2.0.0, css@^2.1.0: version "2.2.4" @@ -7621,7 +7374,7 @@ cssnano-util-same-parent@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== -cssnano@^4.1.10, cssnano@^4.1.11: +cssnano@^4.1.10: version "4.1.11" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== @@ -7638,16 +7391,11 @@ csso@^4.0.2: dependencies: css-tree "^1.1.2" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - cssstyle@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" @@ -7655,13 +7403,6 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -7739,34 +7480,6 @@ cypress@^6.5.0, cypress@^6.6.0: url "^0.11.0" yauzl "^2.10.0" -cz-conventional-changelog@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" - integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" - optionalDependencies: - "@commitlint/load" ">6.1.1" - -cz-conventional-changelog@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" - integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" - optionalDependencies: - "@commitlint/load" ">6.1.1" - dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -7774,11 +7487,6 @@ dargs@^4.0.1: dependencies: number-is-nan "^1.0.0" -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - dash-ast@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" @@ -7800,15 +7508,6 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - dataloader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" @@ -7825,9 +7524,9 @@ dateformat@^3.0.0, dateformat@^3.0.2: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.9.3: - version "1.10.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" - integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== + version "1.10.4" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" + integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== de-indent@^1.0.2: version "1.0.2" @@ -7848,13 +7547,6 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@4, debug@4.3.2, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - debug@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -7862,13 +7554,27 @@ debug@4.1.1: dependencies: ms "^2.1.1" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -7887,11 +7593,6 @@ decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -7911,7 +7612,7 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" -dedent@0.7.0, dedent@^0.7.0: +dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= @@ -8012,16 +7713,6 @@ defu@^3.2.2: resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== -defu@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/defu/-/defu-4.0.1.tgz#9d7d7a48f9295f08285d153dcff174c89b9bcb22" - integrity sha512-lC+G0KvvWRbisQa50+iFelm3/eMmwo4IlBmfASOVlw9MZpHHyQeVsZxc5j23+TQy5ydgEoTVSrWl7ptou1kzJQ== - -defu@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.0.tgz#5768f0d402a555bfc4c267246b20f82ce8b5a10b" - integrity sha512-VHg73EDeRXlu7oYWRmmrNp/nl7QkdXUxkQQKig0Zk8daNmm84AbGoC8Be6/VVLJEKxn12hR0UBmz8O+xQiAPKQ== - del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -8040,6 +7731,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -8083,16 +7779,6 @@ destroy@^1.0.4, destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -8103,15 +7789,10 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== detective@^5.2.0: version "5.2.0" @@ -8140,16 +7821,6 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff-sequences@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" - integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== - diff3@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/diff3/-/diff3-0.0.3.tgz#d4e5c3a4cdf4e5fe1211ab42e693fcb4321580fc" @@ -8194,9 +7865,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -8221,12 +7892,13 @@ docsearch.js@^2.5.2: to-factory "^1.0.0" zepto "^1.2.0" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" + isarray "^1.0.0" doctrine@^3.0.0: version "3.0.0" @@ -8235,7 +7907,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-converter@^0.2.0: +dom-converter@^0.2: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== @@ -8256,12 +7928,12 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== dependencies: domelementtype "^2.0.1" - domhandler "^4.2.0" + domhandler "^4.0.0" entities "^2.0.0" dom-walk@^0.1.0: @@ -8274,7 +7946,7 @@ domain-browser@^1.1.1, domain-browser@^1.2.0: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: +domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -8291,21 +7963,21 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: - webidl-conversions "^5.0.0" + domelementtype "1" -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" - integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== +domhandler@^4.0.0, domhandler@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" + integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== dependencies: domelementtype "^2.2.0" -domutils@^1.7.0: +domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== @@ -8313,14 +7985,14 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.5.2, domutils@^2.6.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" - integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== +domutils@^2.4.3: + version "2.5.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.2.tgz#37ef8ba087dff1a17175e7092e8a042e4b050e6c" + integrity sha512-MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" - domhandler "^4.2.0" + domhandler "^4.1.0" dot-case@^3.0.4: version "3.0.4" @@ -8344,10 +8016,10 @@ dot-prop@^5.1.0, dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dotenv@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" - integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" @@ -8411,10 +8083,15 @@ ejs@^3.0.2, ejs@^3.1.5: dependencies: jake "^10.6.1" -electron-to-chromium@^1.3.811: - version "1.3.820" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.820.tgz#3b2672b59ed17847ed19f1281547f37bbfda87bb" - integrity sha512-5cFwDmo2yzEA9hn55KZ9+cX/b6DSFvpKz8Hb2fiDmriXWB+DBoXKXmncQwNRFBBTlUdsvPHCoy594OoMLAO0Tg== +electron-to-chromium@^1.3.712: + version "1.3.717" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" + integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== + +electron-to-chromium@^1.3.723: + version "1.3.771" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz#c4aa601e6420e11926095f75fe803956a1b4bd81" + integrity sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA== elegant-spinner@^1.0.1: version "1.0.1" @@ -8434,11 +8111,6 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -8494,16 +8166,16 @@ enquirer@^2.3.5, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -8548,10 +8220,10 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" - integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== +es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -8559,17 +8231,16 @@ es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es- get-intrinsic "^1.1.1" has "^1.0.3" has-symbols "^1.0.2" - internal-slot "^1.0.3" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.11.0" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + unbox-primitive "^1.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -8617,11 +8288,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -8634,37 +8300,25 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-config-standard@^16.0.2: - version "16.0.3" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" - integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== + version "16.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6" + integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw== -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== dependencies: - debug "^3.2.7" - resolve "^1.20.0" + debug "^2.6.9" + resolve "^1.13.1" -eslint-module-utils@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" - integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: - debug "^3.2.7" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: @@ -8676,25 +8330,23 @@ eslint-plugin-es@^3.0.0: regexpp "^3.0.0" eslint-plugin-import@^2.22.1: - version "2.24.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" - integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== dependencies: - array-includes "^3.1.3" - array.prototype.flat "^1.2.4" + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.6.2" - find-up "^2.0.0" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" has "^1.0.3" - is-core-module "^2.6.0" minimatch "^3.0.4" - object.values "^1.1.4" - pkg-up "^2.0.0" - read-pkg-up "^3.0.0" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -8719,14 +8371,14 @@ eslint-plugin-standard@^5.0.0: integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== eslint-plugin-vue@^7.6.0: - version "7.17.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.17.0.tgz#41e0bdb5effca5ee26f087f924be987eb41ef573" - integrity sha512-Rq5R2QetDCgC+kBFQw1+aJ5B93tQ4xqZvoCUxuIzwTonngNArsdP8ChM8PowIzsJvRtWl4ltGh/bZcN3xhFWSw== + version "7.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.9.0.tgz#f8e83a2a908f4c43fc8304f5401d4ff671f3d560" + integrity sha512-2Q0qQp5+5h+pZvJKCbG1/jCRUYrdgAz5BYKGyTlp2NU8mx09u3Hp7PsH6d5qef6ojuPoCXMnrbbDxeoplihrSw== dependencies: eslint-utils "^2.1.0" natural-compare "^1.4.0" - semver "^6.3.0" - vue-eslint-parser "^7.10.0" + semver "^7.3.2" + vue-eslint-parser "^7.6.0" eslint-scope@^4.0.3: version "4.0.3" @@ -8736,7 +8388,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -8751,48 +8403,38 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== eslint@^7.20.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.24.0.tgz#2e44fa62d93892bfdb100521f17345ba54b8513a" + integrity sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" + "@eslint/eslintrc" "^0.4.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" - escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" - fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" + glob-parent "^5.0.0" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -8801,7 +8443,7 @@ eslint@^7.20.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash.merge "^4.6.2" + lodash "^4.17.21" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -8810,7 +8452,7 @@ eslint@^7.20.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.9" + table "^6.0.4" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -8975,9 +8617,9 @@ execa@^4.0.2, execa@^4.1.0: strip-final-newline "^2.0.0" execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.0" @@ -9024,13 +8666,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -9043,18 +8678,6 @@ expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" -expect@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" - integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== - dependencies: - "@jest/types" "^27.0.6" - ansi-styles "^5.0.0" - jest-get-type "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" - express@^4.16.3, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -9176,7 +8799,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -9194,15 +8817,16 @@ fast-glob@^2.2.6: micromatch "^3.1.10" fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" + glob-parent "^5.1.0" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -9215,21 +8839,21 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-safe-stringify@^2.0.7: - version "2.0.8" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" - integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== dependencies: reusify "^1.0.4" faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" @@ -9285,7 +8909,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: +figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -9385,19 +9009,6 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-node-modules@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.2.tgz#57565a3455baf671b835bc6b2134a9b938b9c53c" - integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== - dependencies: - findup-sync "^4.0.0" - merge "^2.1.0" - -find-root@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -9443,16 +9054,6 @@ find-versions@^4.0.0: dependencies: semver-regex "^3.1.2" -findup-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" - integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^4.0.2" - resolve-dir "^1.0.1" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -9467,9 +9068,9 @@ flat@^5.0.0: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flatten@^1.0.2: version "1.0.3" @@ -9485,9 +9086,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" - integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== for-each@^0.3.3: version "0.3.3" @@ -9512,9 +9113,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= fork-ts-checker-webpack-plugin@^6.1.1: - version "6.3.2" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.3.2.tgz#96555f9f05c1cf44af3aef7db632489a3b6ff085" - integrity sha512-L3n1lrV20pRa7ocAuM2YW4Ux1yHM8+dV4shqPdHf1xoeG5KQhp3o0YySvNsBKBISQOCN4N2Db9DV4xYN6xXwyQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.1.tgz#e3a7e64c90e5490a75d43d86d47f02e538c0a13e" + integrity sha512-Pyhn2kav/Y2g6I7aInABgcph/B78jjdXc4kGHzaAUBL4UVthknxM6aMH47JwpnuTJmdOuf6p5vMbIahsBHuWGg== dependencies: "@babel/code-frame" "^7.8.3" "@types/json-schema" "^7.0.5" @@ -9523,7 +9124,6 @@ fork-ts-checker-webpack-plugin@^6.1.1: cosmiconfig "^6.0.0" deepmerge "^4.2.2" fs-extra "^9.0.0" - glob "^7.1.6" memfs "^3.1.2" minimatch "^3.0.4" schema-utils "2.7.0" @@ -9539,15 +9139,6 @@ form-data@4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -9557,10 +9148,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: version "0.2.1" @@ -9601,15 +9192,6 @@ fs-extra@9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.0, fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -9634,7 +9216,7 @@ fs-memo@^1.2.0: resolved "https://registry.yarnpkg.com/fs-memo/-/fs-memo-1.2.0.tgz#a2ec3be606b902077adbb37ec529c5ec5fb2e037" integrity sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w== -fs-minipass@^1.2.7: +fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== @@ -9676,7 +9258,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -9742,12 +9324,12 @@ get-assigned-identifiers@^1.2.0: resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -9761,11 +9343,6 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -9777,10 +9354,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-port-please@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.2.0.tgz#3fabbbe2f9d8e6b7c47e1cddd71fc4c593f1deac" - integrity sha512-1c7Np/cpA7XCB6IrPAdaBaJjlGHTqg4P82h/ZqyBL6dCdwRzZBOFGZO7FL2KaZ2uNvD6v8QilA7LZwMpmIggDQ== +get-port-please@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-1.1.0.tgz#7a60007578df6c4570c233803b48854c44db41f7" + integrity sha512-C9adQpQ9uyboxURlYAVcqvKdnrZ0uIad6lAZzIr51G5shhUFcZUwl8rxY0B0hB6OJytBNzPB1Uj/S1CpP9aFzQ== dependencies: fs-memo "^1.2.0" @@ -9848,17 +9425,6 @@ git-raw-commits@2.0.0: split2 "^2.0.0" through2 "^2.0.0" -git-raw-commits@^2.0.0: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" @@ -9876,17 +9442,17 @@ git-semver-tags@^2.0.3: semver "^6.0.0" git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" + integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== dependencies: is-ssh "^1.3.0" - parse-url "^6.0.0" + parse-url "^5.0.0" -git-url-parse@^11.1.2, git-url-parse@^11.4.4: - version "11.5.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.5.0.tgz#acaaf65239cb1536185b19165a24bbc754b3f764" - integrity sha512-TZYSMDeM37r71Lqg1mbnMlOqlHd7BSij9qN7XwTkRqSAYFMihGLGhfHwgqQob3GUhEneKnV4nskN9rbQw2KGxA== +git-url-parse@^11.1.2, git-url-parse@^11.4.3: + version "11.4.4" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.4.4.tgz#5d747debc2469c17bc385719f7d0427802d83d77" + integrity sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw== dependencies: git-up "^4.0.0" @@ -9897,7 +9463,7 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -glob-all@^3.1.0, glob-all@^3.2.1: +glob-all@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.2.1.tgz#082ca81afd2247cbd3ed2149bb2630f4dc877d95" integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw== @@ -9913,7 +9479,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -9925,22 +9491,10 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -9949,13 +9503,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - global-dirs@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" @@ -9963,26 +9510,6 @@ global-dirs@^2.0.1: dependencies: ini "1.3.7" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - global@^4.3.2: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -9996,14 +9523,21 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" - integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^13.6.0: + version "13.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" + integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== dependencies: type-fest "^0.20.2" -globby@11.0.3: +globby@11.0.3, globby@^11.0.1, globby@^11.0.3: version "11.0.3" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== @@ -10015,18 +9549,6 @@ globby@11.0.3: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -10065,14 +9587,21 @@ globby@^9.2.0: slash "^2.0.0" globule@^1.0.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" - integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== + version "1.3.2" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== dependencies: glob "~7.1.1" lodash "~4.17.10" minimatch "~3.0.2" +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -10091,17 +9620,29 @@ got@^9.6.0: url-parse-lax "^3.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -graphql-tag@^2.10.1, graphql-tag@^2.12.0, graphql-tag@^2.12.3, graphql-tag@^2.12.5, graphql-tag@^2.2.2: +graphql-tag@^2.10.1, graphql-tag@^2.12.3, graphql-tag@^2.12.5: version "2.12.5" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== dependencies: tslib "^2.1.0" +graphql-tag@^2.12.0: + version "2.12.3" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.3.tgz#ac47bf9d51c67c68ada8a33fd527143ed15bb647" + integrity sha512-5wJMjSvj30yzdciEuk9dPuUBUR56AqDi3xncoYQl1i42pGdSqOJrJsdb/rz5BDoy+qoGvQwABcBeF0xXY3TrKw== + dependencies: + tslib "^2.1.0" + +graphql-tag@^2.2.2: + version "2.11.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== + graphql-tools@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-7.0.5.tgz#63e322d4fa64ef9a7331be837a4f39b374d52d66" @@ -10153,11 +9694,11 @@ graphql@^15.5.1: integrity sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw== gray-matter@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + version "4.0.2" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" + integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== dependencies: - js-yaml "^3.13.1" + js-yaml "^3.11.0" kind-of "^6.0.2" section-matter "^1.0.0" strip-bom-string "^1.0.0" @@ -10197,7 +9738,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.7.6: +handlebars@^4.7.6, handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -10273,13 +9814,6 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -10397,13 +9931,6 @@ hoist-non-react-statics@^3.3.2: dependencies: react-is "^16.7.0" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -10444,16 +9971,9 @@ hsla-regex@^1.0.0: html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: - whatwg-encoding "^1.0.5" + whatwg-encoding "^1.0.1" html-entities@^1.2.0, html-entities@^1.3.1: version "1.4.0" @@ -10534,15 +10054,17 @@ htmlescape@^1.1.0: resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== +htmlparser2@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" http-cache-semantics@^3.8.1: version "3.8.1" @@ -10604,15 +10126,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -10654,14 +10167,6 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -10703,9 +10208,9 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -10732,9 +10237,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" @@ -10793,11 +10298,6 @@ import-from@3.0.0: dependencies: resolve-from "^5.0.0" -import-from@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" - integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== - import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -10823,14 +10323,6 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -10922,7 +10414,7 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" -inquirer@6.5.2, inquirer@^6.2.0: +inquirer@^6.2.0: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== @@ -10984,15 +10476,6 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -11040,12 +10523,11 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bind "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -11058,11 +10540,9 @@ is-arrayish@^0.3.1: integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== is-binary-path@^1.0.0: version "1.0.1" @@ -11079,12 +10559,11 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bind "^1.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" @@ -11092,9 +10571,9 @@ is-buffer@^1.1.0, is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-ci@^1.1.0: version "1.2.1" @@ -11110,13 +10589,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== - dependencies: - ci-info "^3.1.1" - is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -11129,10 +10601,17 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== +is-core-module@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== + dependencies: + has "^1.0.3" + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== dependencies: has "^1.0.3" @@ -11151,11 +10630,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-descriptor@^0.1.0: version "0.1.6" @@ -11180,7 +10657,7 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-docker@^2.2.1: +is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -11248,11 +10725,6 @@ is-https@^3.0.2: resolved "https://registry.yarnpkg.com/is-https/-/is-https-3.0.2.tgz#4d24e002e47edd3f1b07f14bc722433354ccba49" integrity sha512-jFgAKhbNF7J+lTMJxbq5z9bf1V9f8rXn9mP5RSY2GUEW5M0nOiVhVC9dNra96hQDjGpNzskIzusUnXwngqmhAA== -is-https@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-https/-/is-https-4.0.0.tgz#9ee725a334fb517b988278d2674efc96e4f348ed" - integrity sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg== - is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -11277,11 +10749,9 @@ is-npm@^4.0.0: integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -11353,11 +10823,6 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - is-promise@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -11368,13 +10833,13 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4, is-regex@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== dependencies: call-bind "^1.0.2" - has-tostringtag "^1.0.0" + has-symbols "^1.0.1" is-regexp@^1.0.0: version "1.0.0" @@ -11387,9 +10852,9 @@ is-resolvable@^1.0.0: integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" + integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== dependencies: protocols "^1.1.0" @@ -11399,23 +10864,21 @@ is-stream@^1.0.1, is-stream@^1.1.0: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.1" is-text-path@^1.0.1: version "1.0.1" @@ -11434,7 +10897,7 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-utf8@^0.2.0, is-utf8@^0.2.1: +is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= @@ -11444,7 +10907,7 @@ is-whitespace@^0.3.0: resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -11503,9 +10966,9 @@ isomorphic-fetch@^3.0.0: whatwg-fetch "^3.4.1" isomorphic-git@^1.9.2: - version "1.10.0" - resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.10.0.tgz#59a4604d1190d1e7fc52172085da25e6a428bc07" - integrity sha512-CijspEYaOQAnsHWXyq8ICZXzLJ/1wYQAa0jdfLcugA/68oNzrxykjGZz8Up7B8huA1VfkFHm4VviExtj/zpViw== + version "1.9.2" + resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.9.2.tgz#0e492dbcd9873070b2a57eef257a45b90020ed72" + integrity sha512-puCXcGgtkDXdMYLZlAEGbpkbmHn/Q4Lsl2uMFwMLOKmmr8Qe7Fe3+c6k2+aHW3rMdJYg9xTv95BJ+PRzR8Ydww== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" @@ -11534,11 +10997,6 @@ istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" @@ -11552,16 +11010,6 @@ istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - istanbul-lib-report@^2.0.4: version "2.0.8" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" @@ -11571,15 +11019,6 @@ istanbul-lib-report@^2.0.4: make-dir "^2.1.0" supports-color "^6.1.0" -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - istanbul-lib-source-maps@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" @@ -11591,15 +11030,6 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - istanbul-reports@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" @@ -11607,14 +11037,6 @@ istanbul-reports@^2.2.6: dependencies: html-escaper "^2.0.0" -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - iterall@^1.2.1, iterall@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" @@ -11649,40 +11071,6 @@ jest-changed-files@^24.9.0: execa "^1.0.0" throat "^4.0.0" -jest-changed-files@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" - integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== - dependencies: - "@jest/types" "^27.0.6" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" - integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.0.6" - is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - jest-cli@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" @@ -11702,24 +11090,6 @@ jest-cli@^24.9.0: realpath-native "^1.1.0" yargs "^13.3.0" -jest-cli@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" - integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== - dependencies: - "@jest/core" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - prompts "^2.0.1" - yargs "^16.0.3" - jest-config@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" @@ -11743,34 +11113,7 @@ jest-config@^24.9.0: pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-config@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" - integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.6" - "@jest/types" "^27.0.6" - babel-jest "^27.0.6" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - is-ci "^3.0.0" - jest-circus "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-get-type "^27.0.6" - jest-jasmine2 "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runner "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - micromatch "^4.0.4" - pretty-format "^27.0.6" - -jest-diff@^24.9.0: +jest-diff@^24.3.0, jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== @@ -11780,26 +11123,6 @@ jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" - integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -11807,13 +11130,6 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-docblock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" - integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== - dependencies: - detect-newline "^3.0.0" - jest-each@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" @@ -11825,17 +11141,6 @@ jest-each@^24.9.0: jest-util "^24.9.0" pretty-format "^24.9.0" -jest-each@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" - integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== - dependencies: - "@jest/types" "^27.0.6" - chalk "^4.0.0" - jest-get-type "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - jest-environment-jsdom@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" @@ -11848,19 +11153,6 @@ jest-environment-jsdom@^24.9.0: jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-jsdom@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" - integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" - jsdom "^16.6.0" - jest-environment-node@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" @@ -11872,33 +11164,11 @@ jest-environment-node@^24.9.0: jest-mock "^24.9.0" jest-util "^24.9.0" -jest-environment-node@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" - integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" - jest-get-type@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-get-type@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" - integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== - jest-haste-map@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" @@ -11918,26 +11188,6 @@ jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" -jest-haste-map@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" - integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== - dependencies: - "@jest/types" "^27.0.6" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.0.6" - jest-serializer "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - jest-jasmine2@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" @@ -11960,30 +11210,6 @@ jest-jasmine2@^24.9.0: pretty-format "^24.9.0" throat "^4.0.0" -jest-jasmine2@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" - integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.0.6" - is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - throat "^6.0.1" - jest-leak-detector@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" @@ -11992,14 +11218,6 @@ jest-leak-detector@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-leak-detector@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" - integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== - dependencies: - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - jest-matcher-utils@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" @@ -12010,16 +11228,6 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-matcher-utils@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" - integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== - dependencies: - chalk "^4.0.0" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -12034,21 +11242,6 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-message-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" - integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.0.6" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.0.6" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -12056,15 +11249,7 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-mock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" - integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== - dependencies: - "@jest/types" "^27.0.6" - "@types/node" "*" - -jest-pnp-resolver@^1.2.1, jest-pnp-resolver@^1.2.2: +jest-pnp-resolver@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== @@ -12074,11 +11259,6 @@ jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-regex-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" - integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== - jest-resolve-dependencies@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" @@ -12088,15 +11268,6 @@ jest-resolve-dependencies@^24.9.0: jest-regex-util "^24.3.0" jest-snapshot "^24.9.0" -jest-resolve-dependencies@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" - integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== - dependencies: - "@jest/types" "^27.0.6" - jest-regex-util "^27.0.6" - jest-snapshot "^27.0.6" - jest-resolve@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" @@ -12108,21 +11279,6 @@ jest-resolve@^24.9.0: jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-resolve@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" - integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== - dependencies: - "@jest/types" "^27.0.6" - chalk "^4.0.0" - escalade "^3.1.1" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^27.0.6" - jest-validate "^27.0.6" - resolve "^1.20.0" - slash "^3.0.0" - jest-runner@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" @@ -12148,34 +11304,6 @@ jest-runner@^24.9.0: source-map-support "^0.5.6" throat "^4.0.0" -jest-runner@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" - integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-haste-map "^27.0.6" - jest-leak-detector "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runtime "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - source-map-support "^0.5.6" - throat "^6.0.1" - jest-runtime@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" @@ -12205,51 +11333,11 @@ jest-runtime@^24.9.0: strip-bom "^3.0.0" yargs "^13.3.0" -jest-runtime@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" - integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/globals" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.0.3" - jest-serializer@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-serializer@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" - integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - jest-snapshot@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" @@ -12269,36 +11357,6 @@ jest-snapshot@^24.9.0: pretty-format "^24.9.0" semver "^6.2.0" -jest-snapshot@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" - integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.0.6" - graceful-fs "^4.2.4" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - jest-haste-map "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - natural-compare "^1.4.0" - pretty-format "^27.0.6" - semver "^7.3.2" - jest-transform-graphql@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz#903cb66bb27bc2772fd3e5dd4f7e9b57230f5829" @@ -12322,18 +11380,6 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-util@^27.0.0, jest-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" - integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== - dependencies: - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^3.0.0" - picomatch "^2.2.3" - jest-validate@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" @@ -12346,18 +11392,6 @@ jest-validate@^24.9.0: leven "^3.1.0" pretty-format "^24.9.0" -jest-validate@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" - integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== - dependencies: - "@jest/types" "^27.0.6" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.0.6" - leven "^3.1.0" - pretty-format "^27.0.6" - jest-watcher@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" @@ -12371,19 +11405,6 @@ jest-watcher@^24.9.0: jest-util "^24.9.0" string-length "^2.0.0" -jest-watcher@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" - integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== - dependencies: - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.0.6" - string-length "^4.0.1" - jest-worker@^24.6.0, jest-worker@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -12401,16 +11422,7 @@ jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^24.1.0: +jest@^24.1.0, jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== @@ -12418,24 +11430,15 @@ jest@^24.1.0: import-local "^2.0.0" jest-cli "^24.9.0" -jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" - integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== - dependencies: - "@jest/core" "^27.0.6" - import-local "^3.0.2" - jest-cli "^27.0.6" - jimp-compact@^0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== -jiti@^1.9.2: - version "1.11.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.11.0.tgz#64120a30d97b9bf37b8b032cf4564dfadc28984c" - integrity sha512-/2c7e61hxxTIN34UeHBB0LCJ5Tq64kgJDV7GR+++e8XRxCKRIKmB8tH6ww1W+Z6Kgd6By+C3RSCu1lXjbPT68A== +jiti@^1.3.0, jiti@^1.6.4: + version "1.9.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.9.1.tgz#d9e267fa050ddc52191f17d8af815d49a38ebafd" + integrity sha512-AhYrAxJ/IW2257nHkJasUjtxHhmYIUEHEjsofJtGYsPWk8pTjqjbPFlJfOwfY+WX8YBiKHM1l0ViDC/mye2SWg== jju@~1.4.0: version "1.4.0" @@ -12448,13 +11451,14 @@ js-base64@^2.1.8: integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== js-beautify@^1.6.12: - version "1.14.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" - integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== + version "1.13.11" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.11.tgz#3fc59d74d4fcb03268a559220da26f5d8a2d5246" + integrity sha512-+3CW1fQqkV7aXIvprevNYfSrKrASQf02IstAZCVSNh+/IS5ciaOtE7erfjyowdMYZZmP2A7SMFkcJ28qCl84+A== dependencies: config-chain "^1.1.12" editorconfig "^0.15.3" glob "^7.1.3" + mkdirp "^1.0.4" nopt "^5.0.0" js-cookie@^2.2.1: @@ -12462,11 +11466,6 @@ js-cookie@^2.2.1: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== -js-cookie@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.0.tgz#db1661d5459920ec95aaf186ccf74ceb4a495164" - integrity sha512-oUbbplKuH07/XX2YD2+Q+GMiPpnVXaRz8npE7suhBH9QEkJe2W7mQ6rwuMXHue3fpfcftQwzgyvGzIHyfCSngQ== - js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -12477,7 +11476,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: +js-yaml@^3.11.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -12498,11 +11497,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom-global@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" - integrity sha1-a9KZwTsMRiay2iwDk81DhdYGrLk= - jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -12535,39 +11529,6 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -12892,12 +11853,14 @@ listr-verbose-renderer@^0.5.0: figures "^2.0.0" listr2@^3.2.2: - version "3.11.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" - integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== + version "3.6.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.6.2.tgz#7260159f9108523eaa430d4a674db65b6c2d08cc" + integrity sha512-B2vlu7Zx/2OAMVUovJ7Tv1kQ2v2oXd0nZKzkSAcRCej269d8gkS/gupDEdNl23KQ3ZjVD8hQmifrrBFbx8F9LA== dependencies: + chalk "^4.1.0" cli-truncate "^2.1.0" - colorette "^1.2.2" + figures "^3.2.0" + indent-string "^4.0.0" log-update "^4.0.0" p-map "^4.0.0" rxjs "^6.6.7" @@ -12930,6 +11893,16 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -13049,6 +12022,11 @@ lodash.defaultsdeep@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + lodash.get@^4.0.0, lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -13089,12 +12067,7 @@ lodash.kebabcase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= -lodash.map@^4.5.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.memoize@^4.1.2: +lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -13159,7 +12132,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.21, lodash@4.x, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.7.0, lodash@~4.17.10, lodash@~4.17.15: +lodash@4.17.21, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -13203,11 +12176,6 @@ loglevel@^1.6.2, loglevel@^1.6.7, loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -longest@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" - integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= - loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -13268,9 +12236,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" macos-release@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" - integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== + version "2.4.1" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" + integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== magic-string@^0.25.7: version "0.25.7" @@ -13431,15 +12399,20 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" - integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== +medium-zoom@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" + integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== + +mem@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.0.tgz#445e47827fb757a4e5f35b0a6a62743cbfdc0a0d" + integrity sha512-FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA== dependencies: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" -memfs@^3.1.2, memfs@^3.2.2: +memfs@^3.1.2, memfs@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== @@ -13530,12 +12503,7 @@ merge-stream@^2.0.0: merge2@^1.2.3, merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -merge@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" - integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== meros@1.1.4: version "1.1.4" @@ -13566,7 +12534,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.0, micromatch@^4.0.2: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -13582,17 +12550,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== +mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== dependencies: - mime-db "1.49.0" + mime-db "1.47.0" mime@1.6.0: version "1.6.0" @@ -13685,7 +12653,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -13718,7 +12686,7 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0: +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -13733,7 +12701,7 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.3.3: +minizlib@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== @@ -13794,7 +12762,7 @@ mkdirp@0.3.0: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -13956,14 +12924,14 @@ mz@^2.5.0: thenify-all "^1.0.0" nan@^2.12.1, nan@^2.13.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.23: - version "3.1.25" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== +nanoid@^3.1.20: + version "3.1.22" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" + integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== nanomatch@^1.2.9: version "1.2.13" @@ -14079,12 +13047,12 @@ node-gyp@^5.0.2: tar "^4.4.12" which "^1.3.1" -node-html-parser@^3.2.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.3.6.tgz#fdbb3ba16d1252d7197ec39f0260d9c10ef33590" - integrity sha512-VkWDHvNgFGB3mbQGMyzqRE1i/BG7TKX9wRXC8e/v8kL0kZR/Oy6RjYxXH91K6/+m3g8iQ8dTqRy75lTYoA2Cjg== +node-html-parser@^3.1.2: + version "3.1.5" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.1.5.tgz#ffb62f2a336b6b634f41f3315487fe446fb9d7b5" + integrity sha512-/XKKdWbSUymlXTjtNBcDlmM7Jp8S/BqGMzLx7r2bd2NMjTXz+ofuLcz0Bl3VT0vTvVzF+N511FNLrZt4HVitXA== dependencies: - css-select "^4.1.3" + css-select "^3.1.2" he "1.2.0" node-int64@^0.4.0: @@ -14142,10 +13110,10 @@ node-object-hash@^1.2.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== -node-releases@^1.1.75: - version "1.1.75" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" - integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== +node-releases@^1.1.71: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== node-res@^5.0.1: version "5.0.1" @@ -14221,12 +13189,12 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package- validate-npm-package-license "^3.0.1" normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699" + integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg== dependencies: hosted-git-info "^4.0.1" - is-core-module "^2.5.0" + resolve "^1.20.0" semver "^7.3.4" validate-npm-package-license "^3.0.1" @@ -14266,30 +13234,20 @@ normalize-url@^2.0.1: query-string "^5.0.1" sort-keys "^2.0.0" -normalize-url@^3.0.0: +normalize-url@^3.0.0, normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -nouislider@^15.2.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-15.4.0.tgz#ac0d988e9ba59366062e5712e7cd37eb2e48630d" - integrity sha512-AV7UMhGhZ4Mj6ToMT812Ib8OJ4tAXR2/Um7C4l4ZvvsqujF0WpQTpqqHJ+9xt4174R7ueQOUrBR4yakJpAIPCA== + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== npm-bundled@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== dependencies: npm-normalize-package-bin "^1.0.1" @@ -14399,22 +13357,21 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nuxt-i18n@^6.5.0: - version "6.28.1" - resolved "https://registry.yarnpkg.com/nuxt-i18n/-/nuxt-i18n-6.28.1.tgz#63e3e809fa41d855c5c7c443c0074eecaa97d273" - integrity sha512-JKRs8AmixVZ7k90Rrwq468McfnInP1ymuejYHRGA4VV0nZCLYsdDQXZxXl3JXaER9VatM9C24GM3ArAYFOtUhg== + version "6.25.0" + resolved "https://registry.yarnpkg.com/nuxt-i18n/-/nuxt-i18n-6.25.0.tgz#d5b2c0be368012bd7d691283a38fec38030aa89b" + integrity sha512-x9rVDPnrQyB2TrdLuwkgNGMi+a03Xo7Vp3uXq1c5sCY0AREHGTsVXjLqdJULt2hXofaF2a6I1CLgN6g9+Cv/3g== dependencies: - "@babel/parser" "^7.14.9" - "@babel/traverse" "^7.14.9" + "@babel/parser" "^7.13.15" + "@babel/traverse" "^7.13.15" "@intlify/vue-i18n-extensions" "^1.0.2" "@intlify/vue-i18n-loader" "^1.1.0" cookie "^0.4.1" devalue "^2.0.1" - is-https "^4.0.0" - js-cookie "^3.0.0" + js-cookie "^2.2.1" klona "^2.0.4" lodash.merge "^4.6.2" - ufo "^0.7.7" - vue-i18n "^8.25.0" + ufo "^0.6.11" + vue-i18n "^8.24.3" nuxt-purgecss@^1.0.0: version "1.0.0" @@ -14428,27 +13385,27 @@ nuxt-purgecss@^1.0.0: purgecss-webpack-plugin "^2.0.5" nuxt@^2.13.3: - version "2.15.8" - resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.15.8.tgz#946cba46bdaaf0e3918aa27fd9ea0fed8ed303b0" - integrity sha512-ceK3qLg/Baj7J8mK9bIxqw9AavrF+LXqwYEreBdY/a4Sj8YV4mIvhqea/6E7VTCNNGvKT2sJ/TTJjtfQ597lTA== - dependencies: - "@nuxt/babel-preset-app" "2.15.8" - "@nuxt/builder" "2.15.8" - "@nuxt/cli" "2.15.8" - "@nuxt/components" "^2.1.8" - "@nuxt/config" "2.15.8" - "@nuxt/core" "2.15.8" - "@nuxt/generator" "2.15.8" + version "2.15.4" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.15.4.tgz#5e2b441acec7344a1124bb550904b5576c850cef" + integrity sha512-o11VE61EwLj05PBPUN5RlDpaFb7vKbg3d5c+gfLi0gLVMpLUmjksRVTLzE9Ie8MB/TEnipy5BkhxMNppy0FKVg== + dependencies: + "@nuxt/babel-preset-app" "2.15.4" + "@nuxt/builder" "2.15.4" + "@nuxt/cli" "2.15.4" + "@nuxt/components" "^2.1.4" + "@nuxt/config" "2.15.4" + "@nuxt/core" "2.15.4" + "@nuxt/generator" "2.15.4" "@nuxt/loading-screen" "^2.0.3" "@nuxt/opencollective" "^0.3.2" - "@nuxt/server" "2.15.8" + "@nuxt/server" "2.15.4" "@nuxt/telemetry" "^1.3.3" - "@nuxt/utils" "2.15.8" - "@nuxt/vue-app" "2.15.8" - "@nuxt/vue-renderer" "2.15.8" - "@nuxt/webpack" "2.15.8" + "@nuxt/utils" "2.15.4" + "@nuxt/vue-app" "2.15.4" + "@nuxt/vue-renderer" "2.15.4" + "@nuxt/webpack" "2.15.4" -nwsapi@^2.0.7, nwsapi@^2.2.0: +nwsapi@^2.0.7: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== @@ -14472,10 +13429,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-is@^1.0.1: version "1.1.5" @@ -14523,14 +13480,15 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.18.0-next.2" + has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -14613,9 +13571,9 @@ optimism@^0.16.0, optimism@^0.16.1: "@wry/trie" "^0.3.0" optimize-css-assets-webpack-plugin@^5.0.1, optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" @@ -14711,11 +13669,6 @@ p-each-series@^1.0.0: dependencies: p-reduce "^1.0.0" -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -14932,11 +13885,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" @@ -14947,13 +13895,13 @@ parse-path@^4.0.0: qs "^6.9.4" query-string "^6.13.8" -parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== +parse-url@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" + integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== dependencies: is-ssh "^1.3.0" - normalize-url "^6.1.0" + normalize-url "^3.3.0" parse-path "^4.0.0" protocols "^1.4.0" @@ -14962,11 +13910,6 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -15033,9 +13976,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-platform@~0.11.15: version "0.11.15" @@ -15056,6 +13999,13 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -15090,9 +14040,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -15147,7 +14097,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -15161,13 +14111,6 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -15181,9 +14124,9 @@ pn@^1.1.0: integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== pnp-webpack-plugin@^1.6.4: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: ts-pnp "^1.1.6" @@ -15806,11 +14749,13 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== dependencies: cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" util-deprecate "^1.0.2" postcss-svgo@^4.0.3: @@ -15870,10 +14815,10 @@ postcss@7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== +postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -15927,26 +14872,6 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" - integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== - dependencies: - "@jest/types" "^27.0.6" - ansi-regex "^5.0.0" - ansi-styles "^5.0.0" - react-is "^17.0.1" - pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" @@ -15967,9 +14892,11 @@ printj@~1.1.0: integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== prismjs@^1.13.0: - version "1.24.1" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" - integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== + optionalDependencies: + clipboard "^2.0.0" process-nextick-args@~2.0.0: version "2.0.1" @@ -16057,11 +14984,11 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: - forwarded "0.2.0" + forwarded "~0.1.2" ipaddr.js "1.9.1" prr@~1.0.1: @@ -16074,7 +15001,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -16305,11 +15232,6 @@ react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -16358,6 +15280,14 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -16392,6 +15322,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -16431,7 +15370,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -16459,10 +15398,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -16522,9 +15461,9 @@ regenerator-runtime@^0.12.0: integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.14.2: version "0.14.5" @@ -16550,9 +15489,9 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.1.3" regexpp@^3.0.0, regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.7.1: version "4.7.1" @@ -16597,10 +15536,10 @@ relateurl@0.2.x, relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -relay-compiler@11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-11.0.2.tgz#e1e09a1c881d169a7a524ead728ad6a89c7bd4af" - integrity sha512-nDVAURT1YncxSiDOKa39OiERkAr0DUcPmlHlg+C8zD+EiDo2Sgczf2R6cDsN4UcDvucYtkLlDLFErPwgLs8WzA== +relay-compiler@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-10.1.0.tgz#fb4672cdbe9b54869a3a79759edd8c2d91609cbe" + integrity sha512-HPqc3N3tNgEgUH5+lTr5lnLbgnsZMt+MRiyS0uAVNhuPY2It0X1ZJG+9qdA3L9IqKFUNwVn6zTO7RArjMZbARQ== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.5.0" @@ -16614,20 +15553,18 @@ relay-compiler@11.0.2: fbjs "^3.0.0" glob "^7.1.1" immutable "~3.7.6" - invariant "^2.2.4" nullthrows "^1.1.1" - relay-runtime "11.0.2" + relay-runtime "10.1.0" signedsource "^1.0.0" yargs "^15.3.1" -relay-runtime@11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-11.0.2.tgz#c3650477d45665b9628b852b35f203e361ad55e8" - integrity sha512-xxZkIRnL8kNE1cxmwDXX8P+wSeWLR+0ACFyAiAhvfWWAyjXb+bhjJ2FSsRGlNYfkqaTNEuDqpnodQV1/fF7Idw== +relay-runtime@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-10.1.0.tgz#4753bf36e95e8d862cef33608e3d98b4ed730d16" + integrity sha512-bxznLnQ1ST6APN/cFi7l0FpjbZVchWQjjhj9mAuJBuUqNNCh9uV+UTRhpQF7Q8ycsPp19LHTpVyGhYb0ustuRQ== dependencies: "@babel/runtime" "^7.0.0" fbjs "^3.0.0" - invariant "^2.2.4" remove-trailing-separator@^1.0.1: version "1.1.0" @@ -16635,15 +15572,15 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" + css-select "^2.0.2" + dom-converter "^0.2" + htmlparser2 "^3.10.1" + lodash "^4.17.20" + strip-ansi "^3.0.0" repeat-element@^1.1.2: version "1.1.4" @@ -16731,6 +15668,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -16738,21 +15680,6 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -16768,20 +15695,6 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" - -resolve-pkg@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-2.0.0.tgz#ac06991418a7623edc119084edc98b0e6bf05a41" - integrity sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ== - dependencies: - resolve-from "^5.0.0" - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -16792,7 +15705,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.20.0, resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: +resolve@1.20.0, resolve@1.x, resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -16972,7 +15885,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -17025,10 +15938,10 @@ sass-loader@^8.0.2: schema-utils "^2.6.1" semver "^6.3.0" -sass-resources-loader@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.2.4.tgz#1a86fba499e74a88cb7ce95f0c98449f348d360e" - integrity sha512-hIQhBygYky+rLf+4cuoGYONZ623CEH4Swo1fs1WRJkukbqdvN1VIu2KCL59du6vX92bNELzNkGPLx+NorN73xA== +sass-resources-loader@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.2.1.tgz#d7dbc36ccb25b2d8ffa508b1b8630b987df1e5c3" + integrity sha512-WlofxbWOVnxad874IHZdWbP9eW1pbyqsTJKBsMbeB+YELvLSrZQNDTpH70s6F19BwtanR3NEFnyGwJ9WyotJTQ== dependencies: async "^3.2.0" chalk "^4.1.0" @@ -17040,13 +15953,6 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - schema-utils@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" @@ -17075,11 +15981,11 @@ schema-utils@^2.0.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7 ajv-keywords "^3.5.2" schema-utils@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== dependencies: - "@types/json-schema" "^7.0.8" + "@types/json-schema" "^7.0.6" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -17091,10 +15997,10 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -scule@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" - integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== +scule@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/scule/-/scule-0.1.1.tgz#6bf026f1815c646f061761f9bfd7a3e783f2d05c" + integrity sha512-1j2RlmUNADEprCkzDaeo8w2tdum/mvQWAKdRaS2raud7IOnPaDbLSFKhcY5xXPbAFYWk4ZQ0BUnfmg0ZUcI+Pg== section-matter@^1.0.0: version "1.0.0" @@ -17109,10 +16015,15 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: node-forge "^0.10.0" @@ -17133,7 +16044,7 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -17143,18 +16054,18 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -17214,11 +16125,11 @@ serve-index@^1.9.1: parseurl "~1.3.2" serve-placeholder@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.4.tgz#513eac9c435272c7fe9a86612c852ae9b1467fd4" - integrity sha512-jWD9cZXLcr4vHTTL5KEPIUBUYyOWN/z6v/tn0l6XxFhi9iqV3Fc5Y1aFeduUyz+cx8sALzGCUczkPfeOlrq9jg== + version "1.2.3" + resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.3.tgz#d2e778c6fedfe6e6ca48aff0b4627bbe2c4aa2ca" + integrity sha512-DC7t66WeIrlVzVMzickfHIn1zHu7eMsVNiH0nkD/wCrijFQdvgyfH2zc5lkFf79EApUgRhZntkpKjfgLkn2i/Q== dependencies: - defu "^5.0.0" + defu "^3.2.2" serve-static@1.14.1, serve-static@^1.14.1: version "1.14.1" @@ -17375,31 +16286,31 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" simplebar-vue@^1.4.0: - version "1.6.7" - resolved "https://registry.yarnpkg.com/simplebar-vue/-/simplebar-vue-1.6.7.tgz#fb1e2502dec6c87b38dc39787908438d22e13f2b" - integrity sha512-URrEV7Y2XqWFmYTxNeDHluC+FCybksHvaace6ItflTl5WXqniQFnZVtUax2AsJK7+n48wp8wpfqBlFv+BR4MAw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/simplebar-vue/-/simplebar-vue-1.6.0.tgz#e64bed8d553b4731e73f85f41d0add9ebdac1988" + integrity sha512-O43JuN0eeI2kfspm+BME8DmfFKLkiOYRaMlGoTOExjiUHVrrGdXnyxRjewCWCSTfBTKy4tACv+mdrYfVxLZdBQ== dependencies: core-js "^3.0.1" - simplebar "^5.3.5" + simplebar "^5.3.0" -simplebar@^5.3.5: - version "5.3.5" - resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-5.3.5.tgz#799d14cdc8bb8ed245789745b9f3741d05403944" - integrity sha512-mcTlXEiva8pSMdNEzeV3C1KyBHk7Sn2Pe46U1Uwo53dCuQqdJIK0bEJrIPs8W4/RqJquKIsC8Y1h7+aqOl8ccA== +simplebar@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-5.3.0.tgz#857de63296401ed0c3026845514fe5db69795be5" + integrity sha512-LgrGdIWpwHLLlI9HqfnGql62H/iZlF0KDZ7w3ZNbd2ZLwh9NKsODLHPzQgUlqQ8aZe7Y6/1xJMXK1PU5e810+w== dependencies: - "@juggle/resize-observer" "^3.3.1" can-use-dom "^0.1.0" core-js "^3.0.1" lodash.debounce "^4.0.8" lodash.memoize "^4.1.2" lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.1" sirv@^1.0.7: - version "1.0.16" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.16.tgz#9caadfc46c264a38ad1c38c99259692fbf76ed10" - integrity sha512-x56DISeIgSUGVJrQS3mwu+UvtnzHenKDFBQL+UlAswxwk9b2Cpc0KGVvftoIJZgweOOXbMZzyXFYgVElOuSI1Q== + version "1.0.11" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" + integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== dependencies: - "@polka/url" "^1.0.0-next.19" + "@polka/url" "^1.0.0-next.9" mime "^2.3.1" totalist "^1.0.0" @@ -17452,9 +16363,9 @@ slide@^1.1.6: integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= smart-buffer@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== smoothscroll-polyfill@^0.4.3: version "0.4.4" @@ -17492,16 +16403,16 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== dependencies: debug "^3.2.6" eventsource "^1.0.7" faye-websocket "^0.11.3" inherits "^2.0.4" json3 "^3.3.3" - url-parse "^1.5.3" + url-parse "^1.5.1" sockjs@^0.3.21: version "0.3.21" @@ -17625,9 +16536,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== spdy-transport@^3.0.0: version "3.0.0" @@ -17736,13 +16647,6 @@ stack-utils@^1.0.1: dependencies: escape-string-regexp "^2.0.0" -stack-utils@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== - dependencies: - escape-string-regexp "^2.0.0" - stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -17868,14 +16772,6 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -17983,11 +16879,6 @@ strip-bom-string@^1.0.0: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= -strip-bom@4.0.0, strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -18029,11 +16920,6 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -18138,21 +17024,6 @@ supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -18187,7 +17058,7 @@ symbol-observable@^4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== -symbol-tree@^3.2.2, symbol-tree@^3.2.4: +symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== @@ -18207,17 +17078,20 @@ syntax-error@^1.1.1: dependencies: acorn-node "^1.2.0" -table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== +table@^6.0.4: + version "6.1.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.1.0.tgz#676a0cfb206008b59e783fcd94ef8ba7d67d966c" + integrity sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ== dependencies: ajv "^8.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" lodash.clonedeep "^4.5.0" + lodash.flatten "^4.4.0" lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" - strip-ansi "^6.0.0" tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: version "1.1.3" @@ -18234,22 +17108,22 @@ tar@^2.0.0: inherits "2" tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" tar@^6.0.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -18292,14 +17166,6 @@ term-size@^2.1.0: resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -18340,9 +17206,9 @@ terser@^4.1.2, terser@^4.3.9, terser@^4.6.2, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4: - version "5.7.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" - integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== + version "5.6.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" + integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -18358,15 +17224,6 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -18391,10 +17248,10 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -thread-loader@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" - integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== +thread-loader@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.3.tgz#c0fa0eae3b925f273a7cce868cf1f52b4a515d78" + integrity sha512-/s8dGDkKLF89qAsn2b0PNdXS68pKhj+/Rqd7YDht/OvTlBoMm0FAsndceowSX1GEKVLo8yKRil9e+W0PpI/q1g== dependencies: json-parse-better-errors "^1.0.2" loader-runner "^4.1.0" @@ -18407,11 +17264,6 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" @@ -18474,6 +17326,11 @@ timsort@^0.3.0, timsort@~0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -18573,15 +17430,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -18589,13 +17437,6 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -18607,9 +17448,9 @@ trim-newlines@^2.0.0: integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== trim-off-newlines@^1.0.0: version "1.0.1" @@ -18649,24 +17490,26 @@ ts-invariant@^0.9.0: dependencies: tslib "^2.1.0" -ts-jest@^27.0.3: - version "27.0.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" - integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== +ts-jest@^24.2.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" + integrity sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ== dependencies: bs-logger "0.x" + buffer-from "1.x" fast-json-stable-stringify "2.x" - jest-util "^27.0.0" json5 "2.x" - lodash "4.x" + lodash.memoize "4.x" make-error "1.x" - semver "7.x" - yargs-parser "20.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" ts-loader@^8.0.17, ts-loader@^8.0.3: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.3.0.tgz#83360496d6f8004fab35825279132c93412edf33" - integrity sha512-MgGly4I6cStsJy27ViE32UoqxPTN9Xly4anxxVyaIWR+9BGxboV4EyJBGfR3RePV7Ksjj3rHmPZJeIt+7o4Vag== + version "8.1.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.1.0.tgz#d6292487df279c7cc79b6d3b70bb9d31682b693e" + integrity sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A== dependencies: chalk "^4.1.0" enhanced-resolve "^4.0.0" @@ -18690,10 +17533,10 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tsconfig-paths@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" - integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" @@ -18710,7 +17553,12 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@~2.3.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + +tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -18720,12 +17568,7 @@ tslib@~2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== -tslib@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - -tsutils@^3.21.0: +tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -18768,11 +17611,6 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -18824,16 +17662,11 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.6.4: - version "3.9.10" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" - integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== - -typescript@^4.2.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" - integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== -typescript@~4.2: +typescript@^4.2.2, typescript@~4.2: version "4.2.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== @@ -18843,20 +17676,25 @@ typescript@~4.3.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -ua-parser-js@^0.7.18, ua-parser-js@^0.7.28: +ua-parser-js@^0.7.18: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== +ua-parser-js@^0.7.26: + version "0.7.27" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.27.tgz#b54f8ce9eb6c7abf3584edeaf9a3d8b3bd92edba" + integrity sha512-eXMaRYK2skomGocoX0x9sBXzx5A1ZVQgXfrW4mTc8dT0zS7olEcyfudAzRC5tIIRgLxQ69B6jut3DI+n5hslPA== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^0.7.4, ufo@^0.7.7: - version "0.7.9" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.9.tgz#0268e3734b413c9ed6f3510201f42372821b875c" - integrity sha512-6t9LrLk3FhqTS+GW3IqlITtfRB5JAVr5MMNjpBECfK827W+Vh5Ilw/LhTcHWrt6b3hkeBvcbjx4Ti7QVFzmcww== +ufo@^0.6.10, ufo@^0.6.11: + version "0.6.11" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.6.11.tgz#69311ed4abc8ab671c83754b79ce0d396fea1075" + integrity sha512-Yu7TJThwlr23peOkX/+hm6LfkyBs+eDWV880468PTrjKBKjjsNWFFwIuOqDfmXngRo9TZ4+twFYueRH0OLl0Gw== uglify-js@3.4.x: version "3.4.10" @@ -18867,9 +17705,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4, uglify-js@^3.5.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" - integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== + version "3.13.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" + integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== uid-number@0.0.6: version "0.0.6" @@ -18886,7 +17724,7 @@ umd@^3.0.0: resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== -unbox-primitive@^1.0.1: +unbox-primitive@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== @@ -18988,7 +17826,7 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0, universalify@^0.1.2: +universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -19104,10 +17942,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== +url-parse@^1.4.3, url-parse@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -19212,15 +18050,6 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - valid-url@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -19251,11 +18080,6 @@ validator@^8.0.0: resolved "https://registry.yarnpkg.com/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9" integrity sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA== -value-or-promise@1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446" - integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ== - value-or-promise@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.6.tgz#218aa4794aa2ee24dcf48a29aba4413ed584747f" @@ -19267,9 +18091,9 @@ vary@^1, vary@^1.1.2, vary@~1.1.2: integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vee-validate@^3.2.3: - version "3.4.11" - resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.11.tgz#2015f75a4aa33c615418e6aa6b03bd778ed173d1" - integrity sha512-508zDZkxqzlXgOo3Rb+djjA1HxQjkUJzM2FKzxWIiwlarzYPb3J9seMifJZ+AfaWXraErZ+L0/6ncUBP7MYx2A== + version "3.4.5" + resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.5.tgz#96a456c309f7bdb2cce62c3b554f96d893e9f6ae" + integrity sha512-ZEcLqOAZzSkMhDvPcTx0xcwVOijFnMW9J+BA20j+rDmo24T8RCCqVQyRwwrDrcWJZV2dRYl/yYNa2GB6UCoBvg== vendors@^1.0.0: version "1.0.4" @@ -19291,9 +18115,9 @@ vm-browserify@^1.0.0, vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vue-client-only@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.1.0.tgz#1a67a47b8ecacfa86d75830173fffee3bf8a4ee3" - integrity sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA== + version "2.0.0" + resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.0.0.tgz#ddad8d675ee02c761a14229f0e440e219de1da1c" + integrity sha512-arhk1wtWAfLsJyxGMoEYhoBowM87/i6HLSG2LH/03Yog6i2d9JEN1peMP0Ceis+/n9DxdenGYZZTxbPPJyHciA== vue-drag-drop@^1.1.4: version "1.1.4" @@ -19302,18 +18126,17 @@ vue-drag-drop@^1.1.4: dependencies: core-js "^2.5.3" -vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" - integrity sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg== +vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561" + integrity sha512-QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA== dependencies: debug "^4.1.1" - eslint-scope "^5.1.1" + eslint-scope "^5.0.0" eslint-visitor-keys "^1.1.0" espree "^6.2.1" esquery "^1.4.0" - lodash "^4.17.21" - semver "^6.3.0" + lodash "^4.17.15" vue-fragment@^1.5.1: version "1.5.2" @@ -19325,10 +18148,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-i18n@^8.25.0: - version "8.25.0" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.25.0.tgz#1037d9295fa2845a230b771de473481edb2cfc4c" - integrity sha512-ynhcL+PmTxuuSE1T10htiSXzjBozxYIE3ffbM1RfgAkVbr/v1SP+9Mi/7/uv8ZVV1yGuKjFAYp9BXq+X7op6MQ== +vue-i18n@^8.24.3: + version "8.24.3" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.3.tgz#2233ae11ec59e8204df58a28fc41afe9754e3b41" + integrity sha512-uKAYzGbwGIJndY7JwhQwIGi1uyvErWkBfFwooOtjcNnIfMbAR49ad5dT/MiykrJ9pCcgvnocFjFsNLtTzyW+rg== vue-jest@^4.0.0-0: version "4.0.1" @@ -19346,10 +18169,10 @@ vue-lazy-hydration@^2.0.0-beta.4: resolved "https://registry.yarnpkg.com/vue-lazy-hydration/-/vue-lazy-hydration-2.0.0-beta.4.tgz#11e7021a9bac003ea6ed74f132dcd0d025fafc1f" integrity sha512-bhr7AxzrSEPed4cOawIeCxJmR8pglberR78x1zs0886xR+47/EXE9s0Ezss90CPINo8ApzUfA/r+SbNffn+t9w== -vue-loader@^15.7.1, vue-loader@^15.9.7: - version "15.9.8" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" - integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== +vue-loader@^15.7.1, vue-loader@^15.9.6: + version "15.9.6" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" + integrity sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg== dependencies: "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" @@ -19375,9 +18198,9 @@ vue-no-ssr@^1.1.1: integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== vue-router@^3.4.5, vue-router@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" - integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== + version "3.5.1" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.1.tgz#edf3cf4907952d1e0583e079237220c5ff6eb6c9" + integrity sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw== vue-scrollto@^2.17.1: version "2.20.0" @@ -19387,9 +18210,9 @@ vue-scrollto@^2.17.1: bezier-easing "2.1.0" vue-server-renderer@^2.6.10, vue-server-renderer@^2.6.12: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz#c8bffff152df6b47b858818ef8d524d2fc351654" - integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.12.tgz#a8cb9c49439ef205293cb41c35d0d2b0541653a5" + integrity sha512-3LODaOsnQx7iMFTBLjki8xSyOxhCtbZ+nQie0wWY4iOVeEtTg1a3YQAjd82WvKxrWHHTshjvLb7OXMc2/dYuxw== dependencies: chalk "^1.1.3" hash-sum "^1.0.2" @@ -19408,10 +18231,10 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.14, vue-template-compiler@^2.6.x: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== +vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.x: + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" + integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -19422,14 +18245,14 @@ vue-template-es2015-compiler@^1.9.0: integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== vue2-leaflet@^2.5.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/vue2-leaflet/-/vue2-leaflet-2.7.1.tgz#2f95c287621bf778f10804c88223877f5c049257" - integrity sha512-K7HOlzRhjt3Z7+IvTqEavIBRbmCwSZSCVUlz9u4Rc+3xGCLsHKz4TAL4diAmfHElCQdPPVdZdJk8wPUt2fu6WQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/vue2-leaflet/-/vue2-leaflet-2.7.0.tgz#e8a78671b8fa843ab19cfd93582bc166a05ec3ed" + integrity sha512-uT7lpFoVEDhINMyTpiAthh6aiKFGHuYWLoVH8JJ0YNNSch+XMZFl4YBQ0S2hHYDquQIsh8zx+yINeUI01y9ugw== vue@^2.6.10, vue@^2.6.11, vue@^2.6.12, vue@^2.6.x: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" + integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== vuepress-html-webpack-plugin@^3.2.0: version "3.2.0" @@ -19476,20 +18299,13 @@ vuex@^3.6.2: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== -w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: +w3c-hr-time@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -19547,16 +18363,6 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - webpack-bundle-analyzer@^3.5.2: version "3.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" @@ -19576,10 +18382,10 @@ webpack-bundle-analyzer@^3.5.2: opener "^1.5.1" ws "^6.0.0" -webpack-bundle-analyzer@^4.4.1: - version "4.4.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" - integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== +webpack-bundle-analyzer@^4.4.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1" + integrity sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -19618,15 +18424,15 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-middleware@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" - integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== +webpack-dev-middleware@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" + integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" - mime-types "^2.1.30" + colorette "^1.2.1" + mem "^8.0.0" + memfs "^3.2.0" + mime-types "^2.1.28" range-parser "^1.2.1" schema-utils "^3.0.0" @@ -19694,10 +18500,10 @@ webpack-merge@^4.1.2: dependencies: lodash "^4.17.15" -webpack-node-externals@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" - integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== +webpack-node-externals@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#178e017a24fec6015bc9e672c77958a6afac861d" + integrity sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w== webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" @@ -19778,7 +18584,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -19790,7 +18596,7 @@ whatwg-fetch@>=0.10.0, whatwg-fetch@^3.4.1: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -19813,15 +18619,6 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - when@~3.6.x: version "3.6.4" resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" @@ -19848,7 +18645,7 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -19883,7 +18680,7 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -20011,24 +18808,29 @@ ws@7.4.5: integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== ws@^5.2.0: - version "5.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== dependencies: async-limiter "~1.0.0" -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6: - version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +"ws@^5.2.0 || ^6.0.0 || ^7.0.0": + version "7.5.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" + integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== ws@^6.0.0, ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" +ws@^7.3.1: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -20039,11 +18841,6 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -20061,17 +18858,12 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -20086,10 +18878,12 @@ yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" yargs-parser@^13.1.2: version "13.1.2" @@ -20100,9 +18894,9 @@ yargs-parser@^13.1.2: decamelize "^1.2.0" yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -20115,6 +18909,11 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.3: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + yargs@^13.2.2, yargs@^13.3.0, yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -20165,32 +18964,6 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.0.0: - version "17.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 9550643ccf258d80586de2d8ae6e4d4af11e4a3b Mon Sep 17 00:00:00 2001 From: Heitor Ramon Ribeiro Date: Fri, 24 Sep 2021 08:59:09 -0300 Subject: [PATCH 002/151] Revert "chore: sync `version-2.4` to `main` branch (#6312)" (#6337) This reverts commit dc3165a1fb2b4341b86c23e52bc8536cd618880f. --- .github/PULL_REQUEST_TEMPLATE.md | 1 + .github/labeler.yml | 5 +- .github/workflows/deploy-docs.yml | 4 +- .github/workflows/deploy-lighthouse.yml | 3 +- .../deploy-preview-storefrontcloud.yml | 4 +- .github/workflows/deploy-storefrontcloud.yml | 7 +- .github/workflows/run-e2e-regression.yml | 10 +- .github/workflows/run-e2e-tests.yml | 8 +- .github/workflows/test.yml | 18 +- README.md | 7 +- cypress.json | 1 - package.json | 87 +- packages/boilerplate/api-client/package.json | 4 +- packages/boilerplate/composables/package.json | 6 +- .../src/getters/checkoutGetters.ts | 35 - packages/boilerplate/composables/src/index.ts | 1 - packages/boilerplate/theme/lang/de.js | 11 +- packages/boilerplate/theme/lang/en.js | 11 +- packages/boilerplate/theme/package.json | 10 +- .../commercetools/api-client/package.json | 4 +- .../src/api/categorySearch/defaultQuery.ts | 56 - .../src/api/categorySearch/index.ts | 40 - .../commercetools/api-client/src/api/index.ts | 1 - .../helpers/commercetoolsLink/authHelpers.ts | 12 +- .../createCommerceToolsConnection.ts | 22 +- .../helpers/commercetoolsLink/linkHandlers.ts | 156 +- .../commercetoolsLink/restrictedOperations.ts | 18 +- .../api-client/src/helpers/search/index.ts | 19 - .../api-client/src/helpers/utils.ts | 1 + .../api-client/src/index.server.ts | 33 +- .../commercetools/api-client/src/types/Api.ts | 2 - .../api-client/src/types/setup.ts | 6 - .../composables/__tests__/setup.ts | 4 + .../__tests__/useStore/factoryParams.spec.ts | 15 +- .../commercetools/composables/jest.config.js | 10 +- .../commercetools/composables/package.json | 8 +- .../src/getters/categoryGetters.ts | 11 +- .../composables/src/types/index.ts | 3 +- .../composables/src/useFacet/index.ts | 5 +- .../composables/src/useUser/factoryParams.ts | 1 - .../theme/components/AppHeader.vue | 8 +- .../Checkout/UserBillingAddresses.vue | 2 +- .../MyAccount/BillingAddressForm.vue | 9 +- .../MyAccount/PasswordResetForm.vue | 10 +- .../MyAccount/ProfileUpdateForm.vue | 10 +- .../MyAccount/ShippingAddressForm.vue | 9 +- .../theme/components/UserBillingAddress.vue | 9 +- .../theme/components/UserShippingAddress.vue | 9 +- packages/commercetools/theme/lang/de.js | 11 +- packages/commercetools/theme/lang/en.js | 11 +- .../commercetools/theme/middleware.config.js | 14 - packages/commercetools/theme/package.json | 10 +- .../theme/pages/Checkout/Billing.vue | 6 +- .../theme/pages/Checkout/Payment.vue | 6 +- .../theme/pages/Checkout/Shipping.vue | 10 +- .../theme/pages/Checkout/ThankYou.vue | 2 +- .../theme/pages/MyAccount/MyProfile.vue | 7 +- .../theme/tests/e2e/api/requests.ts | 50 +- .../e2e-checkout-billing-validation.json | 46 +- .../e2e-checkout-shipping-validation.json | 22 +- .../fixtures/test-data/e2e-place-order.json | 8 +- .../e2e-checkout-billing-validation.spec.ts | 2 +- .../e2e-checkout-shipping-validation.spec.ts | 2 +- .../e2e/integration/e2e-place-order.spec.ts | 4 + .../e2e/integration/e2e-user-login.spec.ts | 2 +- .../integration/e2e-user-registration.spec.ts | 2 +- .../theme/tests/e2e/pages/checkout.ts | 14 +- .../theme/tests/e2e/pages/factory.ts | 5 +- .../theme/tests/e2e/pages/home.ts | 3 - .../theme/tests/e2e/pages/my-account.ts | 76 +- .../theme/tests/e2e/types/types.ts | 6 +- .../theme/tests/e2e/utils/network.ts | 13 + packages/core/cache/package.json | 4 +- .../core/cache/src/composables/useCache.ts | 4 +- packages/core/cache/src/index.ts | 2 +- .../core/cli/src/utils/getIntegrations.ts | 3 +- packages/core/core/__tests__/setup.ts | 4 + packages/core/core/package.json | 14 +- packages/core/core/src/types.ts | 9 - .../components/CommerceIntegrationLinks.vue | 2 +- packages/core/docs/.vuepress/config.js | 232 +- packages/core/docs/.vuepress/integrations.js | 27 +- packages/core/docs/README.md | 79 +- packages/core/docs/advanced/architecture.md | 4 +- packages/core/docs/advanced/context.md | 8 +- .../advanced/creating-custom-composables.md | 86 - .../advanced/extending-graphql-queries.md | 10 +- .../docs/advanced/internationalization.md | 12 +- packages/core/docs/advanced/logging.md | 16 +- packages/core/docs/advanced/performance.md | 12 +- .../core/docs/advanced/server-middleware.md | 81 +- packages/core/docs/advanced/ssr-cache.md | 10 +- .../commercetools/authorization-strategy.md | 2 +- packages/core/docs/commercetools/changelog.md | 156 +- .../commercetools/composables/use-cart.md | 16 +- .../commercetools/composables/use-category.md | 6 +- .../commercetools/composables/use-facet.md | 6 +- .../composables/use-make-order.md | 2 +- .../commercetools/composables/use-product.md | 6 +- .../commercetools/composables/use-review.md | 2 +- .../composables/use-shipping-provider.md | 4 +- .../commercetools/composables/use-shipping.md | 6 +- .../composables/use-user-billing.md | 16 +- .../composables/use-user-order.md | 10 +- .../composables/use-user-shipping.md | 10 +- .../commercetools/composables/use-user.md | 18 +- .../commercetools/composables/use-wishlist.md | 36 +- .../core/docs/commercetools/configuration.md | 25 +- .../commercetools/enterprise/use-wishlist.md | 39 +- .../docs/commercetools/getting-started.md | 17 +- .../commercetools/guide/authentication.md | 207 - .../core/docs/commercetools/guide/cart.md | 248 - .../core/docs/commercetools/guide/checkout.md | 365 - .../commercetools/guide/product-catalog.md | 249 - .../docs/commercetools/guide/user-profile.md | 289 - .../core/docs/commercetools/guide/wishlist.md | 430 - .../docs/commercetools/images/faceting.jpg | Bin 142306 -> 0 bytes .../core/docs/commercetools/maintainers.md | 2 +- .../commercetools/migrate/1.2.0-rc.2/index.md | 35 - .../commercetools/migrate/1.2.0-rc.3/index.md | 18 - .../docs/commercetools/migrate/1.2.0/index.md | 33 - .../docs/commercetools/migrate/1.3.0/index.md | 27 - .../core/docs/commercetools/migrate/index.md | 6 - packages/core/docs/commercetools/use-facet.md | 4 +- packages/core/docs/composables/use-cart.md | 2 +- packages/core/docs/composables/use-user.md | 2 +- .../core/docs/composables/use-wishlist.md | 2 +- packages/core/docs/contributing/README.md | 52 +- .../contributing/api-design-philosophy.md | 30 +- packages/core/docs/contributing/changelog.md | 367 +- .../docs/contributing/creating-changelog.md | 24 +- .../contributing/server-side-rendering.md | 20 +- packages/core/docs/contributing/themes.md | 22 +- packages/core/docs/core/composables.md | 29 +- packages/core/docs/core/use-cart.md | 28 +- packages/core/docs/core/use-product.md | 8 +- packages/core/docs/core/use-wishlist.md | 18 +- .../docs/core/utils/server-side-rendering.md | 12 +- packages/core/docs/enterprise/feature-list.md | 83 +- packages/core/docs/general/enterprise.md | 4 +- packages/core/docs/general/installation.md | 2 +- packages/core/docs/general/key-concepts.md | 8 +- packages/core/docs/guide/composables.md | 10 +- packages/core/docs/guide/configuration.md | 8 +- packages/core/docs/guide/getters.md | 6 +- packages/core/docs/guide/theme.md | 7 +- .../docs/images/high-level-architecture.png | Bin 37604 -> 0 bytes packages/core/docs/integrate/cache-driver.md | 2 +- packages/core/docs/integrate/cms.md | 15 +- .../docs/integrate/extending-integrations.md | 65 - .../integrate/extending-vue-storefront.md | 98 - .../core/docs/integrate/integration-guide.md | 2 +- packages/core/docs/integrations/adyen.md | 24 +- .../core/docs/integrations/bazaarvoice.md | 14 +- .../docs/migrate/2.1.0-rc.1/integrators.md | 2 +- .../core/docs/migrate/2.1.0-rc.1/overview.md | 129 +- .../core/docs/migrate/2.2.0/integrators.md | 2 +- packages/core/docs/migrate/2.2.0/overview.md | 46 +- .../docs/migrate/2.3.0-rc.2/integrators.md | 2 +- .../core/docs/migrate/2.3.0-rc.2/overview.md | 2 +- .../docs/migrate/2.3.0-rc.3/integrators.md | 2 +- .../core/docs/migrate/2.3.0-rc.3/overview.md | 2 +- .../core/docs/migrate/2.3.0/integrators.md | 2 +- packages/core/docs/migrate/2.3.0/overview.md | 2 +- .../core/docs/migrate/2.4.0/integrators.md | 2 +- packages/core/docs/migrate/2.4.0/overview.md | 14 +- packages/core/docs/migrate/index.md | 35 +- packages/core/docs/package.json | 11 +- packages/core/docs/scripts/changelog.js | 78 +- .../core/docs/scripts/templates/change.hbs | 10 - .../core/docs/scripts/templates/version.hbs | 3 - packages/core/docs/shopify/README.md | 11 - .../core/docs/shopify/api-client-reference.md | 13424 ---------------- packages/core/docs/shopify/auth-middleware.md | 1 - .../docs/shopify/authorization-strategy.md | 5 - packages/core/docs/shopify/checkout.md | 171 - packages/core/docs/shopify/composables.md | 29 - packages/core/docs/shopify/configuration.md | 69 - packages/core/docs/shopify/feature-list.md | 178 - packages/core/docs/shopify/getting-started.md | 30 - packages/core/docs/shopify/maintainers.md | 22 - packages/core/docs/shopify/use-cart.md | 132 - packages/core/docs/shopify/use-category.md | 71 - packages/core/docs/shopify/use-content.md | 63 - packages/core/docs/shopify/use-product.md | 165 - packages/core/docs/shopify/use-search.md | 106 - packages/core/docs/shopify/use-user-order.md | 54 - packages/core/docs/shopify/use-user.md | 108 - packages/core/jest.config.js | 26 - packages/core/middleware/package.json | 3 +- packages/core/middleware/src/createServer.ts | 2 +- packages/core/nuxt-module/package.json | 2 +- packages/core/nuxt-theme-module/index.js | 2 +- packages/core/nuxt-theme-module/package.json | 2 +- .../theme/components/CartSidebar.vue | 13 +- .../theme/composables/useUiState.ts | 8 + .../core/nuxt-theme-module/theme/lang/de.js | 11 +- .../core/nuxt-theme-module/theme/lang/en.js | 11 +- .../theme/pages/Category.vue | 5 +- .../nuxt-theme-module/theme/pages/Home.vue | 27 +- .../theme/pages/MyAccount/OrderHistory.vue | 23 +- packages/jest.base.config.js | 3 + scripts/package.json | 13 - scripts/release/constants.ts | 33 - scripts/release/index.ts | 147 - scripts/release/packageTypes.ts | 53 - scripts/release/updatePackageVersion.ts | 64 - scripts/tsconfig.json | 21 - tsconfig.json | 9 +- yarn.lock | 5665 ++++--- 210 files changed, 4979 insertions(+), 21078 deletions(-) delete mode 100644 packages/boilerplate/composables/src/getters/checkoutGetters.ts delete mode 100644 packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts delete mode 100644 packages/commercetools/api-client/src/api/categorySearch/index.ts delete mode 100644 packages/core/docs/advanced/creating-custom-composables.md delete mode 100644 packages/core/docs/commercetools/guide/authentication.md delete mode 100644 packages/core/docs/commercetools/guide/cart.md delete mode 100644 packages/core/docs/commercetools/guide/checkout.md delete mode 100644 packages/core/docs/commercetools/guide/product-catalog.md delete mode 100644 packages/core/docs/commercetools/guide/user-profile.md delete mode 100644 packages/core/docs/commercetools/guide/wishlist.md delete mode 100644 packages/core/docs/commercetools/images/faceting.jpg delete mode 100644 packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md delete mode 100644 packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md delete mode 100644 packages/core/docs/commercetools/migrate/1.2.0/index.md delete mode 100644 packages/core/docs/commercetools/migrate/1.3.0/index.md delete mode 100644 packages/core/docs/commercetools/migrate/index.md delete mode 100644 packages/core/docs/images/high-level-architecture.png delete mode 100644 packages/core/docs/integrate/extending-integrations.md delete mode 100644 packages/core/docs/integrate/extending-vue-storefront.md delete mode 100644 packages/core/docs/scripts/templates/change.hbs delete mode 100644 packages/core/docs/scripts/templates/version.hbs delete mode 100755 packages/core/docs/shopify/README.md delete mode 100644 packages/core/docs/shopify/api-client-reference.md delete mode 100644 packages/core/docs/shopify/auth-middleware.md delete mode 100644 packages/core/docs/shopify/authorization-strategy.md delete mode 100644 packages/core/docs/shopify/checkout.md delete mode 100755 packages/core/docs/shopify/composables.md delete mode 100644 packages/core/docs/shopify/configuration.md delete mode 100644 packages/core/docs/shopify/feature-list.md delete mode 100755 packages/core/docs/shopify/getting-started.md delete mode 100644 packages/core/docs/shopify/maintainers.md delete mode 100644 packages/core/docs/shopify/use-cart.md delete mode 100644 packages/core/docs/shopify/use-category.md delete mode 100644 packages/core/docs/shopify/use-content.md delete mode 100644 packages/core/docs/shopify/use-product.md delete mode 100644 packages/core/docs/shopify/use-search.md delete mode 100644 packages/core/docs/shopify/use-user-order.md delete mode 100644 packages/core/docs/shopify/use-user.md delete mode 100644 packages/core/jest.config.js delete mode 100644 scripts/package.json delete mode 100644 scripts/release/constants.ts delete mode 100644 scripts/release/index.ts delete mode 100644 scripts/release/packageTypes.ts delete mode 100644 scripts/release/updatePackageVersion.ts delete mode 100644 scripts/tsconfig.json diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2a06c8c17d..87f637ae12 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -54,3 +54,4 @@ #### Docs - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. + diff --git a/.github/labeler.yml b/.github/labeler.yml index ae88686b58..8b9116cf70 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -14,10 +14,9 @@ commercetools: boilerplate: - packages/boilerplate/**/* -# Add 'docs' label to any change to packages/core/docs files +# Add 'docs' label to any change to packages/core/docs files EXCEPT for the changelog docs: -- packages/core/docs/**/* -- packages/core/docs/.vuepress/**/* +- any: ['packages/core/docs/**/*', '!packages/core/docs/changelog/**/*'] # Add 'ci' label to any change to continuous integration files inside .github folder ci: diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index f137427b06..86cfce3815 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -22,9 +22,7 @@ jobs: id: get_version run: echo ::set-output name=VERSION::$(cat version.txt) - name: Build and publish docker image - # uses: elgohr/Publish-Docker-Github-Action@master - # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 - uses: elgohr/Publish-Docker-Github-Action@3.04 + uses: elgohr/Publish-Docker-Github-Action@master with: name: docs-storefrontcloud-io/v2:${{ steps.get_version.outputs.VERSION }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/deploy-lighthouse.yml b/.github/workflows/deploy-lighthouse.yml index 7fa0db0980..8e6b54f6c5 100644 --- a/.github/workflows/deploy-lighthouse.yml +++ b/.github/workflows/deploy-lighthouse.yml @@ -7,7 +7,8 @@ on: types: - completed branches: - - next + - master + - main jobs: deploy: diff --git a/.github/workflows/deploy-preview-storefrontcloud.yml b/.github/workflows/deploy-preview-storefrontcloud.yml index 4ffcc1dd64..da9cf9a3c9 100644 --- a/.github/workflows/deploy-preview-storefrontcloud.yml +++ b/.github/workflows/deploy-preview-storefrontcloud.yml @@ -13,9 +13,7 @@ jobs: with: node-version: "12.x" - name: Build and publish docker image - # uses: elgohr/Publish-Docker-Github-Action@master - # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 - uses: elgohr/Publish-Docker-Github-Action@3.04 + uses: elgohr/Publish-Docker-Github-Action@master with: name: vsf-next-demo-storefrontcloud-io/vue-storefront:${{ github.sha }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/deploy-storefrontcloud.yml b/.github/workflows/deploy-storefrontcloud.yml index 1829c328e7..9ce4ab77bc 100644 --- a/.github/workflows/deploy-storefrontcloud.yml +++ b/.github/workflows/deploy-storefrontcloud.yml @@ -2,7 +2,8 @@ name: Deploy to Storefrontcloud on: push: branches: - - next + - master + - main - release/next - test/next jobs: @@ -16,9 +17,7 @@ jobs: with: node-version: "12.x" - name: Build and publish docker image - # uses: elgohr/Publish-Docker-Github-Action@master - # 3.04 is hardcoded as a workaround for https://github.com/elgohr/Publish-Docker-Github-Action/issues/134 - uses: elgohr/Publish-Docker-Github-Action@3.04 + uses: elgohr/Publish-Docker-Github-Action@master with: name: vsf-next-demo-storefrontcloud-io/vue-storefront:${{ github.sha }} registry: registry.storefrontcloud.io diff --git a/.github/workflows/run-e2e-regression.yml b/.github/workflows/run-e2e-regression.yml index a1cd960598..bbb5a6887e 100644 --- a/.github/workflows/run-e2e-regression.yml +++ b/.github/workflows/run-e2e-regression.yml @@ -13,6 +13,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v2 + with: + ref: develop - name: Setup node uses: actions/setup-node@v2 @@ -30,13 +32,15 @@ jobs: - name: Install dependencies run: yarn install - - name: Build tools - run: yarn build:${{ matrix.package }}:tools + - name: Build package + run: yarn build:${{ matrix.package }} + env: + NUXT_ENV_E2E: true - name: Run cypress tests uses: cypress-io/github-action@v2.8.2 with: - start: yarn dev:${{ matrix.package }} + start: yarn start:${{ matrix.package }} wait-on: 'http://localhost:3000' wait-on-timeout: 180 command: yarn run test:e2e:${{ matrix.package }}:hl diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 836f970afe..5cdc5bee8b 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -40,13 +40,15 @@ jobs: - name: Install dependencies run: yarn install - - name: Build tools - run: yarn build:${{ github.event.inputs.package }}:tools + - name: Build package + run: yarn build:${{ github.event.inputs.package }} + env: + NUXT_ENV_E2E: true - name: Run cypress tests uses: cypress-io/github-action@v2.8.2 with: - start: yarn dev:${{ github.event.inputs.package }} + start: yarn start:${{ github.event.inputs.package }} wait-on: 'http://localhost:3000' wait-on-timeout: 180 command: yarn run test:e2e:${{ github.event.inputs.package }}:hl diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 101274446b..a6d0471d95 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,10 +3,14 @@ name: Run tests on: push: branches: - - next + - main + - develop + - release-** pull_request: branches: - - next + - main + - develop + - release-** jobs: prepare_dependencies: @@ -74,12 +78,18 @@ jobs: - name: Build core run: yarn build:core - - name: Test core - run: yarn test:core --coverage + - name: Test cache + run: yarn test:cache --coverage - name: Test CLI run: yarn test:cli --coverage + - name: Test core + run: yarn test:core --coverage + + - name: Test middleware + run: yarn test:middleware --coverage + validate_integrations: name: Validate ${{ matrix.integration }} needs: validate_core diff --git a/README.md b/README.md index 0422b03ef4..a7cc33ad76 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ ![Vue Storefront](https://camo.githubusercontent.com/48c886ac0703e3a46bc0ec963e20f126337229fc/68747470733a2f2f643968687267346d6e767a6f772e636c6f756466726f6e742e6e65742f7777772e76756573746f726566726f6e742e696f2f32383062313964302d6c6f676f2d76735f3062793032633062793032633030303030302e6a7067) -# Vue Storefront 2 (previously known as Next) +# Vue Storefront 2 -[![Coverage Status](https://coveralls.io/repos/github/vuestorefront/vue-storefront/badge.svg?branch=next) ](https://coveralls.io/github/vuestorefront/vue-storefront/?branch=next)![Discord](https://img.shields.io/discord/770285988244750366?label=join%20discord&logo=Discord&logoColor=white) +[![Coverage Status](https://coveralls.io/repos/github/vuestorefront/vue-storefront/badge.svg?branch=next) ](https://coveralls.io/github/vuestorefront/vue-storefront/?branch=next) +[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) +[![Discord](https://img.shields.io/discord/770285988244750366?label=join%20discord&logo=Discord&logoColor=white)](https://discord.vuestorefront.io) Vue Storefront is the most popular and most advanced Frontend Platform for eCommerce - [Documentation](https://docs.vuestorefront.io/v2/) @@ -76,4 +78,3 @@ Vue Storefront is a Community effort brought to You by our great Core Team and s Vue Storefront source code is completely free and released under the [MIT License](https://github.com/vuestorefront/vue-storefront/blob/master/LICENSE). [![analytics](http://www.google-analytics.com/collect?v=1&t=pageview&_s=1&dl=https%3A%2F%2Fgithub.com%2FDivanteLtd%2Fvue-storefront&_u=MAC~&cid=1757014354.1393964045&tid=UA-108235765-10)]() - diff --git a/cypress.json b/cypress.json index 197acc5456..d5fd315327 100644 --- a/cypress.json +++ b/cypress.json @@ -2,6 +2,5 @@ "baseUrl": "https://lovecrafts-demo.storefrontcloud.io/", "viewportWidth": 1280, "viewportHeight": 1024 - } \ No newline at end of file diff --git a/package.json b/package.json index 2520d6fd0d..ef70943adc 100644 --- a/package.json +++ b/package.json @@ -1,71 +1,66 @@ { "name": "root", "private": true, - "engines": { - "node": ">=10.x" - }, "scripts": { - "build:docs": "cd packages/core/docs && yarn build", - "dev:docs": "cd packages/core/docs && yarn dev", + "build:bp": "yarn build:bp:tools && yarn build:bp:theme", + "build:bp:api-client": "cd packages/boilerplate/api-client && yarn build", + "build:bp:composables": "cd packages/boilerplate/composables && yarn build", + "build:bp:theme": "cd packages/boilerplate/theme && yarn build", + "build:bp:tools": "yarn build:core && yarn build:bp:api-client && yarn build:bp:composables", "build:core": "yarn build:core:core && yarn build:core:cache && yarn build:core:middleware", "build:core:core": "cd packages/core/core && yarn build", "build:core:cache": "cd packages/core/cache && yarn build", "build:core:middleware": "cd packages/core/middleware && yarn build", - "build:spr:api-client": "cd packages/spryker/api-client && yarn build", - "build:spr:composables": "cd packages/spryker/composables && yarn build", - "build:spr:tools": "yarn build:core && yarn build:spr:api-client && yarn build:spr:composables", - "build:spr:theme": "cd packages/spryker/theme && yarn build", - "build:spr": "yarn build:spr:tools && yarn build:spr:theme", - "dev:spr": "cd packages/spryker/theme && yarn dev", - "dev:spr:api-client": "cd packages/spryker/api-client && yarn dev", - "dev:spr:composables": "cd packages/spryker/composables && yarn dev", - "build:bp:api-client": "cd packages/boilerplate/api-client && yarn build", - "build:bp:composables": "cd packages/boilerplate/composables && yarn build", - "build:bp:tools": "yarn build:core && yarn build:bp:api-client && yarn build:bp:composables", - "build:bp:theme": "cd packages/boilerplate/theme && yarn build", - "build:bp": "yarn build:bp:tools && yarn build:bp:theme", - "dev:bp": "cd packages/boilerplate/theme && yarn dev", + "build:ct": "yarn build:ct:tools && yarn build:ct:theme", "build:ct:api-client": "cd packages/commercetools/api-client && yarn build", "build:ct:composables": "cd packages/commercetools/composables && yarn build", - "build:middleware": "cd packages/core/middleware && yarn build", - "build:ct:tools": "yarn build:core && yarn build:ct:api-client && yarn build:ct:composables", "build:ct:theme": "cd packages/commercetools/theme && yarn build", - "build:ct": "yarn build:core && yarn build:ct:tools && yarn build:ct:theme", - "build:sp:tools": "yarn build:core && yarn build:sp:api-client && yarn build:sp:composables", - "build:sp": "yarn build:core && yarn build:sp:tools && yarn build:sp:theme", - "test:ct:api-client": "cd packages/commercetools/api-client && yarn test", - "test:ct:composables": "cd packages/commercetools/composables && yarn test", - "test:core": "jest -c ./packages/core/jest.config.js", - "test:ct": "yarn test:ct:api-client && yarn test:ct:composables", - "test:e2e": "./node_modules/.bin/cypress open", - "test:cli": "cd packages/core/cli && yarn test", - "start:ct": "cd packages/commercetools/theme && yarn start", + "build:ct:tools": "yarn build:core && yarn build:ct:api-client && yarn build:ct:composables", + "build:docs": "cd packages/core/docs && yarn build", + "build:middleware": "cd packages/core/middleware && yarn build", + "cli": "cd packages/core/cli && yarn cli", + "commit": "cz", + "core:changelog": "cd packages/core/docs/scripts && node changelog", + "ct:changelog": "cd packages/core/docs/scripts && node changelog --in ../commercetools/changelog --out ../commercetools/changelog.md", + "dev:bp": "cd packages/boilerplate/theme && yarn dev", + "dev:ct": "cd packages/commercetools/theme && yarn dev", "dev:ct:api-client": "cd packages/commercetools/api-client && yarn dev", "dev:ct:composables": "cd packages/commercetools/composables && yarn dev", - "dev:ct": "cd packages/commercetools/theme && yarn dev", + "dev:docs": "cd packages/core/docs && yarn dev", "link-packages": "lerna link --force-local", "lint": "eslint . --ext .js,.ts,.vue", - "release": "cd scripts && yarn release", - "cli": "cd packages/core/cli && yarn cli", + "start:bp": "cd packages/boilerplate/theme && yarn start", + "start:ct": "cd packages/commercetools/theme && yarn start", + "test:cache": "cd packages/core/cache && yarn test", + "test:cli": "cd packages/core/cli && yarn test", + "test:core": "cd packages/core/core && yarn test", + "test:middleware": "cd packages/core/middleware && yarn test", + "test:ct": "yarn test:ct:api-client && yarn test:ct:composables", + "test:ct:api-client": "cd packages/commercetools/api-client && yarn test", + "test:ct:composables": "cd packages/commercetools/composables && yarn test", + "test:e2e": "./node_modules/.bin/cypress open", "test:e2e:bp": "cd packages/boilerplate/theme && yarn run test:e2e", - "test:e2e:bp:hl": "cd packages/boilerplate/theme && yarn run test:e2e:hl", "test:e2e:bp:generate:report": "cd packages/boilerplate/theme && yarn run test:e2e:generate:report", + "test:e2e:bp:hl": "cd packages/boilerplate/theme && yarn run test:e2e:hl", "test:e2e:ct": "cd packages/commercetools/theme && yarn run test:e2e", - "test:e2e:ct:hl": "cd packages/commercetools/theme && yarn run test:e2e:hl", "test:e2e:ct:generate:report": "cd packages/commercetools/theme && yarn run test:e2e:generate:report", - "core:changelog": "cd packages/core/docs/scripts && node changelog --in ../changelog --out ../contributing/changelog.md", - "ct:changelog": "cd packages/core/docs/scripts && node changelog --in ../commercetools/changelog --out ../commercetools/changelog.md" + "test:e2e:ct:hl": "cd packages/commercetools/theme && yarn run test:e2e:hl" }, "devDependencies": { "@babel/core": "^7.10.5", + "@commitlint/cli": "^13.1.0", + "@commitlint/config-conventional": "^13.1.0", + "@commitlint/config-lerna-scopes": "^13.1.0", "@rollup/plugin-babel": "^5.1.0", "@rollup/plugin-replace": "^2.3.3", - "@types/jest": "^24.0.23", + "@types/jest": "^26.0.24", "@types/node": "^12.12.14", "@typescript-eslint/eslint-plugin": "^4.15.2", "@typescript-eslint/parser": "^4.15.2", "@vue/eslint-config-typescript": "^7.0.0", + "commitizen": "^4.2.4", "cross-env": "^6.0.3", + "cz-conventional-changelog": "^3.3.0", "eslint": "^7.20.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", @@ -74,14 +69,14 @@ "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.6.0", "husky": "^4.2.3", - "jest": "^24.9.0", + "jest": "^27.0.6", "lerna": "^3.15.0", "lint-staged": "^10.0.7", "rimraf": "^3.0.2", "rollup": "^1.25.2", "rollup-plugin-terser": "^5.1.2", "rollup-plugin-typescript2": "^0.30.0", - "ts-jest": "^24.2.0", + "ts-jest": "^27.0.3", "ts-node": "^8.4.1", "tslib": "^2.1.0", "typescript": "^4.2.2", @@ -100,5 +95,15 @@ }, "lint-staged": { "*.{js,ts,vue}": "eslint --fix" + }, + "config": { + "commitizen": { + "path": "cz-conventional-changelog", + "maxHeaderWidth": 100, + "maxLineWidth": 100 + } + }, + "engines": { + "node": ">=12.x" } } diff --git a/packages/boilerplate/api-client/package.json b/packages/boilerplate/api-client/package.json index 2f345e51ce..102a11129f 100644 --- a/packages/boilerplate/api-client/package.json +++ b/packages/boilerplate/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-api", - "version": "2.4.2", + "version": "2.4.1", "private": true, "sideEffects": false, "server": "server/index.js", @@ -14,7 +14,7 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/core": "~2.4.2" + "@vue-storefront/core": "~2.4.1" }, "devDependencies": { "rollup-plugin-typescript2": "^0.30.0", diff --git a/packages/boilerplate/composables/package.json b/packages/boilerplate/composables/package.json index 88882997c4..a961d40817 100644 --- a/packages/boilerplate/composables/package.json +++ b/packages/boilerplate/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate", - "version": "2.4.2", + "version": "2.4.1", "private": true, "sideEffects": false, "main": "lib/index.cjs.js", @@ -13,8 +13,8 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/boilerplate-api": "~2.4.2", - "@vue-storefront/core": "~2.4.2" + "@vue-storefront/boilerplate-api": "~2.4.1", + "@vue-storefront/core": "~2.4.1" }, "devDependencies": { "rollup-plugin-typescript2": "^0.30.0", diff --git a/packages/boilerplate/composables/src/getters/checkoutGetters.ts b/packages/boilerplate/composables/src/getters/checkoutGetters.ts deleted file mode 100644 index 6b5c328c1b..0000000000 --- a/packages/boilerplate/composables/src/getters/checkoutGetters.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { CheckoutGetters } from '@vue-storefront/core'; -import type { ShippingMethod } from '@vue-storefront/boilerplate-api/src/types'; - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getShippingMethodId(method: ShippingMethod): string { - return ''; -} - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getShippingMethodName(method: ShippingMethod): string { - return ''; -} - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getShippingMethodDescription(method: ShippingMethod): string { - return ''; -} - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getShippingMethodPrice(method: ShippingMethod): number { - return 0; -} - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getFormattedPrice(price: number): string { - return ''; -} - -export const checkoutGetters: CheckoutGetters = { - getShippingMethodId, - getShippingMethodName, - getShippingMethodDescription, - getFormattedPrice, - getShippingMethodPrice -}; diff --git a/packages/boilerplate/composables/src/index.ts b/packages/boilerplate/composables/src/index.ts index 4dd24c0aa8..3d9324e153 100644 --- a/packages/boilerplate/composables/src/index.ts +++ b/packages/boilerplate/composables/src/index.ts @@ -19,7 +19,6 @@ export { useWishlist } from './useWishlist'; // Getters export { cartGetters } from './getters/cartGetters'; export { categoryGetters } from './getters/categoryGetters'; -export { checkoutGetters } from './getters/checkoutGetters'; export { facetGetters } from './getters/facetGetters'; export { forgotPasswordGetters } from './getters/forgotPasswordGetters'; export { orderGetters } from './getters/orderGetters'; diff --git a/packages/boilerplate/theme/lang/de.js b/packages/boilerplate/theme/lang/de.js index b1c7ea702d..8d83e80a01 100644 --- a/packages/boilerplate/theme/lang/de.js +++ b/packages/boilerplate/theme/lang/de.js @@ -142,5 +142,14 @@ export default { 'Password': 'Passwort', 'Repeat Password': 'Wiederhole das Passwort', 'Forgot Password Modal Email': 'E-Mail, mit der Sie sich anmelden:', - forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.' + forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.', + subscribeToNewsletterModalContent: + 'Wenn Sie sich für den Newsletter angemeldet haben, erhalten Sie spezielle Angebote und Nachrichten von VSF per E-Mail. Wir werden Ihre E-Mail zu keinem Zeitpunkt an Dritte verkaufen oder weitergeben. Bitte beachten Sie unsere {0}.', + 'Subscribe': 'Abonnieren', + 'Subscribe to newsletter': 'Anmeldung zum Newsletter', + 'Email address': 'E-Mail Adresse', + 'I confirm subscription': 'Ich bestätige das Abonnement', + 'You can unsubscribe at any time': 'Sie können sich jederzeit abmelden', + 'show more': 'mehr anzeigen', + 'hide': 'ausblenden' }; diff --git a/packages/boilerplate/theme/lang/en.js b/packages/boilerplate/theme/lang/en.js index 489d52df67..482677f5a8 100644 --- a/packages/boilerplate/theme/lang/en.js +++ b/packages/boilerplate/theme/lang/en.js @@ -142,5 +142,14 @@ export default { 'Password': 'Password', 'Repeat Password': 'Repeat Password', 'Forgot Password Modal Email': 'Email you are using to sign in:', - forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.' + forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.', + subscribeToNewsletterModalContent: + 'After signing up for the newsletter, you will receive special offers and messages from VSF via email. We will not sell or distribute your email to any third party at any time. Please see our {0}.', + 'Subscribe': 'Subscribe', + 'Subscribe to newsletter': 'Subscribe to newsletter', + 'Email address': 'Email address', + 'I confirm subscription': 'I confirm subscription', + 'You can unsubscribe at any time': 'You can unsubscribe at any time', + 'show more': 'show more', + 'hide': 'hide' }; diff --git a/packages/boilerplate/theme/package.json b/packages/boilerplate/theme/package.json index ab8fe18cf6..c11e58bb60 100644 --- a/packages/boilerplate/theme/package.json +++ b/packages/boilerplate/theme/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-theme", - "version": "2.4.2", + "version": "2.4.1", "private": true, "scripts": { "dev": "nuxt", @@ -14,10 +14,10 @@ }, "dependencies": { "@storefront-ui/vue": "^0.10.3", - "@vue-storefront/boilerplate": "~2.4.2", - "@vue-storefront/middleware": "~2.4.2", - "@vue-storefront/nuxt": "~2.4.2", - "@vue-storefront/nuxt-theme": "~2.4.2", + "@vue-storefront/boilerplate": "~2.4.1", + "@vue-storefront/middleware": "~2.4.1", + "@vue-storefront/nuxt": "~2.4.1", + "@vue-storefront/nuxt-theme": "~2.4.1", "cookie-universal-nuxt": "^2.1.3", "core-js": "^2.6.5", "nuxt": "^2.13.3", diff --git a/packages/commercetools/api-client/package.json b/packages/commercetools/api-client/package.json index 94a8401696..a111eb4a6c 100644 --- a/packages/commercetools/api-client/package.json +++ b/packages/commercetools/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools-api", - "version": "1.3.2", + "version": "1.3.1", "sideEffects": false, "server": "server/index.js", "main": "lib/index.cjs.js", @@ -15,7 +15,7 @@ "dependencies": { "@apollo/client": "^3.3.21", "@commercetools/sdk-auth": "^3.0.12", - "@vue-storefront/core": "~2.4.2", + "@vue-storefront/core": "~2.4.1", "apollo-cache-inmemory": "^1.6.6", "apollo-client": "^2.6.10", "apollo-link": "^1.2.14", diff --git a/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts b/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts deleted file mode 100644 index d0f311caaa..0000000000 --- a/packages/commercetools/api-client/src/api/categorySearch/defaultQuery.ts +++ /dev/null @@ -1,56 +0,0 @@ -import gql from 'graphql-tag'; - -export default gql` - query ($filter: [SearchFilter!], $acceptLanguage: [Locale!]) { - categorySearch(filters: $filter) { - offset - count - total - results { - id - slug(acceptLanguage: $acceptLanguage) - name(acceptLanguage: $acceptLanguage) - description(acceptLanguage: $acceptLanguage) - childCount - stagedProductCount - parent { - ...DefaultCategorySearch - parent { - ...DefaultCategorySearch - parent { - ...DefaultCategorySearch - } - } - } - children { - ...DefaultCategorySearch - } - } - } -} - -fragment DefaultCategorySearch on CategorySearch { - id - slug(acceptLanguage: $acceptLanguage) - name(acceptLanguage: $acceptLanguage) - childCount - stagedProductCount - children { - ...CategorySearchChildren - children { - ...CategorySearchChildren - children { - ...CategorySearchChildren - } - } - } -} - -fragment CategorySearchChildren on CategorySearch { - id - slug(acceptLanguage: $acceptLanguage) - name(acceptLanguage: $acceptLanguage) - childCount - stagedProductCount -} -`; diff --git a/packages/commercetools/api-client/src/api/categorySearch/index.ts b/packages/commercetools/api-client/src/api/categorySearch/index.ts deleted file mode 100644 index 9b82a47cf1..0000000000 --- a/packages/commercetools/api-client/src/api/categorySearch/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import gql from 'graphql-tag'; -import defaultQuery from './defaultQuery'; -import { CategorySearchResult } from '../../types/GraphQL'; -import { buildCategoryFilter } from '../../helpers/search'; -import ApolloClient from 'apollo-client'; -import { CustomQuery } from '@vue-storefront/core'; -import { CategoryWhereSearch } from '@vue-storefront/commercetools-api'; - -export interface CategoryData { - categorySearch: CategorySearchResult; -} - -export interface CategorySearchParams { - filter?: CategoryWhereSearch; - limit?: number; - offset?: number; -} - -const categorySearch = async (context, params?: CategorySearchParams, customQuery?: CustomQuery) => { - const { acceptLanguage } = context.config; - const defaultVariables = params ? { - filter: buildCategoryFilter(context.config, params), - limit: params.limit, - offset: params.offset, - acceptLanguage - } : { acceptLanguage }; - - const { categorySearch } = context.extendQuery(customQuery, - { categorySearch: { query: defaultQuery, variables: defaultVariables } } - ); - const request = await (context.client as ApolloClient).query({ - query: gql`${categorySearch.query}`, - variables: categorySearch.variables, - fetchPolicy: 'no-cache' - }); - - return request; -}; - -export default categorySearch; diff --git a/packages/commercetools/api-client/src/api/index.ts b/packages/commercetools/api-client/src/api/index.ts index bdd26c64b8..4197c828bc 100644 --- a/packages/commercetools/api-client/src/api/index.ts +++ b/packages/commercetools/api-client/src/api/index.ts @@ -10,7 +10,6 @@ export { default as customerUpdateMe } from './customerUpdateMe'; export { default as deleteCart } from './deleteCart'; export { default as getCart } from './getCart'; export { default as getCategory } from './getCategory'; -export { default as categorySearch } from './categorySearch'; export { default as getMe } from './getMe'; export { default as getOrders } from './getOrders'; export { default as getProduct } from './getProduct'; diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts index 7756ce3ffb..743834e000 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/authHelpers.ts @@ -1,6 +1,7 @@ import SdkAuth, { TokenProvider } from '@commercetools/sdk-auth'; +import { Logger } from '@vue-storefront/core'; import { Config, ApiConfig } from '../../types/setup'; -import { isAnonymousSession, isUserSession } from '../utils'; +import { isAnonymousSession, isUserSession, getAccessToken } from '../utils'; import fetch from 'isomorphic-fetch'; export const createAuthClient = (config: ApiConfig): SdkAuth => { @@ -24,8 +25,13 @@ export const createTokenProvider = (settings: Config, { return new TokenProvider({ sdkAuth, fetchTokenInfo: (sdkAuthInstance) => sdkAuthInstance.clientCredentialsFlow(), - onTokenInfoChanged: (tokenInfo) => settings.auth.onTokenChange(tokenInfo), - onTokenInfoRefreshed: (tokenInfo) => settings.auth.onTokenChange(tokenInfo) + onTokenInfoChanged: (tokenInfo) => { + Logger.debug('TokenProvider.onTokenInfoChanged', getAccessToken(tokenInfo)); + settings.auth.onTokenChange(tokenInfo); + }, + onTokenInfoRefreshed: (tokenInfo) => { + Logger.debug('TokenProvider.onTokenInfoRefreshed', getAccessToken(tokenInfo)); + } }, currentToken); }; diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts index 72d212d779..7205beaaa5 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/createCommerceToolsConnection.ts @@ -1,5 +1,6 @@ import { Config } from '../../types/setup'; import { Logger } from '@vue-storefront/core'; +import { getAccessToken } from '../utils'; import { createHttpLink } from 'apollo-link-http'; import { createErrorHandler } from './graphqlError'; import { setContext } from 'apollo-link-context'; @@ -11,6 +12,8 @@ import { createAuthClient, createTokenProvider } from './authHelpers'; export const createCommerceToolsConnection = (settings: Config): any => { let currentToken: any = settings.auth.onTokenRead(); + Logger.debug('createCommerceToolsConnection', getAccessToken(currentToken)); + const sdkAuth = createAuthClient(settings.api); const tokenProvider = createTokenProvider(settings, { sdkAuth, currentToken }); const httpLink = createHttpLink({ uri: settings.api.uri, fetch }); @@ -18,14 +21,8 @@ export const createCommerceToolsConnection = (settings: Config): any => { const authLinkBefore = setContext(async (apolloReq, { headers }) => { Logger.debug('Apollo authLinkBefore', apolloReq.operationName); - - currentToken = await handleBeforeAuth({ - settings, - sdkAuth, - tokenProvider, - apolloReq, - currentToken - }); + currentToken = await handleBeforeAuth({ sdkAuth, tokenProvider, apolloReq, currentToken }); + Logger.debug('Apollo authLinkBefore, finished, generated token: ', getAccessToken(currentToken)); return { headers: { @@ -50,16 +47,11 @@ export const createCommerceToolsConnection = (settings: Config): any => { }); const errorRetry = new RetryLink({ - attempts: handleRetry({ settings, tokenProvider }), + attempts: handleRetry({ tokenProvider }), delay: () => 0 }); - const apolloLink = ApolloLink.from([ - onErrorLink, - errorRetry, - authLinkBefore, - authLinkAfter.concat(httpLink) - ]); + const apolloLink = ApolloLink.from([onErrorLink, errorRetry, authLinkBefore, authLinkAfter.concat(httpLink)]); return { apolloLink, diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts index 594701ce25..24ce19b397 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/linkHandlers.ts @@ -1,153 +1,49 @@ import { Logger } from '@vue-storefront/core'; -import { isAnonymousSession, isUserSession } from '../utils'; -import { isServerOperation, isAnonymousOperation, isUserOperation } from './restrictedOperations'; +import { isAnonymousSession, isUserSession, getAccessToken } from '../utils'; +import { isAnonymousOperation, isUserOperation } from './restrictedOperations'; -/** - * Returns access token for the Server Middleware. It usually has more permissions than anonymous / user access token. - * - * If the configuration doesn't specify server-specific API client configuration, it will fallback to customer access tokens configuration. - */ -async function generateServerAccessToken({ - settings, - apolloReq, - sdkAuth -}): Promise { - Logger.debug(`Generating server access token for operation "${ apolloReq.operationName }"`); +export const handleBeforeAuth = async ({ sdkAuth, tokenProvider, apolloReq, currentToken }) => { + const isAnonymous = isAnonymousSession(currentToken); + const isUser = isUserSession(currentToken); + const isGuest = !isAnonymous && !isUser; - const { clientId, clientSecret, scopes } = settings.serverApi || settings.api; + if (isGuest && isAnonymousOperation(apolloReq.operationName)) { + Logger.debug('Apollo authLinkBefore, anonymousFlow', apolloReq.operationName); - const token = await sdkAuth.clientCredentialsFlow({ - credentials: { - clientId, - clientSecret - }, - scopes - }); + const token = await sdkAuth.anonymousFlow(); + tokenProvider.setTokenInfo(token); + Logger.debug('Apollo authLinkBefore, anonymousFlow, generated token: ', getAccessToken(token)); - Logger.debug(`Successfully generated server access token for operation "${ apolloReq.operationName }"`); - - return token; -} - -/** - * Returns access token for the anonymous session. - */ -async function generateAnonymousAccessToken({ - apolloReq, - sdkAuth, - tokenProvider -}): Promise { - Logger.debug(`Generating anonymous access token for operation "${ apolloReq.operationName }"`); - - const token = await sdkAuth.anonymousFlow(); - tokenProvider.setTokenInfo(token); - - Logger.debug(`Successfully generated anonymous access token for operation "${ apolloReq.operationName }"`); - - return token; -} - -/** - * Returns access token for the logged in customer. - */ -async function generateUserAccessToken({ - apolloReq, - sdkAuth, - tokenProvider -}): Promise { - Logger.debug(`Generating user access token for operation "${ apolloReq.operationName }"`); - - const { email, password } = apolloReq.variables.draft; - const token = await sdkAuth.customerPasswordFlow({ username: email, password }); - tokenProvider.setTokenInfo(token); - - Logger.debug(`Successfully generated user access token for operation "${ apolloReq.operationName }"`); - - return token; -} - -/** - * The handler that checks if it's necessary to generate a server or anonymous access token. - */ -export const handleBeforeAuth = async ({ - settings, - sdkAuth, - tokenProvider, - apolloReq, - currentToken -}) => { - const isGuest = !isAnonymousSession(currentToken) && !isUserSession(currentToken) && isAnonymousOperation(apolloReq.operationName); - const isServer = isServerOperation(apolloReq.operationName); - - const customToken = await settings.customToken?.({ - settings, - isGuest, - isServer, - sdkAuth, - tokenProvider, - apolloReq, - currentToken - }); - - if (customToken) { - return customToken; - } - - if (isServer) { - return await generateServerAccessToken({ - settings, - apolloReq, - sdkAuth - }); - } - - if (isGuest) { - return await generateAnonymousAccessToken({ - apolloReq, - sdkAuth, - tokenProvider - }); + return token; } return tokenProvider.getTokenInfo(); }; -/** - * The handler that generates an access token for the user if all three conditions are met: - * - the customer is not already logged in; - * - the customer performed one of the user-specific operations; - * - response from the commercetools doesn't contain any errors, meaning that the given credentials are valid; - */ export const handleAfterAuth = async ({ sdkAuth, tokenProvider, apolloReq, currentToken, response }) => { - if (!isUserSession(currentToken) && isUserOperation(apolloReq.operationName) && !response.errors?.length) { - return generateUserAccessToken({ - apolloReq, - sdkAuth, - tokenProvider - }); + if (!isUserSession(currentToken) && isUserOperation(apolloReq.operationName)) { + const { email, password } = apolloReq.variables.draft; + Logger.debug('Apollo authLinkAfter, customerPasswordFlow', apolloReq.operationName); + + if (!response.errors?.length) { + const token = await sdkAuth.customerPasswordFlow({ username: email, password }); + tokenProvider.setTokenInfo(token); + Logger.debug('Apollo authLinkAfter, customerPasswordFlow, generated token: ', getAccessToken(token)); + + return token; + } + + return currentToken; } return currentToken; }; -/** - * The handler that retries requests to the commercetools server if specific conditions are met. - */ -export const handleRetry = ({ settings, tokenProvider }) => (count, operation, error) => { +export const handleRetry = ({ tokenProvider }) => (count, operation, error) => { if (count > 3) { return false; } - const customRetry = settings.customRetry?.({ - count, - operation, - error - }); - - if (customRetry) { - return true; - } - if (error?.result?.message === 'invalid_token') { Logger.debug(`Apollo retry-link, the operation (${operation.operationName}) sent with wrong token, creating a new one... (attempt: ${count})`); tokenProvider.invalidateTokenInfo(); diff --git a/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts b/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts index 2f08e9c5ba..f3623e64b3 100644 --- a/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts +++ b/packages/commercetools/api-client/src/helpers/commercetoolsLink/restrictedOperations.ts @@ -1,10 +1,5 @@ /* istanbul ignore file */ const restrictedOperations = { - server: [ - 'customerCreatePasswordResetToken', - 'createReview', - 'reviews' - ], anonymous: [ 'createCart', 'createMyShoppingList' @@ -15,14 +10,5 @@ const restrictedOperations = { ] }; -export function isServerOperation(operationName: string): boolean { - return restrictedOperations.server.includes(operationName); -} - -export function isAnonymousOperation(operationName: string): boolean { - return restrictedOperations.anonymous.includes(operationName); -} - -export function isUserOperation(operationName: string): boolean { - return restrictedOperations.user.includes(operationName); -} +export const isAnonymousOperation = (operationName) => restrictedOperations.anonymous.includes(operationName); +export const isUserOperation = (operationName) => restrictedOperations.user.includes(operationName); diff --git a/packages/commercetools/api-client/src/helpers/search/index.ts b/packages/commercetools/api-client/src/helpers/search/index.ts index 48ce064827..63ec298859 100644 --- a/packages/commercetools/api-client/src/helpers/search/index.ts +++ b/packages/commercetools/api-client/src/helpers/search/index.ts @@ -105,24 +105,6 @@ const buildCategoryWhere = (settings: Config, search: CategoryWhereSearch) => { return undefined; }; -const buildCategoryFilter = (settings: Config, filter: CategoryWhereSearch) => { - const { acceptLanguage } = settings; - - if (filter?.catId) { - return [`id:"${filter.catId}"`]; - } - - if (filter?.slug) { - return [`slug.${acceptLanguage[0]}:"${filter.slug}"`]; - } - - if (filter?.key) { - return [`key:"${filter.key}"`]; - } - - return undefined; -}; - const buildOrderWhere = (search: OrderWhereSearch): string => { if (search?.id) { return `id="${search.id}"`; @@ -138,7 +120,6 @@ const buildOrderWhere = (search: OrderWhereSearch): string => { export { buildProductWhere, buildCategoryWhere, - buildCategoryFilter, buildOrderWhere, buildInventoryEntriesWhere }; diff --git a/packages/commercetools/api-client/src/helpers/utils.ts b/packages/commercetools/api-client/src/helpers/utils.ts index d0191f9c74..9c7d4c3cd2 100644 --- a/packages/commercetools/api-client/src/helpers/utils.ts +++ b/packages/commercetools/api-client/src/helpers/utils.ts @@ -1,5 +1,6 @@ export const isAnonymousSession = (token) => token?.scope?.includes('anonymous_id'); export const isUserSession = (token) => token?.scope?.includes('customer_id'); +export const getAccessToken = (token) => token ? token.access_token : null; export const getStoreKey = (store: string | undefined) => store ? ({ storeKey: store?.split('/')[0] }) : {}; diff --git a/packages/commercetools/api-client/src/index.server.ts b/packages/commercetools/api-client/src/index.server.ts index 9c08a7d5af..5af3fe3b7d 100644 --- a/packages/commercetools/api-client/src/index.server.ts +++ b/packages/commercetools/api-client/src/index.server.ts @@ -2,7 +2,7 @@ import ApolloClient from 'apollo-client'; import { InMemoryCache } from 'apollo-cache-inmemory'; import * as api from './api'; -import { Config, ClientInstance, CT_COOKIE_NAME } from './types/setup'; +import { Config, ClientInstance } from './types/setup'; import { createCommerceToolsConnection } from './helpers/commercetoolsLink/createCommerceToolsConnection'; import { defaultSettings } from './helpers/apiClient/defaultSettings'; import { apiClientFactory, ApiClientExtension } from '@vue-storefront/core'; @@ -80,15 +80,28 @@ const tokenExtension: ApiClientExtension = { ...configuration, ...getI18nConfig(req, configuration), auth: { - onTokenChange: (token) => res.cookie( - CT_COOKIE_NAME, - JSON.stringify(token), - token?.expires_at ? { expires: new Date(token.expires_at) } : {} - ), - - onTokenRead: () => currentToken, - - onTokenRemove: () => res.clearCookie(CT_COOKIE_NAME) + onTokenChange: (newToken) => { + if (!currentToken || currentToken.access_token !== newToken.access_token) { + res.cookie( + 'vsf-commercetools-token', + JSON.stringify(newToken), + newToken?.expires_at ? { expires: new Date(newToken.expires_at) } : {} + ); + } + }, + + onTokenRead: () => { + res.cookie( + 'vsf-commercetools-token', + rawCurrentToken, + currentToken?.expires_at ? { expires: new Date(currentToken.expires_at) } : {} + ); + return currentToken; + }, + + onTokenRemove: () => { + delete req.cookies['vsf-commercetools-token']; + } } }) }; diff --git a/packages/commercetools/api-client/src/types/Api.ts b/packages/commercetools/api-client/src/types/Api.ts index 5497c87feb..4cc2b015ad 100644 --- a/packages/commercetools/api-client/src/types/Api.ts +++ b/packages/commercetools/api-client/src/types/Api.ts @@ -21,7 +21,6 @@ import { Address, LineItem, CategoryQueryResult, - CategorySearchResult, ProductQueryResult, Me, CartQueryInterface, @@ -128,7 +127,6 @@ interface ApiMethods { deleteCart ({ id, version }: CartDetails): Promise; getCart (cartId: string): Promise; getCategory (params): Promise>; - categorySearch (params): Promise>; getMe (params?: GetMeParams): Promise<{ data: { me: Me } }>; getOrders (params): Promise<{ data: { me: Me } }>; getProduct (params): Promise>; diff --git a/packages/commercetools/api-client/src/types/setup.ts b/packages/commercetools/api-client/src/types/setup.ts index f57e374f74..c6778bfff3 100644 --- a/packages/commercetools/api-client/src/types/setup.ts +++ b/packages/commercetools/api-client/src/types/setup.ts @@ -2,11 +2,6 @@ import SdkAuth, { TokenProvider } from '@commercetools/sdk-auth'; import ApolloClient, { ApolloClientOptions } from 'apollo-client'; -/** - * Name of the cookie storing the commercetools access token. - */ -export const CT_COOKIE_NAME = 'vsf-commercetools-token'; - export interface ClientInstance extends ApolloClient { sdkAuth?: SdkAuth; tokenProvider?: TokenProvider; @@ -78,7 +73,6 @@ export interface CustomerCredentials { export interface Config { client?: ApolloClient; api: ApiConfig; - serverApi?: Pick; customOptions?: ApolloClientOptions; currency: string; locale: string; diff --git a/packages/commercetools/composables/__tests__/setup.ts b/packages/commercetools/composables/__tests__/setup.ts index ca35865e01..e98a3f1270 100644 --- a/packages/commercetools/composables/__tests__/setup.ts +++ b/packages/commercetools/composables/__tests__/setup.ts @@ -1,4 +1,8 @@ +require('jsdom-global')(); import Vue from 'vue'; import VueCompositionApi from '@vue/composition-api'; +Vue.config.productionTip = false; +Vue.config.devtools = false; + Vue.use(VueCompositionApi); diff --git a/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts b/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts index ae6e7ab5f7..ae0f47c5a7 100644 --- a/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts +++ b/packages/commercetools/composables/__tests__/useStore/factoryParams.spec.ts @@ -37,16 +37,9 @@ describe('[commercetools-composables] useStore factoryParams', () => { it('changes selected store and reloads page', async () => { const STORES_ID = 'stores id'; - const location = { - reload: jest.fn() - }; - - const _window = jest.spyOn( - global, 'window', 'get' - ); - - _window.mockImplementation(function () { - return ({ location } as unknown) as Window & typeof globalThis; + Object.defineProperty(window, 'location', { + writable: true, + value: { reload: jest.fn() } }); const storeService = { @@ -71,6 +64,6 @@ describe('[commercetools-composables] useStore factoryParams', () => { expect(await useStoreFactoryParams.change((context as unknown) as Context, (params as unknown) as UseStoreFactoryChangeParamArguments)).toBe(null); expect(storeService.changeCurrentStore).toHaveBeenCalledWith(STORES_ID); - expect(location.reload).toHaveBeenCalled(); + expect(window.location.reload).toHaveBeenCalled(); }); }); diff --git a/packages/commercetools/composables/jest.config.js b/packages/commercetools/composables/jest.config.js index 23dd554685..aa3a7af6f5 100644 --- a/packages/commercetools/composables/jest.config.js +++ b/packages/commercetools/composables/jest.config.js @@ -2,22 +2,14 @@ const baseConfig = require('./../../jest.base.config'); module.exports = { ...baseConfig, - coverageReporters: ['html', 'lcov', 'text'], rootDir: __dirname, setupFilesAfterEnv: ['./__tests__/setup.ts'], - watchPathIgnorePatterns: ['/node_modules/'], coveragePathIgnorePatterns: [ '/node_modules/', '/src/context.d.ts', // Ignore mocked composables 'UserBilling', - 'UserShipping', - - // TODO: https://github.com/DivanteLtd/vue-storefront/issues/5136 - '/src/getters/cartGetters.ts', - '/src/getters/checkoutGetters.ts', - '/src/getters/userGetters.ts', - '/src/getters/productGetters.ts' + 'UserShipping' ] }; diff --git a/packages/commercetools/composables/package.json b/packages/commercetools/composables/package.json index a07fa56c84..a47e10f810 100644 --- a/packages/commercetools/composables/package.json +++ b/packages/commercetools/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools", - "version": "1.3.2", + "version": "1.3.1", "sideEffects": false, "main": "lib/index.cjs.js", "module": "lib/index.es.js", @@ -13,13 +13,15 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/commercetools-api": "~1.3.2", - "@vue-storefront/core": "~2.4.2", + "@vue-storefront/commercetools-api": "~1.3.1", + "@vue-storefront/core": "~2.4.1", "js-cookie": "^2.2.1", "vue": "^2.6.x" }, "devDependencies": { "@vue/test-utils": "^1.0.0-beta.30", + "jsdom": "^16.6.0", + "jsdom-global": "^3.0.2", "vue-template-compiler": "^2.6.x" }, "publishConfig": { diff --git a/packages/commercetools/composables/src/getters/categoryGetters.ts b/packages/commercetools/composables/src/getters/categoryGetters.ts index 32e937e92f..dad423c138 100644 --- a/packages/commercetools/composables/src/getters/categoryGetters.ts +++ b/packages/commercetools/composables/src/getters/categoryGetters.ts @@ -1,15 +1,14 @@ import { CategoryGetters, AgnosticCategoryTree } from '@vue-storefront/core'; -import { Category, CategorySearch } from './../types/GraphQL'; +import { Category } from './../types/GraphQL'; -export const getCategoryTree = (category: Category | CategorySearch): AgnosticCategoryTree | null => { - const getRoot = (category: Category | CategorySearch): Category => (category.parent ? getRoot(category.parent) : category) as Category; - const buildTree = (rootCategory: Category | CategorySearch) => ({ +export const getCategoryTree = (category: Category): AgnosticCategoryTree | null => { + const getRoot = (category: Category): Category => (category.parent ? getRoot(category.parent) : category); + const buildTree = (rootCategory: Category) => ({ label: rootCategory.name, slug: rootCategory.slug, id: rootCategory.id, isCurrent: rootCategory.id === category.id, - items: rootCategory.children?.map(buildTree), - count: rootCategory.stagedProductCount + items: rootCategory.children.map(buildTree) }); if (!category) { diff --git a/packages/commercetools/composables/src/types/index.ts b/packages/commercetools/composables/src/types/index.ts index a30a0c1685..f3b2ee7b21 100644 --- a/packages/commercetools/composables/src/types/index.ts +++ b/packages/commercetools/composables/src/types/index.ts @@ -2,7 +2,6 @@ import { Filter, ProductVariant, Category, - CategorySearch, ResetPasswordResponse, CreatePasswordResetTokenResponse, Store @@ -30,7 +29,7 @@ export interface ProductsSearchParams { export interface FacetResultsData { products: ProductVariant[]; - categories: Category[]|CategorySearch[]; + categories: Category[]; facets: Record; total: number; perPageOptions: number[]; diff --git a/packages/commercetools/composables/src/useFacet/index.ts b/packages/commercetools/composables/src/useFacet/index.ts index a7dc2bed0e..46d6d9278c 100644 --- a/packages/commercetools/composables/src/useFacet/index.ts +++ b/packages/commercetools/composables/src/useFacet/index.ts @@ -10,8 +10,9 @@ const ITEMS_PER_PAGE = [20, 40, 100]; const useFacetFactoryParams = { search: async (context: Context, params: FacetSearchResult): Promise => { const itemsPerPage = params.input.itemsPerPage; - const categoryResponse = await context.$ct.api.categorySearch({ slug: params.input.categorySlug }); - const categories = categoryResponse.data.categorySearch.results; + + const categoryResponse = await context.$ct.api.getCategory({ slug: params.input.categorySlug }); + const categories = categoryResponse.data.categories.results; const inputFilters = params.input.filters; const filters = Object.keys(inputFilters).reduce((prev, curr) => ([ ...prev, diff --git a/packages/commercetools/composables/src/useUser/factoryParams.ts b/packages/commercetools/composables/src/useUser/factoryParams.ts index b9e1060fb1..58a3306553 100644 --- a/packages/commercetools/composables/src/useUser/factoryParams.ts +++ b/packages/commercetools/composables/src/useUser/factoryParams.ts @@ -15,7 +15,6 @@ const load = async (context: Context, {customQuery}) => { } const profile = await context.$ct.api.getMe({ customer: true }, customQuery); - context.setCart(profile.data.me.activeCart); return profile.data.me.customer; }; diff --git a/packages/commercetools/theme/components/AppHeader.vue b/packages/commercetools/theme/components/AppHeader.vue index baeae478d5..f16136981c 100644 --- a/packages/commercetools/theme/components/AppHeader.vue +++ b/packages/commercetools/theme/components/AppHeader.vue @@ -97,7 +97,6 @@ -``` - -## Checking if the user is logged in - -Many interactions in the application are only available ( `useUser` prefixed functions like `useUserOrder`) or look different if the customer is logged in. To check if the user is authenticated, we will use `isAuthenticated` method from `useUser`. - -Like with all other composables, it's important to remember to call `load` before accessing any other property or function of `useUser`. Otherwise, `isAuthenticated` will always return `false`. - -```js{8,16} -import { useUser } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - isAuthenticated - } = useUser(); - - onSSR(async () => { - await load(); - }); - - return { - isAuthenticated - }; - } -} -``` - -## Logging in - -Signing in can be done using `login` method. -```vue - - - -``` -`user` [ref](https://v3.vuejs.org/api/refs-api.html#ref) either contains an object of the signed-in user or equals `null` - -## Logging out - -Signing out can be done using `logout` method. -```vue - - - -``` - -## Forgot Password - -Usually, the process of resetting a user password consists of two steps: - -1. Generating reset password token for a given email address: - -```vue - - - -``` - -2. Setting a new user password using the token and new password. - -```vue - - - -``` - -## How does it work in integrations? - -Below you can find detailed information on how we're handling authentication in different integrations. - diff --git a/packages/core/docs/commercetools/guide/cart.md b/packages/core/docs/commercetools/guide/cart.md deleted file mode 100644 index 9ddbbc65dd..0000000000 --- a/packages/core/docs/commercetools/guide/cart.md +++ /dev/null @@ -1,248 +0,0 @@ -# Cart - -Customer's cart can be loaded using `useCart` composable and data can be accessed using `cartGetters`. - -## Loading and creating the cart - -The `load` method will load your cart from the server or create a new one if it doesn't exist. The `cart` object will be `null` until you load it. - - -```js -import { useCart } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -export default { - setup() { - const { - cart, - load - } = useCart(); - - onSSR(async () => { - await load(); - }); - - return { - cart, - load - }; - } -}; -``` - - -## Adding item to the cart - -To add the product to the cart you can use `addItem` method: - -```vue - - -``` - -## Removing items and changing their quantity - -To remove an item from the cart use `removeItem` method, and similarly to update quantity use `updateItemQty` method: - -```vue - - - -``` - -## Checking if an item is in the cart - -To check if a specific product configuration is already in the cart, pass it to `isInCart` method: - -```js -import { computed } from '@vue/composition-api'; -import { useCart } from '@vue-storefront/commercetools'; - -export default { - props: { - products: { - type: Array, - required: true - } - }, - setup() { - const { isInCart } = useCart(); - - return { - isInCart - }; - } -}; - -``` - -## Removing all cart items at once - -To clear cart items (not delete it) use `clear` method. - -```vue - - -``` - - -## Applying and removing discount coupons - -You can apply promotional coupons to your cart with `applyCoupon` and remove with `removeCoupon` method: - -```vue - - -``` diff --git a/packages/core/docs/commercetools/guide/checkout.md b/packages/core/docs/commercetools/guide/checkout.md deleted file mode 100644 index bd146701e8..0000000000 --- a/packages/core/docs/commercetools/guide/checkout.md +++ /dev/null @@ -1,365 +0,0 @@ -# Checkout - -> This document only outlines the general checkout flow. Each eCommerce platform, Payment provider, or Shipping provider could implement it slightly differently. Please follow the instructions from the documentation of your payment or shipping provider to learn about its caveats - -Checkout is a process of providing shipping and billing addresses and selecting shipping and payment methods needed to place an order and pay for it. - -## Collecting and saving shipping details - -Shipping details are information about the recipient's address required to ship the order. - -You can load shipping details by calling the `load` method in `useShipping` composable and accessing the `shipping` property after loading is done. -```js{8,16} -import { useShipping } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - shipping - } = useShipping(); - - onSSR(async () => { - await load(); - }); - - return { - shipping - }; - } -} -``` -`shipping` property returns `null` if the `load` function was not invoked or nothing is saved. - -You can use the `save` method to save shipping details, so they are available next time you `load` them. - -```vue{2,15,24} - - - -``` - -## Selecting a shipping method - -`VsfShippingProvider` is a component that aggregates one or more shipping methods from a single provider like FedEx or DHL. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. - -The component is responsible for: -- Loading and displaying available shipping methods. -- Loading selected shipping method. -- Selecting and configuring shipping method. - -All you have to do is to import a component and add it to the template. - -```vue - -``` - -`VsfShippingProvider` sets `state.value._status` property of `useShippingProvider` to `true` or `false`. The property informs whether a user is ready to go to the next step (`true`) or not (`false`). - -### Extending `VsfShippingProvider` and reacting to its events - -You can pass asynchronous functions to the `VsfShippingProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". - -Because every shipping provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. - -- **beforeLoad** `(config => config)` - Called before loading shipping methods. -- **afterLoad** `(shippingMethodsResponse => shippingMethodsResponse.shippingMethods)` - Called after loading shipping methods. -- **beforeSelect** `(shippingMethod => shippingMethod)` - Called before selecting shipping method. -- **afterSelect** `(selectedShippingMethod => void)` - Called after selecting shipping method. -- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked shipping method, e.g. selecting parcel locker on the map. -- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked shipping method. -- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. - -```vue - -``` - -### Accessing current shipping method's details outside the component - -Sometimes you have to show the information about a selected shipping method in a different place than the `VsfShippingProvider` component. - -For such cases, you can use `useShippingProvider` composable. It has been made for loading and saving a current shipping method. After loading the data via the `load` method, it stores the information in some property of a `state` object, so you can access it from many places. - -```ts -import { useShippingProvider } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -import { computed } from '@vue/composition-api'; - -export default { - setup () { - const { load, state } = useShippingProvider(); - - onSSR(async () => { - await load(); - }); - - return { - selectedShippingMethod: computed(() => ...) - } - } -} -``` - -## Collecting and saving billing details - -Billing details are information about the payer's address used by store owners to prepare invoices and payment providers to evaluate the probability of fraud payment. - -You can load billing details by calling the `load` method in `useBilling` composable and accessing the `billing` property after loading is done. - -```js{8,16} -import { useBilling } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - billing - } = useBilling(); - - onSSR(async () => { - await load(); - }); - - return { - billing - }; - } -} -``` -`billing` property returns `null` if the `load` function was not invoked or nothing is saved. - -You can use the `save` method to save billing details. - -```vue{2,15,24} - - - -``` - -## Making an order - -After the user has provided all the information required by your eCommerce, you are ready to *make an order*. To do that, you have to call a `make` method from the `useMakeOrder` composable. -```js -import { useMakeOrder } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { make } = useMakeOrder(); - - return { - make - } - } -} -``` - -When the order is created, you can redirect the user to the page thanking them for making an order and refresh the cart. - -```js -import { useMakeOrder, useCart } from '@vue-storefront/commercetools'; - -export default { - setup (_, context) { - const { make, order } = useMakeOrder(); - const { setCart } = useCart(); - - const processOrder = async () => { - await make(); - context.root.$router.push(`/checkout/thank-you?order=${order.value.id}`); - setCart(null); - } - } -} -``` - -## Payment providers - -A `VsfPaymentProvider` is a component that provides one or more payment methods. One such component integrates one third-party provider of payments like Checkout.com or Adyen. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. - -The component is responsible for: -- Loading and displaying available payment methods. -- Loading selected payment method. -- Picking and configuring payment method. - -The first thing you have to do is to import the component and add it to the template. - -```vue - - - -``` - -The next step is making a payment. Each package with a payment provider might use a slightly different approach, but we described the two most common below. - -### SDK takes the full control - -If the payment provider's SDK handles the whole payment and you can only provide your own callbacks for certain events. You want to make an order in the `beforePay` async hook. -```vue - - - -``` - -### SDK allows externalizing pay method - -If the payment provider's SDK handles the process of configuring payment but allows you to decide when to finalize then: -- Composable shares a `pay` method. -- Composable shares a `status` boolean ref that informs if you are ready to call `pay`. - -```vue - - - -``` - -### Extending `VsfPaymentProvider` and reacting to its events - -You can pass asynchronous functions to the `VsfPaymentProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". - -Because every payment provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. - -- **beforeLoad** `(config => config)` - Called before loading payment methods. -- **afterLoad** `(paymentMethodsResponse => paymentMethodsResponse.paymentMethods)` - Called after loading payment methods. -- **beforeSelect** `(paymentMethod => paymentMethod)` - Called before selecting payment method. -- **afterSelect** `(selectedPaymentMethod => void)` - Called after selecting payment method. -- **beforePay** `(paymentDetails => paymentDetails)` - Called before pay. -- **afterPay** `(paymentResponse => void)` - Called after pay. -- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked payment method, e.g. changing credit card's details. -- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked payment method, e.g. changing credit card's details. -- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. - -```vue - -``` - -### Why some integrations have a mocked `VsfPaymentProvider`? - -There are eCommerce backends that do not provide any payment methods out-of-the-box, e.g., commercetools. For these, you provide a mock component with the same interface as a real integration, so you can easily swap it with a payment integration of your choice. You can find available payment integrations [here](/v2/integrations/). diff --git a/packages/core/docs/commercetools/guide/product-catalog.md b/packages/core/docs/commercetools/guide/product-catalog.md deleted file mode 100644 index 56ee4d2d93..0000000000 --- a/packages/core/docs/commercetools/guide/product-catalog.md +++ /dev/null @@ -1,249 +0,0 @@ -# Product catalog - -There are two composables used to interact with the product catalog - `useProduct` and `useFacet`. - -`useProduct` allows loading products and their variants when some parameters like IDs, SKUs, or slugs are already known. - -`useFacet` allows more complex queries where categories, search terms, filters, and other options can narrow down and sort the results. - -## Fetching a single product and its variants - -`useProduct` composable is used primarily on the Product Details Page to display information about a single product and its variants. - -Use the `search` method to fetch the product and its variants. The response is available in the `products` object. - -```vue - - -``` - -## Accessing product data - -Once products are loaded using `useProduct`, access them using `productGetters`. Depending on the product, configuration, and integration used, the response might contain one or more products or variants. Use the `getFiltered` getter to access them. - -For a full list of available getters, please refer to the [ProductGetters ](../core/api-reference/core.productgetters.html) interface. - -### Accessing products list - -Use the `getFiltered` getter without the second parameter to get the list of all products. - -```vue{4,18-24} - -``` - -### Accessing master variant - -In most of the eCommerce backends, there is a so-called _master variant_. You can think of it as a default configuration for the product displayed to the user if they haven't selected any other configuration. - -Let's use the `getFiltered` getter again, but this time pass `{ master: true }` as a second parameter to only get the master variant. - -```vue{4,18-24} - -``` - -:::warning `getFiltered` always returns an array -Even when `{ master: true }` is passed, the `getFiltered` getter still returns an array of products. In the example above, we used `[0]` to access the first element, but it might differ depending on the integration. -::: - -### Accessing products with specific attributes - -To only get the products with specific attributes, pass the `{ attributes }` object as a second parameter. - -```vue{4,18-29} - -``` - -## Fetching a list of products and available filters - -Faceted search allows users to narrow down search results by applying multiple filters (called dimensions) to the catalog data. In the clothing shop, facet (dimension) would be a brand, size, color, etc. - -`useFacet` composable is used primarily on the Category Page to display products matching specified filters. - -Use the `search` method to fetch the products. The response is available in the `result` object. - -```vue - -``` - -For a full list of parameters, please refer to the [AgnosticFacetSearchParams](../core/api-reference/core.agnosticfacetsearchparams.html) interface. - -## Accessing catalog data - -Once data is loaded using `useFacet`, access it using `facetGetters`. Get the data such as products, sorting and filtering options, pagination, and much more. - -```vue{4,22-36} - -``` - -For a full list of available getters, please refer to the [FacetsGetters](../core/api-reference/core.facetsgetters.html) interface. - -The image below shows where each of these getters fits into a Category page. - -![An example showing how each getter provides data for different parts of the Category page](./../images/faceting.jpg) diff --git a/packages/core/docs/commercetools/guide/user-profile.md b/packages/core/docs/commercetools/guide/user-profile.md deleted file mode 100644 index b8a823f245..0000000000 --- a/packages/core/docs/commercetools/guide/user-profile.md +++ /dev/null @@ -1,289 +0,0 @@ -# User profile - -## Loading current user - -To access the data of the currently logged-in user, you can use the `user` property of `useUser` composable. - -```js{8,16} -import { useUser } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - user - } = useUser(); - - onSSR(async () => { - await load(); - }); - - return { - user - }; - } -} -``` - -`user` property will return `null` if the user is not logged in. `userGetters` should handle such cases and return empty data like `''`, `[]` etc., depending on the expected return data type. To prevent empty elements in the template, it's a good practice to check if the user is logged in before using getters. - -```vue{3-5} - - - -``` - -## Updating user credentials - -Updating user data (except for the current password, which is described in the [Changing password](#changing-password) section) can be done using `updateUser` method in `useUser` composable. - -```js -import { useUser } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { error, updateUser } = useUser(); - - const onSubmit = async (formData) => { - await updateUser({ user: formData }); - // "error.value.updateUser" should be empty if request was successful - }; - - return { - onSubmit - }; - } -} -``` - -## Changing password - -Updating user password can be done using `changePassword` method in `useUser` composable. It requires the current and new password to confirm user identity. - -```js -import { useUser } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { error, changePassword } = useUser(); - - const onSubmit = async (formData) => { - await changePassword({ - current: formData.currentPassword, - new: formData.newPassword - }); - // "error.value.changePassword" should be empty if request was successful - }; - - return { - onSubmit - }; - } -} -``` - -## Managing addresses (billing and shipping) - -Managing billing and shipping addresses is done using [useUserBilling](/core/api-reference/core.useuserbilling.html) and [useUserShipping](/core/api-reference/core.useusershipping.html) composables. - -Both have an almost identical signature (properties, methods, and getters), so the examples below will only show usage of `useUserBilling`. - -### Displaying a list of addresses - -To get a list of addresses, use `load` and `billing` or `shipping` properties and `getAddresses` method on the corresponding getter. - -```vue - - - -``` - -### Adding, updating, and deleting addresses - -`useUserBilling` and `useUserShipping` composables expose number of methods to manage addresses: - -* `addAddress` -* `deleteAddress` -* `updateAddress` -* `setDefault` - -Below is the example of using `deleteAddress` method. - -```vue{7-9,23,32} - - - -``` - -For more information, please refer to documentation for [useUserBilling](/core/api-reference/core.useuserbilling.html) and [useUserShipping](/core/api-reference/core.useusershipping.html) composables. - -## Displaying user orders - -To get a list of orders, use `search` and `orders` properties and `getItems` method on `orderGetters`. - -```vue - - - -``` - -For more information, please refer to documentation for [useUserOrder](/core/api-reference/core.useuserorder.html) composable. - -## Protecting user profile routes - -If there is a page that should be accessible only to logged-in users, such as user profile, you can use `is-authenticated` middleware in the page-level component: - -```js -export default { - middleware: [ - 'is-authenticated' - ] -} -``` -## Integration References - -### `useUser` - - - -### `useUserBilling` - - - -### `useUserShipping` - - diff --git a/packages/core/docs/commercetools/guide/wishlist.md b/packages/core/docs/commercetools/guide/wishlist.md deleted file mode 100644 index 516c81471b..0000000000 --- a/packages/core/docs/commercetools/guide/wishlist.md +++ /dev/null @@ -1,430 +0,0 @@ -# Wishlist - -Customer's cart can be loaded using `useWishlist` composable and data can be accessed using `wishlistGetters`. - -## Loading and creating the wishlist - -The `load` method will load your cart from the server or create a new one if it doesn't exist. The `wishlist` object will be `null` until you load it. - -```vue - -``` - - -## Adding an item to the wishlist - -To add the product to the wishlist, you can use `addItem` method: - -```vue - - -``` - -## Removing an item from the wishlist - -To remove an item from the cart, use `removeItem` method. - -```vue - - -``` - -## Checking if an item is on the wishlist - -To check if a product is already on the wishlist, pass it to `isInWishlist` method: - -```vue - - -``` - -## Removing all wishlist items at once - -Cleaning the wishlist can be achieved by `clear` property. - -```vue - - -``` - -## Summary - -### Common usage example - -Here is an example of how both composables can be used in real-life applications. We have three components: a product list, a cart, and a wishlist. In the examples, we cover the logic of adding/removing items from the wish list and cart, working with getters, and loading state. - -The product list: - -```vue - - -``` - -The cart component: - -```vue - - -``` - -The wishlist component: - -```vue - - -``` diff --git a/packages/core/docs/commercetools/images/faceting.jpg b/packages/core/docs/commercetools/images/faceting.jpg deleted file mode 100644 index 49f6372266f4155f45790e2c1c3569a299777cdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142306 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 S_bOcd=kWd?_<#F%_WuIqy^~)6 diff --git a/packages/core/docs/commercetools/maintainers.md b/packages/core/docs/commercetools/maintainers.md index 58519aaa8e..8b7112aa72 100644 --- a/packages/core/docs/commercetools/maintainers.md +++ b/packages/core/docs/commercetools/maintainers.md @@ -1,6 +1,6 @@ # Maintainers and support -The commercetools integration is developed and maintained by **Vue Storefront core team**. +The Commercetools integration is developed and maintained by **Vue Storefront core team**. ## Support diff --git a/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md b/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md deleted file mode 100644 index b91df269d6..0000000000 --- a/packages/core/docs/commercetools/migrate/1.2.0-rc.2/index.md +++ /dev/null @@ -1,35 +0,0 @@ -# Upgrading to 1.2.0-rc.2 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.2. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -We made changes to the following files: -- added new composable `useBilling`, -- added new composable `useShipping`, -- added new composable `useShippingProvider` -- added new component `components/Checkout/VsfShippingProvider`, -- added new component `components/Checkout/VsfPaymentProviderMock`, -- added new components `pages/Checkout/Billing.vue`, -- added new helper `helpers/Checkout/getShippingMethodPrice.ts`, -- added new middleware `middleware/is-authenticated.js`, -- added `middleware.config.js`, -- updated `components/Checkout/UserBillingAddresses.vue`, -- updated `components/Checkout/UserShippingAddresses.vue`, -- updated `composables/useUiHelpers/index.ts`: - - renamed `changeSearchTerm` to `setTermForUrl`, - - added `getSearchTermFromUrl`, -- updated translations in `theme/lang`, -- updated `middleware/checkout.js`, -- updated `pages/Checkout.vue`, -- updated `pages/Checkout/Payment.vue`, -- updated `pages/Checkout/Shipping.vue`, -- updated icons in `static/icons`, -- updated `nuxt.config.js`, -- updated `package.json`, -- deleted component `pages/Checkout/OrderReview.vue`, -- deleted component `pages/Checkout/PersonalDetails.vue`. \ No newline at end of file diff --git a/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md b/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md deleted file mode 100644 index 8e6791cd26..0000000000 --- a/packages/core/docs/commercetools/migrate/1.2.0-rc.3/index.md +++ /dev/null @@ -1,18 +0,0 @@ -# Upgrading to 1.2.0-rc.3 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.3. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -- Fixed mapping for product attributes with type `set`. -- Fixed cart getters to not throw errors when some properties are missing. -- Fixed error thrown by the Composition API plugin when importing `useWishlist`. - -We also made changes to the following files: -- updated `components/Checkout/VsfShippingProvider.vue`, -- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersForUrl.js`, -- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersFromUrl.js`. diff --git a/packages/core/docs/commercetools/migrate/1.2.0/index.md b/packages/core/docs/commercetools/migrate/1.2.0/index.md deleted file mode 100644 index 34d2a35354..0000000000 --- a/packages/core/docs/commercetools/migrate/1.2.0/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# Upgrading to 1.2.0 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -- Added E2E (cypress) tests: - - use `yarn test:e2e` to start Cypress, - - use `test:e2e:hl` to run Cypress tests in headless mode. Useful for running the tests in CI/CD workflows, - - use `test:e2e:generate:report` to generate Cypress report. -- **[BREAKING]** Fixed helpers used for search on the Category page to read `phrase` URL query string instead of `term`. -- Added `SfLoader` to `VsfShippingProvider` to correctly handle the loading state. -- Added expiration time to `vsf-commercetools-token` cookie matching token expiration time received from commercetools. Previously session cookies were used, which browsers delete when the current session ends. This forced users to log in more often than necessary. -- Fixed an issue in the cart where API calls would result in `HTTP 413 Payload Too Large` error code due to large payload size. Cart method calls will now only include cart `id` and `version` instead of the whole cart object. - -We also made changes to the following files: -- updated `components/Checkout/CartPreview.vue`, -- updated `components/Checkout/UserBillingAddresses.vue`, -- updated `components/Checkout/UserShippingAddresses.vue`, -- updated `components/Checkout/VsfPaymentProviderMock.vue`, -- updated `components/Checkout/VsfShippingProvider.vue`, -- updated `components/MyAccount/BillingAddressForm.vue`, -- updated `components/MyAccount/PasswordResetForm.vue`, -- updated `components/MyAccount/ProfileUpdateForm.vue`, -- updated `components/MyAccount/ShippingAddressForm.vue`, -- updated `pages/Checkout/Billing.vue`, -- updated `pages/Checkout/Payment.vue`, -- updated `pages/Checkout/Shipping.vue`, -- updated `pages/Checkout/ThankYou.vue`. diff --git a/packages/core/docs/commercetools/migrate/1.3.0/index.md b/packages/core/docs/commercetools/migrate/1.3.0/index.md deleted file mode 100644 index 3e2344a3ed..0000000000 --- a/packages/core/docs/commercetools/migrate/1.3.0/index.md +++ /dev/null @@ -1,27 +0,0 @@ -# Upgrading to 1.3.0 - -## Introduction - -In 2.4.0 release, we introduce Forgot Password functionality and basic support for Stores and Channels in commercetools - you can now select a specific store and its corresponding channel, e.g., to display prices for a selected channel. We also fix some bugs related to Checkout forms and add new getters. - -## Changes - -- **[BREAKING]** Enable the purchase of an item with selected supply channel and distribution channel -- Added `storeGetters`, `useStore` composable and plugin for creating locale, currency, and country cookies -- Added `forgotPasswordGetters` and `useForgotPassword` composable -- Added `getProductSku` getter to `productGetters` -- Extended `middleware.config.js` with `inventoryMode` optional property - when added to the configuration, Inventory Mode is set on cart creation -- Added smartphone only promo code input -- Removed hardcoded link to the category in `SearchResults.vue` -- Replaced mocked email address in MyProfile password change tab to active user email -- Fixed bug with input characters limits on Checkout forms preventing submitting the form with a street name less than five characters long and apartment number with less than two characters long -- Added e2e tests for Checkout - -We also made changes to the following files: -- Added `pages/MyAccount/MyProfile.vue`. -- Updated `components/MyAccount/BillingAddressForm.vue`. -- Updated `components/MyAccount/ShippingAddressForm.vue`. -- Updated `pages/Checkout/Billing.vue`. -- Updated `pages/Checkout/Payment.vue`. -- Updated `pages/Checkout/Shipping.vue`. -- Updated `lang/de.js` and `lang/en.js`. diff --git a/packages/core/docs/commercetools/migrate/index.md b/packages/core/docs/commercetools/migrate/index.md deleted file mode 100644 index 493b2ae9a2..0000000000 --- a/packages/core/docs/commercetools/migrate/index.md +++ /dev/null @@ -1,6 +0,0 @@ -# Migration guides - -- [1.3.0](./1.3.0/index.md) -- [1.2.0](./1.2.0/index.md) -- [1.2.0-rc.3](./1.2.0-rc.3/index.md) -- [1.2.0-rc.2](./1.2.0-rc.2/index.md) diff --git a/packages/core/docs/commercetools/use-facet.md b/packages/core/docs/commercetools/use-facet.md index e2f523423a..856c0282df 100644 --- a/packages/core/docs/commercetools/use-facet.md +++ b/packages/core/docs/commercetools/use-facet.md @@ -1,7 +1,7 @@ # `useFacet` :::warning -This feature is a part of our commercial offering but also exists in the open-source version of our commercetools integration. +This feature is a part of our commercial offering but also exists in the Open Source version of our commercetools integration. Open Source implementation relies on GraphQL API (internally using `getProduct` and `getCategory` composables), which doesn't provide full faceting capabilities as does the dedicated REST-based faceting API offered in our Enterprise version. Please [contact our Sales team](https://www.vuestorefront.io/contact/sales) if you'd like to get access to it. ::: @@ -42,7 +42,7 @@ interface AgnosticFacetSearchParams { - `loading` - reactive object containing information about the loading state of `search`. -- `error` - reactive object containing the error message if `search` failed for any reason. +- `error` - reactive object containing the error message, if `search` failed for any reason. ```ts interface UseFacetErrors { diff --git a/packages/core/docs/composables/use-cart.md b/packages/core/docs/composables/use-cart.md index f37de360f4..ce0a2b44c1 100644 --- a/packages/core/docs/composables/use-cart.md +++ b/packages/core/docs/composables/use-cart.md @@ -3,7 +3,7 @@ ## When to use it? Use `useCart` to: -- fetch the current cart +- fetch current cart - add/remove/change quantity of cart items - apply/remove discount coupons - check if a product is already in the cart diff --git a/packages/core/docs/composables/use-user.md b/packages/core/docs/composables/use-user.md index 69b7111962..04fb3d30ec 100644 --- a/packages/core/docs/composables/use-user.md +++ b/packages/core/docs/composables/use-user.md @@ -4,7 +4,7 @@ Use `useUser` to: - manage user authentication -- manage authentication data like email address, login, or password. +- manage authentication data like email address, login or password. If you want to fetch/save other user data you should use the following composables: - [`useUserBilling`](./use-user-billing.md) diff --git a/packages/core/docs/composables/use-wishlist.md b/packages/core/docs/composables/use-wishlist.md index d1a9ae88d0..171d2f2f0e 100644 --- a/packages/core/docs/composables/use-wishlist.md +++ b/packages/core/docs/composables/use-wishlist.md @@ -5,7 +5,7 @@ Use `useWishlist` to: - fetch current wishlist - add/remove/change quantity of wishlist items -- check if a product is already on the wishlist +- check if a product is already in the wishlist ## How to use it in your project? diff --git a/packages/core/docs/contributing/README.md b/packages/core/docs/contributing/README.md index 73488d55c2..01cee5af0a 100644 --- a/packages/core/docs/contributing/README.md +++ b/packages/core/docs/contributing/README.md @@ -1,12 +1,46 @@ -# Contribution basics +# Contributing -If you want to contribute to Vue Storefront 2 you should: +We are delighted that you want to contribute to Vue Storefront. But first, you need to know that we use some standards to maintain a good community and have an aligned code history. -1. Pick an issue from [our GitHub](https://github.com/vuestorefront/vue-storefront/) with a `Next` label -2. Comment on the issues that you'd like to work on it. -3. Fork our repository and create a new branch where you will develop the issue. -4. When you finish work on your issue, follow this [instruction](/contributing/creating-changelog) to create information regarding this issue for our changelog. -5. Propose a Pull Request with title following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) -6. Wait for a review of a core team member. We will write down our suggestions to your Pull Request or just merge it. +## Starting -Thank you for your involvement! \ No newline at end of file +To start your contribution, you first can pick an issue from our [GitHub](https://github.com/DivanteLtd/vue-storefront/) that has a label [`bug`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3Abug), [`feature request`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature+request%22), [`docs`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3Adocs), [`good first issue`](https://github.com/vuestorefront/vue-storefront/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or you can create your issue alongside your pull request. + +## Coding Rules + +To keep the code base of our repository neat, we apply a set of rules for our contributors. These rules are established by our core maintainers, so you will find an organized code repository no matter where you come. + +## Code Standards + +- `eslint` is king +- Favor micro-library over swiss army knives (`rimraf`, `ncp` vs. `fs-extra`) - Just in case you really need one :) +- Follow the coding naming [style and conventions](api-design-philosophy.html) +- Always provide a [changelog](creating-changelog.html) and update the documentation if needed +- Add tests for your changes, and see if the current tests are no conflicting with the changes you made + +## Commit standards + +To create a commit history line where everyone can understand and follow the core maintainers, use a set of common rules that is simple and easy to use. + +>To make everyone's life easier, the repository is commitizen friendly and provides the npm run-script `commit`. + +- Use the [conventional-changelog](https://github.com/conventional-changelog) pattern +- We have husky commit message hook available +- Always use present tense phrases +- The commit message must have a maximum of 100 characters +- The commit message format must be in the format `$type($scope): $message` + +## Create a pull request + +Being part of an open-source project is one of a kind experience. Where you will learn, improve your skill and help everyone in the community at the same time. + +We have to remember to check our checklist before opening a pull request and make sure that the PR follows the standards so it can be approved faster. + +- The code follow our [code standards](#code-standards) +- The commit line follow our [commit standards](#commit-standards) +- The docs have been updated (if needed) +- The changelog has been updated +- The pull request template is fully filled with information about the PR +- The CLA on the PR is signed by the commits authors +- There are no conflicts on the pull request +- All GitHub actions has passed diff --git a/packages/core/docs/contributing/api-design-philosophy.md b/packages/core/docs/contributing/api-design-philosophy.md index 498e457e98..2a4cbc7d76 100644 --- a/packages/core/docs/contributing/api-design-philosophy.md +++ b/packages/core/docs/contributing/api-design-philosophy.md @@ -1,17 +1,17 @@ # Vue Storefront API Design Philosophy -While designing something so complex as Vue Storefront, it's vital to set up rules that will guide us when designing APIs. The purpose of those rules is to make sure that problems are solved in a similar, predictable, and consistent to understand way, which will highly contribute to the learning curve of the framework itself. +While designing something so complex as Vue Storefront it's vital to set up rules that will guide us when designing APIs. The purpose of those rules is to make sure that problems ale solved in a similar, predictable and consistent to understand way which will highly contribute to the learning curve of the framework itself. ## General rules -1. We build **simple**, **declarative**, and **general-purpose** APIs that are not tied to implementation details or a specific solution to a problem. That way, we can ensure that our APIs will remain general-purpose and will not break on updates even if we do heavy changes in the underlying business logic. -2. API Surface should be possibly minimal. If there is a feature that can be achieved with already existing APIs, we shouldn't add new ones just to make it simpler. -3. Focus on good defaults and embracing [convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) paradigm. Every API should work as it is for most of the use cases and have the ability to be configured for other ones. -4. If you introduce a new, commonly used feature (like cache), try to provide a default configuration out of the box and let users customize it, so they don't have to configure for the most common use cases, only for custom ones. This approach will drastically reduce the number of boilerplate code users has to write. +1. We build **simple**, **declarative** and **general-purpose** APIs that are not tied to implementation details or a specific solution to a problem. That way we can ensure that our APIs will remain general-purpose and won't break on updates even if we do heavy changes in the underlying business logic. +2. API Surface should be possibly minimal. If there is a feature that can be achieved with already existing APIs we shouldn't add new ones just to make it simplier. +3. Focus on good defaults and embracing [convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) paradigm. Every API should work as it is for most of the use cases and have ability to be configured for other ones. +4. If you introduce a new, commonly used feature (like cache) try to provide a default configuration out of the box and let users customize it so they don't have to configure for the most common use cases, only for custom ones. This approach will dreastically reduce the number of boilerplate code users has to write. ```js -import { useProduct } from '@vue-storefront/{INTEGRATION}' +import { ueProduct } from '@vue-storefront/{eCommerce}' import { cacheManager } from '@vue-storefront/core' const { search } = useProduct() @@ -25,7 +25,7 @@ cacheManager.setTags((tags) => { return tags }) ``` -5. APIs should not limit the users. If we can't fulfill all use cases with parameters, we should provide extension points so users can do this by themselves. +5. APIs should not limit the users. If we can't fulfill all use cases with parameters we should provide extension points so users can do this by themselves. 6. Same code should work on every platform (excluding specific object properties and search params) 7. Follow Domain-Driven Design principles. Try to keep everything related to a specific domain within its composable. ``` @@ -57,18 +57,18 @@ const removeFromCart = async (product: CART_ITEM, customQuery?: CustomQuery) => logger: customLogger }] ``` -10. If a feature is platform-specific and not shared across the whole application, provide integration through its config/nuxt module. +10. If a feature is platform-specific and not shared across whole application provide integration through its config/nuxt module. 11. Provide a core interface for every feature, no matter if its paid or not (implementation can be paid, the way of implementing this feature by the user has to be always provided) ## Composables -We try to cover each subdomain of the eCommerce domain with a dedicated composable. For example, we have a composable for Users Management domain, inventory domain, product catalog domain, etc. If you have to add a new feature, always think about the business domain it correlates to and, based on that, decide if it should be a new composable or an existing one. +We try to cover each subdomain of the eCommerce domain with a dedicated composable. For example we have a composable for Users Management domain, inventory domain, product catalog domain etc. If you have to add a new feature always think about business domain it correlates to and based on that decide if it should be a new composable or an existing one. -If composables share the same category/prefix, it means that they most likely also share the same context, e.g., `useUserOrder` `useUserShipping` `useUserBilling` are all sub-composables of `useUser`, and their content depends on this composable. +If composables share the same category/prefix it means that they most likely also share the same context eg. `useUserOrder` `useUserShipping` `useUserBilling` are all subcomposables of `useUser` and their content depends on this composable. -Each composable usually has three pieces: -- main data object (e.g. `products`) -- supportive data object/s (e.g. `loading`, `error`) +Each composable has usually 3 pieces: +- main data object (eg `products`) +- supportive data object/s (eg `loading`, `error`) - search/load function (eg `search`) ```js @@ -77,5 +77,5 @@ const { search, products, loading, erro } = useProduct() ### search or load As a rule of thumb use -- `search` when you have to pass some search parameters (e.g., in products search) -- `load` when you just have to load some content based on cookies/local storage etc. (e.g., cart load) \ No newline at end of file +- `search` when you have to pass some search parameters (eg. in products search) +- `load` when you just have to load some content based on cookies/local storage etc (eg. cart load) \ No newline at end of file diff --git a/packages/core/docs/contributing/changelog.md b/packages/core/docs/contributing/changelog.md index 64f8a5aa58..d8af58f1d7 100644 --- a/packages/core/docs/contributing/changelog.md +++ b/packages/core/docs/contributing/changelog.md @@ -1,258 +1,235 @@ # Changelog -## 2.4.2 - -- **[BREAKING]** Fix loading user and cart information ([6265](https://github.com/vuestorefront/vue-storefront/pull/6265/)) - [Filip Sobol](https://github.com/filipsobol) - - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - | &#x60;loadCart&#x60; was called directly inside &#x60;setup&#x60; method in &#x60;CartSidebar.vue&#x60; component | &#x60;loadCart&#x60; is called inside &#x60;onSSR&#x60; callback in &#x60;CartSidebar.vue&#x60; component | Calling &#x60;loadCart&#x60; directly inside &#x60;setup&#x60; method caused hydration issues, since cart information was not properly loaded during SSR | Base theme | - ## 2.4.1 -- Fix `@vue-storefront/cache` package ([#6198](https://github.com/vuestorefront/vue-storefront/pull/6198)) - [Filip Sobol](https://github.com/filipsobol) - -- Revert changes to Webpack configuration and Google font loading ([#6203](https://github.com/vuestorefront/vue-storefront/pull/6203)) - [Filip Sobol](https://github.com/filipsobol) - -- Fix addToCart request body structure in e2e tests ([#6205](https://github.com/vuestorefront/vue-storefront/pull/6207)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) +- Fix `@vue-storefront/cache` package ([#6198](https://github.com/vuestorefront/vue-storefront/pull/6198)) - [Filip Sobol](https://github.com/filipsobol) +, +- Revert changes to Webpack configuration and Google font loading ([#6203](https://github.com/vuestorefront/vue-storefront/pull/6203)) - [Filip Sobol](https://github.com/filipsobol) +, +- Fix addToCart request body structure in e2e tests ([#6205](https://github.com/vuestorefront/vue-storefront/pull/6207)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) ## 2.4.0 -- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) - -- Updates Category.vue in nuxt-theme module; enables wishlist-related actions being triggered depending on current wishlist state ([#5756](https://github.com/vuestorefront/vue-storefront/issues/5756)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) - -- Added customQuery parameter for useUserFactory methods ([#5883](https://github.com/vuestorefront/vue-storefront/pull/5823)) - [vn-vlad](https://github.com/vn-vlad) - -- Fix locale links in core and commercetools integration ([#5886](https://github.com/vuestorefront/vue-storefront/issues/5886)) - [Baroshem](https://github.com/Baroshem) - -- cart item qty selector disabled on loading ([#5924](https://github.com/vuestorefront/vue-storefront/pull/5924)) - [vn-vlad](https://github.com/vn-vlad) - -- Add "useStoreFactory" function and related type definitions ([#5945](https://github.com/vuestorefront/vue-storefront/pull/5945)) - [vn-vlad](https://github.com/vn-vlad) - -- Add forgot password functionality ([#5968](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) - -- fix/my account page not loading content pages list ([#5982](https://github.com/vuestorefront/vue-storefront/pull/5986)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) - -- Add useSearchFactory implementation ([#6015](https://github.com/vuestorefront/vue-storefront/pull/6015)) - [vn-vlad](https://github.com/andrzejewsky) - -- Remove `generate` command from `package.json` ([#6035](https://github.com/vuestorefront/vue-storefront/pull/6035)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) - -- Export `UseFacetFactoryParams` interface, add generics to the `Context` interface, add minor fixes to base theme ([#6061](https://github.com/vuestorefront/vue-storefront/pull/6061)) - [Filip Sobol](https://github.com/filipsobol) - -- Removed buttons on hero slider on homepage ([#6068](https://github.com/vuestorefront/vue-storefront/pull/6068)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Removed "Download app" banner form product and homepage ([#6069](https://github.com/vuestorefront/vue-storefront/pull/6069)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Linked banner grids buttons on homepage ([#6070](https://github.com/vuestorefront/vue-storefront/pull/6070)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Switch places between state and country inputs in shipping form ([#6071](https://github.com/vuestorefront/vue-storefront/pull/6071)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) - -- Implement mobile menu ([#6077](https://github.com/vuestorefront/vue-storefront/pull/6077)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) - -- Removed hardcoded link to category in SearchResults.vue ([#6081](https://github.com/vuestorefront/vue-storefront/pull/6081)) - [Justyna Gieracka](https://github.com/justyna-13) - -- change the core logger behavior to match the console ([#6085](https://github.com/vuestorefront/vue-storefront/pull/6085)) - [bloodf](https://github.com/bloodf) - -- Cache-control headers for home, product and category page ([#6093](https://github.com/vuestorefront/vue-storefront/pull/6093)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - -- Add `checkout.js` middleware ([#6121](https://github.com/vuestorefront/vue-storefront/pull/6121)) - [Filip Sobol](https://github.com/filipsobol) - -- Updates form validation scheme for street, number and city in the checkout and profile editing pages ([#6122](https://github.com/vuestorefront/vue-storefront/pull/6122)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - -- Fixed Nuxt-CLI spamming babel warning due plugin configuration ([#6123](https://github.com/vuestorefront/vue-storefront/pull/6123)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - +- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) +, +- Updates Category.vue in nuxt-theme module; enables wishlist-related actions being triggered depending on current wishlist state ([#5756](https://github.com/vuestorefront/vue-storefront/issues/5756)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) +, +- Added customQuery parameter for useUserFactory methods ([#5883](https://github.com/vuestorefront/vue-storefront/pull/5823)) - [vn-vlad](https://github.com/vn-vlad) +, +- Fix locale links in core and commercetools integration ([#5886](https://github.com/vuestorefront/vue-storefront/issues/5886)) - [Baroshem](https://github.com/Baroshem) +, +- cart item qty selector disabled on loading ([#5924](https://github.com/vuestorefront/vue-storefront/pull/5924)) - [vn-vlad](https://github.com/vn-vlad) +, +- Add "useStoreFactory" function and related type definitions ([#5945](https://github.com/vuestorefront/vue-storefront/pull/5945)) - [vn-vlad](https://github.com/vn-vlad) +, +- Add forgot password functionality ([#5968](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) +, +- fix/my account page not loading content pages list ([#5982](https://github.com/vuestorefront/vue-storefront/pull/5986)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) +, +- Add useSearchFactory implementation ([#6015](https://github.com/vuestorefront/vue-storefront/pull/6015)) - [vn-vlad](https://github.com/andrzejewsky) +, +- Remove `generate` command from `package.json` ([#6035](https://github.com/vuestorefront/vue-storefront/pull/6035)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) +, +- Export `UseFacetFactoryParams` interface, add generics to the `Context` interface, add minor fixes to base theme ([#6061](https://github.com/vuestorefront/vue-storefront/pull/6061)) - [Filip Sobol](https://github.com/filipsobol) +, +- Removed buttons on hero slider on homepage ([#6068](https://github.com/vuestorefront/vue-storefront/pull/6068)) - [Justyna Gieracka](https://github.com/justyna-13) +, +- Removed "Download app" banner form product and homepage ([#6069](https://github.com/vuestorefront/vue-storefront/pull/6069)) - [Justyna Gieracka](https://github.com/justyna-13) +, +- Linked banner grids buttons on homepage ([#6070](https://github.com/vuestorefront/vue-storefront/pull/6070)) - [Justyna Gieracka](https://github.com/justyna-13) +, +- Switch places between state and country inputs in shipping form ([#6071](https://github.com/vuestorefront/vue-storefront/pull/6071)) - [Łukasz Śliwa](https://github.com/lsliwaradioluz) +, +- Implement mobile menu ([#6077](https://github.com/vuestorefront/vue-storefront/pull/6077)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) +, +- Removed hardcoded link to category in SearchResults.vue ([#6081](https://github.com/vuestorefront/vue-storefront/pull/6081)) - [Justyna Gieracka](https://github.com/justyna-13) +, +- change the core logger behavior to match the console ([#6085](https://github.com/vuestorefront/vue-storefront/pull/6085)) - [bloodf](https://github.com/bloodf) +, +- Cache-control headers for home, product and category page ([#6093](https://github.com/vuestorefront/vue-storefront/pull/6093)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) +, +- Add `checkout.js` middleware ([#6121](https://github.com/vuestorefront/vue-storefront/pull/6121)) - [Filip Sobol](https://github.com/filipsobol) +, +- Updates form validation scheme for street, number and city in the checkout and profile editing pages ([#6122](https://github.com/vuestorefront/vue-storefront/pull/6122)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) +, +- Fixed Nuxt-CLI spamming babel warning due plugin configuration ([#6123](https://github.com/vuestorefront/vue-storefront/pull/6123)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) +, - [BREAKING] updated the removeCoupon interface to match the applyCoupon ([#6126](https://github.com/vuestorefront/vue-storefront/pull/6126)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables - -- Add new getter for orders total and change return value of searchOrders ([#6132](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) - -- Removed the beta tag from the Shopify integration ([#6143](https://github.com/vuestorefront/vue-storefront/pull/6143)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - -- Fixed MyAccount page rendering ([#6171](https://github.com/vuestorefront/vue-storefront/pull/6172)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables, +- Add new getter for orders total and change return value of searchOrders ([#6132](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) +, +- Removed the beta tag from the Shopify integration ([#6143](https://github.com/vuestorefront/vue-storefront/pull/6143)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) +, +- Fixed MyAccount page rendering ([#6171](https://github.com/vuestorefront/vue-storefront/pull/6172)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) ## 2.3.3 -- Add args parameter to custom queries ([#5854](https://github.com/vuestorefront/vue-storefront/issues/5854)) - [andrzejewsky](https://github.com/andrzejewsky) - -- Make useUser `login` parameters optional ([#5868](https://github.com/vuestorefront/vue-storefront/pull/5868)) - [Filip Sobol](https://github.com/filipsobol) +- Add args parameter to custom queries ([#5854](https://github.com/vuestorefront/vue-storefront/issues/5854)) - [andrzejewsky](https://github.com/andrzejewsky) +, +- Make useUser `login` parameters optional ([#5868](https://github.com/vuestorefront/vue-storefront/pull/5868)) - [Filip Sobol](https://github.com/filipsobol) ## 2.3.0 -- update Storefront UI version ([#5437](https://github.com/vuestorefront/vue-storefront/pull/5437/files)) - [Justyna Gieracka](https://github.com/justyna-13) - +- update Storefront UI version ([#5437](https://github.com/vuestorefront/vue-storefront/pull/5437/files)) - [Justyna Gieracka](https://github.com/justyna-13) +, - [BREAKING] update Storefront UI version ([#5691](https://github.com/vuestorefront/vue-storefront/issues/5691)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | toggleCategoryGridView | changeToCategoryGridView, changeToCategoryListView | toggleCategoryGridView has been divided into two functions: changeToCategoryGridView and changeToCategoryListView | /composables/useUiState.ts - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +toggleCategoryGridView | changeToCategoryGridView, changeToCategoryListView | toggleCategoryGridView has been divided into two functions: changeToCategoryGridView and changeToCategoryListView | /composables/useUiState.ts, - [BREAKING] mocked results for search ([#5709](https://github.com/vuestorefront/vue-storefront/pull/5709/files)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | term | phrase | term is changed to phrase | acomposables/useUiHelpers/index.ts - -- added SfLoader to VsfShippingProvider to correctly handle loading state ([#5725](https://github.com/vuestorefront/vue-storefront/issues/5725)) - [Baroshem](https://github.com/baroshem) - -- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) - -- customQuery support for user billing/shipping ([#5746](https://github.com/vuestorefront/vue-storefront/pull/5781)) - [vn-vlad](https://github.com/vn-vlad) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +term | phrase | term is changed to phrase | acomposables/useUiHelpers/index.ts , +- added SfLoader to VsfShippingProvider to correctly handle loading state ([#5725](https://github.com/vuestorefront/vue-storefront/issues/5725)) - [Baroshem](https://github.com/baroshem) +, +- Fix hydration bug on category page ([#5744](https://github.com/vuestorefront/vue-storefront/issues/5744)) - [Adam Pawliński](https://github.com/AdamPawlinski) +, +- customQuery support for user billing/shipping ([#5746](https://github.com/vuestorefront/vue-storefront/pull/5781)) - [vn-vlad](https://github.com/vn-vlad) +, - [BREAKING] Pass integration configuration to 'extendApp' ([#5774](https://github.com/vuestorefront/vue-storefront/pull/5774)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | `extendApp` accepted only Express.js app as a parameter: `extendApp(app)` | `extendApp` accepts object containing `app` and `configuration` properties: `extendApp({ app, configuration })` | Allow access to integration configuration when extending application. | @vue-storefront/middleware - -- added missing class for text button ([#5827](https://github.com/vuestorefront/vue-storefront/issues/5827)) - [Justyna Gieracka](https://github.com/justyna-13) - -- add _key to enhanceProduct ([#5829](https://github.com/vuestorefront/vue-storefront/issues/5829)) - [Baroshem](https://github.com/baroshem) - -- add functionality to search products by ids ([#5847](https://github.com/vuestorefront/vue-storefront/issues/5847)) - [Baroshem](https://github.com/baroshem) +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +`extendApp` accepted only Express.js app as a parameter: `extendApp(app)` | `extendApp` accepts object containing `app` and `configuration` properties: `extendApp({ app, configuration })` | Allow access to integration configuration when extending application. | @vue-storefront/middleware, +- added missing class for text button ([#5827](https://github.com/vuestorefront/vue-storefront/issues/5827)) - [Justyna Gieracka](https://github.com/justyna-13) +, +- add _key to enhanceProduct ([#5829](https://github.com/vuestorefront/vue-storefront/issues/5829)) - [Baroshem](https://github.com/baroshem) +, +- add functionality to search products by ids ([#5847](https://github.com/vuestorefront/vue-storefront/issues/5847)) - [Baroshem](https://github.com/baroshem) ## 2.3.0-rc.3 -- Fix VsfShippingProvider to correctly show errors related to no shipping methods available for certain country ([#5463](https://github.com/vuestorefront/vue-storefront/issues/5463)) - [Baroshem](https://github.com/Baroshem) - +- Fix VsfShippingProvider to correctly show errors related to no shipping methods available for certain country ([#5463](https://github.com/vuestorefront/vue-storefront/issues/5463)) - [Baroshem](https://github.com/Baroshem) +, - [BREAKING] Fix infinite loading for login and register by implementing error handling in core module and in LoginModal ([#5508](https://github.com/vuestorefront/vue-storefront/issues/5508)) - [Baroshem](https://github.com/Baroshem) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | There was no error handling and thats why the infinite loading was appearing | Errors are handled immediately | add try/catch to middleware, set more appriopriate value to err.value in useUserFactory, and implement error handling in LoginModal | core/middleware, LoginModal - -- revert change https://github.com/vuestorefront/vue-storefront/pull/5593 as it was breaking the mobile view after latest release ([#5514_1](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Baroshem](https://github.com/Baroshem) - -- removed helpers/filters from @vue-storefront/nuxt-theme and @vue-storefront/commercetools-theme because they are useless now ([#5620](https://github.com/vuestorefront/vue-storefront/issues/5620)) - [Kacper Małkowski](https://github.com/porithe/) - -- add error handling for GraphQL queries with complexity over limit ([#5692](https://github.com/vuestorefront/vue-storefront/issues/5692)) - [Baroshem](https://github.com/Baroshem) - -- extend #5692 thrown error to fix also this issue ([#5693](https://github.com/vuestorefront/vue-storefront/issues/5693)) - [Baroshem](https://github.com/Baroshem) - -- Add ability to access express instance in the middleware extensions ([#5714](https://github.com/vuestorefront/vue-storefront/pull/5714)) - [andrzejewsky](https://github.com/andrzejewsky) +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +There was no error handling and thats why the infinite loading was appearing | Errors are handled immediately | add try/catch to middleware, set more appriopriate value to err.value in useUserFactory, and implement error handling in LoginModal | core/middleware, LoginModal, +- revert change https://github.com/vuestorefront/vue-storefront/pull/5593 as it was breaking the mobile view after latest release ([#5514_1](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Baroshem](https://github.com/Baroshem) +, +- removed helpers/filters from @vue-storefront/nuxt-theme and @vue-storefront/commercetools-theme because they are useless now ([#5620](https://github.com/vuestorefront/vue-storefront/issues/5620)) - [Kacper Małkowski](https://github.com/porithe/) +, +- add error handling for GraphQL queries with complexity over limit ([#5692](https://github.com/vuestorefront/vue-storefront/issues/5692)) - [Baroshem](https://github.com/Baroshem) +, +- extend #5692 thrown error to fix also this issue ([#5693](https://github.com/vuestorefront/vue-storefront/issues/5693)) - [Baroshem](https://github.com/Baroshem) +, +- Add ability to access express instance in the middleware extensions ([#5714](https://github.com/vuestorefront/vue-storefront/pull/5714)) - [andrzejewsky](https://github.com/andrzejewsky) ## 2.3.0-rc.2 -- added MegaMenu to theme ([#5267](https://github.com/vuestorefront/vue-storefront/issues/5267)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - +- added MegaMenu to theme ([#5267](https://github.com/vuestorefront/vue-storefront/issues/5267)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) +, - [BREAKING] Implementation of api middleware ([#5361](https://github.com/vuestorefront/vue-storefront/pull/5361)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | apiClientFactory | apiClientFactory | Api client factory is being called only on our middleware. It is no longer supported in the borwser. For client-side interaction please use proxied version | core - -- added useUiNotification composable ([#5363](https://github.com/vuestorefront/vue-storefront/issues/5363)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -- Moved dependencies from integration themes to nuxt-theme-module ([#5404](https://github.com/vuestorefront/vue-storefront/issues/5404)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +apiClientFactory | apiClientFactory | Api client factory is being called only on our middleware. It is no longer supported in the borwser. For client-side interaction please use proxied version | core, +- added useUiNotification composable ([#5363](https://github.com/vuestorefront/vue-storefront/issues/5363)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) +, +- Moved dependencies from integration themes to nuxt-theme-module ([#5404](https://github.com/vuestorefront/vue-storefront/issues/5404)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) +, - [BREAKING] New part of checkout - shipping details, inside core and commercetools ([#5419](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | Using checkoutGetters | Removed checkoutGetters | Accesing checkout-related properties directly | core, - CartPreview.vue uses checkoutGetters | CartPreview.vue is implemented per integration as we do not use getters for checkout-related stuff | We have to implement CartPreview component per integration | nuxt-theme-module - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +Using checkoutGetters | Removed checkoutGetters | Accesing checkout-related properties directly | core, +CartPreview.vue uses checkoutGetters | CartPreview.vue is implemented per integration as we do not use getters for checkout-related stuff | We have to implement CartPreview component per integration | nuxt-theme-module, - [BREAKING] Added `is-authenticated` middleware to protect user profile routes from guest access. By default it emits an error message asking to implement vendor-specific validation. ([#5442_1](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | - | [Link](https://docs.vuestorefront.io/v2/integrate/integration-guide.html#creating-a-middleware) | Create new middleware that checks if customer is logged in, and if not, redirects to homepage. | middleware/is-authenticated.js - -- Updated the default logger to use matching console log levels, like debug, info, warn, error. ([#5442_2](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) - -- Improvements for api middleware ([#5500](https://github.com/vuestorefront/vue-storefront/pull/5500)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - -- Categories loader overlaping footer fixed ([#5507](https://github.com/vuestorefront/vue-storefront/issues/5507)) - [Justyna Gieracka](https://github.com/justyna-13) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +- | [Link](https://docs.vuestorefront.io/v2/integrate/integration-guide.html#creating-a-middleware) | Create new middleware that checks if customer is logged in, and if not, redirects to homepage. | middleware/is-authenticated.js, +- Updated the default logger to use matching console log levels, like debug, info, warn, error. ([#5442_2](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) +, +- Improvements for api middleware ([#5500](https://github.com/vuestorefront/vue-storefront/pull/5500)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) +, +- Categories loader overlaping footer fixed ([#5507](https://github.com/vuestorefront/vue-storefront/issues/5507)) - [Justyna Gieracka](https://github.com/justyna-13) +, - [BREAKING] Unify case of theme's directories ([#5511](https://github.com/vuestorefront/vue-storefront/issues/5511)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | nuxt-theme-module, - pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | commercetools-theme - -- removed overflow-x: hidden from html tag ([#5514](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Przemysław Rakowski](https://github.com/RakowskiPrzemyslaw) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | nuxt-theme-module, +pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | commercetools-theme, +- removed overflow-x: hidden from html tag ([#5514](https://github.com/vuestorefront/vue-storefront/issues/5514)) - [Przemysław Rakowski](https://github.com/RakowskiPrzemyslaw) +, - [BREAKING] Update Cache library ([#5524](https://github.com/vuestorefront/vue-storefront/pull/5524)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | - | - | Please see "Advanced > SSR Cache" and "Build integration > Cache drive" pages in the documentation for more information. | @vue-storefront/cache - -- Add typings for middleware ([#5530](https://github.com/vuestorefront/vue-storefront/pull/5530)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +- | - | Please see "Advanced > SSR Cache" and "Build integration > Cache drive" pages in the documentation for more information. | @vue-storefront/cache, +- Add typings for middleware ([#5530](https://github.com/vuestorefront/vue-storefront/pull/5530)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) +, - [BREAKING] New part of checkout - useBillingFactory, inside core ([#5552](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | Integrations implement useCheckout | Integrations implement useBilling | New factories dedicated for the checkout | core - -- Added 'CartPreview.vue' components to 'components/Checkout' directory asking for integration-specific implementation. ([#5561](https://github.com/vuestorefront/vue-storefront/pull/5561)) - [Filip Sobol](https://github.com/filipsobol) - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +Integrations implement useCheckout | Integrations implement useBilling | New factories dedicated for the checkout | core, +- Added 'CartPreview.vue' components to 'components/Checkout' directory asking for integration-specific implementation. ([#5561](https://github.com/vuestorefront/vue-storefront/pull/5561)) - [Filip Sobol](https://github.com/filipsobol) +, - [BREAKING] Quick search ([#5566](https://github.com/vuestorefront/vue-storefront/issues/5566)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | { changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, - | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts, - | SearchResults.vue | Added new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, - AppHeader.vue | AppHeader.vue | Modified 'AppHeader.vue' to add use new 'SearchResults.vue' component | @vue-storefront/nuxt-theme - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +{ changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, + | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts, + | SearchResults.vue | Added new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, +AppHeader.vue | AppHeader.vue | Modified 'AppHeader.vue' to add use new 'SearchResults.vue' component | @vue-storefront/nuxt-theme, - [BREAKING] Implementation of api middleware ([#5577](https://github.com/vuestorefront/vue-storefront/pull/5577)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | core - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | core, - [BREAKING] Add 'useMakeOrder' and rename composable 'useUserOrders' to 'useUserOrder' ([#5584](https://github.com/vuestorefront/vue-storefront/pull/5584)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | useUserOrders | useUserOrder | Renamed composable 'useUserOrders' to 'useUserOrder'. | core and commercetools, - 'placeOrder' from 'useCheckout' composable was used to place new orders. | Added new 'useMakeOrder' composable and used it's 'make' function to place new orders. | Use new 'useMakeOrder' composable to place orders. | core and commercetools - +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +useUserOrders | useUserOrder | Renamed composable 'useUserOrders' to 'useUserOrder'. | core and commercetools, +'placeOrder' from 'useCheckout' composable was used to place new orders. | Added new 'useMakeOrder' composable and used it's 'make' function to place new orders. | Use new 'useMakeOrder' composable to place orders. | core and commercetools, - [BREAKING] New Payment API for Checkout ([#5587](https://github.com/vuestorefront/vue-storefront/pull/5587)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | core +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | core, -- Fix subtotal prices displayed in CartSidebar.vue ([#5932](https://github.com/vuestorefront/vue-storefront/pull/5932)) - [Filip Sobol](https://github.com/filipsobol) +- Fix subtotal prices displayed in CartSidebar.vue ([#5932](https://github.com/vuestorefront/vue-storefront/pull/5932)) - [Filip Sobol](https://github.com/filipsobol) - [BREAKING] fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist ([#5592](https://github.com/vuestorefront/vue-storefront/issues/5592)) - [Jakub Andrzejewski](https://github.com/Baroshem) - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | variables and methods had names isOnCart and isOnWishlist | variables and methods have names isInCart and isInWishlist | fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist | useCart/useWishlist - -- Fix outside click handler for app header search ([#5595](https://github.com/vuestorefront/vue-storefront/pull/5595)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - -- save method for useShippingProvider, deprecated field ShippingMethod.description switched to ShippingMethod.localizedDescription, fixed cart getter for counting totals ([#5598](https://github.com/vuestorefront/vue-storefront/pull/5598)) - [Fifciu](https://github.com/Fifciu) - -- state field in useShippingProvider instead of response, setState method ([#5624](https://github.com/vuestorefront/vue-storefront/pull/5624)) - [Fifciu](https://github.com/Fifciu) - -- Make "ejs" a production dependency ([#5630](https://github.com/vuestorefront/vue-storefront/pull/5630)) - [Filip Sobol](https://github.com/filipsobol) - -- Fix for error states reactivity in core factories and example of watching errors in docs ([#5654](https://github.com/vuestorefront/vue-storefront/pull/5654)) - [Fifciu](https://github.com/Fifciu) - -- Properly parse module options by using "<%= serialize(options) %>" instead of "JSON.parse('<%= JSON.stringify(options) %>')" ([#5664](https://github.com/vuestorefront/vue-storefront/pull/5664)) - [Filip Sobol](https://github.com/filipsobol) - -- Lazy hydrating sidebar on category's view when idle not when visible, so it works properly with EE useFacet ([#5667](https://github.com/vuestorefront/vue-storefront/pull/5667)) - [Fifciu](https://github.com/Fifciu) - - - -## 2.2.3 +| Before | After | Comment | Module +| ------ | ----- | ------ | ------ +variables and methods had names isOnCart and isOnWishlist | variables and methods have names isInCart and isInWishlist | fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist | useCart/useWishlist, +- Fix outside click handler for app header search ([#5595](https://github.com/vuestorefront/vue-storefront/pull/5595)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) +, +- save method for useShippingProvider, deprecated field ShippingMethod.description switched to ShippingMethod.localizedDescription, fixed cart getter for counting totals ([#5598](https://github.com/vuestorefront/vue-storefront/pull/5598)) - [Fifciu](https://github.com/Fifciu) +, +- state field in useShippingProvider instead of response, setState method ([#5624](https://github.com/vuestorefront/vue-storefront/pull/5624)) - [Fifciu](https://github.com/Fifciu) +, +- Make "ejs" a production dependency ([#5630](https://github.com/vuestorefront/vue-storefront/pull/5630)) - [Filip Sobol](https://github.com/filipsobol) +, +- Fix for error states reactivity in core factories and example of watching errors in docs ([#5654](https://github.com/vuestorefront/vue-storefront/pull/5654)) - [Fifciu](https://github.com/Fifciu) +, +- Properly parse module options by using "<%= serialize(options) %>" instead of "JSON.parse('<%= JSON.stringify(options) %>')" ([#5664](https://github.com/vuestorefront/vue-storefront/pull/5664)) - [Filip Sobol](https://github.com/filipsobol) +, +- Lazy hydrating sidebar on category's view when idle not when visible, so it works properly with EE useFacet ([#5667](https://github.com/vuestorefront/vue-storefront/pull/5667)) - [Fifciu](https://github.com/Fifciu) + + + +# 2.2.3 - fix register function from CT useUser composable allows user to log in [#5613](https://github.com/vuestorefront/vue-storefront/issues/5613) -## 2.2.1 +# 2.2.1 - fixed `vue-lazy-hydration` dependency in `nuxt-theme-module` and improved typings in Boilerplate ([#5403](https://github.com/DivanteLtd/vue-storefront/issues/5403)) ## 2.2.0 diff --git a/packages/core/docs/contributing/creating-changelog.md b/packages/core/docs/contributing/creating-changelog.md index b157a41018..9a71f0ba45 100644 --- a/packages/core/docs/contributing/creating-changelog.md +++ b/packages/core/docs/contributing/creating-changelog.md @@ -6,27 +6,27 @@ There are just a few steps to do in order to create the changelog. ## Steps -1. Go to folder `/changelog`, create a `.js` file, and give it the same name as a number of your current issue from GitHub. For example, `4523.js`. -2. Copy this code below, paste it inside your `.js` file and fill it in with your data. +1. Go to folder `/changelog`, create a `.js` file, and give it the same name as a number of your current issue from GitHub. For example `4523.js` +2. Copy this code below, paste it inside your `.js` file and fill it in with your data ```js module.exports = { - description: 'description of your changes', - link: 'link to your issue', + description: "description of your changes", + link: "link to your issue", isBreaking: true or false, //(depends if you applied some breaking changes), breakingChanges: [ //leave it empty if there aren't any breaking changes { - module: 'affected module', - before: 'how it was', - after: 'how it is', - comment: 'quick migration guide' + module: "affected module", + before: "how it was", + after: "how it is", + comment: "quick migration guide" } ], - author: 'your name', - linkToGitHubAccount: 'link to your github account' -}; + author: "your name", + linkToGitHubAccount: "link to your github account", +} ``` -3. Save all changes. +3. Save all changes and that's all @@ -92,8 +92,7 @@ export default ({ ``` -Inside your application, you'll also need to register the UI components -to render. +Inside your application you'll also need to register your UI components that willing to render. ## Usage example in the real application diff --git a/packages/core/docs/integrate/extending-integrations.md b/packages/core/docs/integrate/extending-integrations.md deleted file mode 100644 index 6b65fb276b..0000000000 --- a/packages/core/docs/integrate/extending-integrations.md +++ /dev/null @@ -1,65 +0,0 @@ -# Extending integrations - -## Introduction - -Server Middleware extensions allow to extend Express.js server, register additional API endpoints, or inject into the lifecycle of a request sent to a given Server Middleware integration from the application. - -
- Middleware Extensions -
- -## Creating an extension - -You can define as many extensions as you want. Each extension has the following structure: - -```js -const extension = { - name: 'extension-name', - extendApiMethods: { - getProduct: async () => { /* ... */ } - }, - extendApp: (app) => { /* ... */ }, - hooks: (req, res) => { - return { - beforeCreate: ({ configuration }) => configuration, - afterCreate: ({ configuration }) => configuration, - beforeCall: ({ configuration, callName, args }) => args, - afterCall: ({ configuration, callName, args, response }) => response - } - } -} -``` - -- `name` - defines the unique name of the extension -- `extendApiMethods` - overrides the original functions from API-client -- `extendApp` - a function that gives you access to the express.js app -- `hooks` - defines lifecycle hooks of API-client -- `hooks:beforeCreate` - called before API-client creates a connection. It accepts configuration as an argument, and must return it as well. You can use it to modify the configuration or merge with the default values. -- `hooks:afterCreate` - similar to the previous function, but called after the connection has been created. It accepts configuration as an argument, and must return it as well. -- `hooks:beforeCall` - called before each API-client function. We have access to the configuration, function name, and its arguments. This function must return the arguments, and based on the input parameters we can change it. -- `hooks:afterCall` - called after each API-client function. We have access to the configuration, function name, and its arguments. This function must return the response, and based on the input parameters we can attach something to it. - -See the [ApiClientExtension interface](/core/api-reference/core.apiclientextension.html) for more information. - -## Registering an extension - -To register an extension, add it to the array returned from the `extensions` function of a given integration in the `middleware.config.js` file: - -```js -module.exports = { - integrations: { - : { - location: '@/server', - configuration: {} - extensions: (extensions) => [ - ...extensions, - { - name: 'our-extension' - hooks: () => { /* ... */} - } - ], - customQueries: {} - } - } -}; -``` diff --git a/packages/core/docs/integrate/extending-vue-storefront.md b/packages/core/docs/integrate/extending-vue-storefront.md deleted file mode 100644 index 8749f19fc7..0000000000 --- a/packages/core/docs/integrate/extending-vue-storefront.md +++ /dev/null @@ -1,98 +0,0 @@ -# Extending Vue Storefront - -## Introduction - -Extensibility is one of the key selling points of many frameworks, and Vue Storefront is no exception. There is a good reason for this - at some point, most projects need to extend the base of the framework to meet their needs, be it with a ready-to-use or a custom plugin. Well-thought-out extensions or plugins system enables flexibility to meet the demands of the most, even very diverse projects. On this page, we will discuss possible ways to extend Vue Storefront if the basic features are not enough for your project. - -First, you should consider which part of the application you need to extend - frontend, backend, or both. Depending on your needs, you may need to extend: - -- [Vue.js](#extending-vue-js) -- [Nuxt.js](#extending-nuxt-js) -- [Server Middleware](#extending-server-middleware) - -In the sections below, we describe when and how to extend each of them. Some also have links to ready-to-use extensions created by framework authors or the community to save you time. - -## Extending Vue.js - -Plugins allow adding global-level functionalities to Vue.js, such as components, methods, helpers, or directives. These mainly extend the frontend portion of the application and can be divided into two categories: - -- UI plugins; -- Non-UI plugins; - -:::tip Using Vue.js plugins in Nuxt.js project -See the [Nuxt.js plugins](#nuxt-js-plugins) section to see more information on using Vue.js plugins in the Nuxt.js project. -::: - -### Vue.js UI plugins - -UI plugins extend how the application looks or behaves on user interactions. They include plugins that add support for: - -- event handling; -- responsive design, resizing, scrolling, and animations; -- handling forms and validation; -- routing, lazy loading, lazy hydration, meta tags; - -For a list of Vue.js UI plugins, see the [UI Utilities](https://github.com/vuejs/awesome-vue#ui-utilities) section in [Awesome Vue.js](https://github.com/vuejs/awesome-vue) repository. - -### Vue.js non-UI plugins - -Non-UI plugins extend how the application works under the hood or handles state and storage. They include plugins that add support for: - -- making HTTP requests; -- internationalization (i18n); -- custom events; -- persistence (storage); -- state management; -- web workers; - -For a list of Vue.js UI plugins see the [Utilities](https://github.com/vuejs/awesome-vue#utilities) section in [Awesome Vue.js](https://github.com/vuejs/awesome-vue) repository. - -## Extending Nuxt.js - -Nuxt.js offers two ways of extending its functionalities: - -- plugins; -- modules and build modules; - -### Nuxt.js plugins - -Nuxt.js imports plugins in browser (client-only), server (server-only), or both before creating the root Vue.js application. For this reason, you can use them to register Vue.js plugins. - -See the [Plugins directory](https://nuxtjs.org/docs/2.x/directory-structure/plugins) page in Nuxt.js documentation to learn more. - -### Nuxt.js modules and build modules - -Nuxt.js modules can customize almost any aspect of your project. They are functions called sequentially on the server when the Nuxt.js application is booting. - -You can use them to: -- register Nuxt.js plugins; -- add support for various UI frameworks; -- enable PWA or AMP; -- optimize images and other static assets; -- create a sitemap, generate `robots.txt` file or meta tags for social media platforms; -- registering various HTTP clients, such as axios or Apollo; -- add Google Tag Manager, Google GTag; -- integrate with CMSs, payment providers, error monitoring software; - -See the [Modules](https://nuxtjs.org/docs/2.x/directory-structure/modules) page in Nuxt.js documentation to learn more and [Explore Nuxt Modules](https://modules.nuxtjs.org/) page to see a list of available modules. - -## Extending Server Middleware - -As you might have read on a page dedicated to the [Server Middleware](/advanced/server-middleware.html), it's an Express proxy that handles traffic between your application and external services, such as eCommerce or CMS platforms. Server Middleware configuration allows to: - -- register integrations; -- extend existing integrations using extensions; - -Integrations and extensions for Server Middleware are run only on the server. - -### Server Middleware integrations - -Server Middleware integrations connect Vue Storefront applications with other external services. For example, all eCommerce and CMS integrations listed on the [Integrations](/integrations/) page are Server Middleware integrations. - -See the [Server Middleware](/advanced/server-middleware.html) page to learn more and [Integrating eCommerce platform](/integrate/integration-guide.html) page if you want to create your integration. - -### Server Middleware extensions - -Server Middleware extensions add or modify functionalities of already existing Server Middleware integrations. They may extend the Express.js server, register additional API endpoints, or inject into the lifecycle of a request. - -See the [Extending integrations](/integrate/integration-guide.html) page to learn more. diff --git a/packages/core/docs/integrate/integration-guide.md b/packages/core/docs/integrate/integration-guide.md index 2ec1ebd4b3..39ca5ebb64 100644 --- a/packages/core/docs/integrate/integration-guide.md +++ b/packages/core/docs/integrate/integration-guide.md @@ -1,4 +1,4 @@ -# Integrating eCommerce platform +# Integration guide :::danger Don't forget to reload the application The application does not reload automatically after saving the changes in Server Middleware. Due to this, you have to restart the application manually. We are working on enabling Hot Reloading in future updates. diff --git a/packages/core/docs/integrations/adyen.md b/packages/core/docs/integrations/adyen.md index d3221cd7cd..b1fa9dd40c 100644 --- a/packages/core/docs/integrations/adyen.md +++ b/packages/core/docs/integrations/adyen.md @@ -121,13 +121,13 @@ type PaymentAndOrder = Payment & { order: Order } 5. Add an `origin` to the allowed origins in Adyen's dashboard. You can do it in the same place where you looked for the `clientKey`. -6. commercetools shares [Adyen integration](https://github.com/commercetools/commercetools-adyen-integration). We recommend deploying it as a Google Function or an AWS Lambda. Make sure to configure and deploy both [extension](https://github.com/commercetools/commercetools-adyen-integration/tree/master/extension) and [notification](https://github.com/commercetools/commercetools-adyen-integration/tree/master/notification) module. Check readme of [the repository](https://github.com/commercetools/commercetools-adyen-integration) for details. +6. Commercetools shares [Adyen integration](https://github.com/commercetools/commercetools-adyen-integration). We recommend to deploy it as a Google Function or an AWS Lambda. Make sure to configure and deploy both [extension](https://github.com/commercetools/commercetools-adyen-integration/tree/master/extension) and [notification](https://github.com/commercetools/commercetools-adyen-integration/tree/master/notification) module. Check readme of [the repository](https://github.com/commercetools/commercetools-adyen-integration) for details. :::warning Bigger permissions for extensions -As you can see in `commercetools-adyen-integration` repository, commercetools recommends using `manage_project` scope for both notification and extension module. +As you can see in `commercetools-adyen-integration` repository, commercetools recommends to use `manage_project` scope for both notification and extension module. ::: -7. Use `PaymentAdyenProvider.vue` as a last step of the checkout process. This component will mount Adyen's Web Drop-In and handle payment process for you. +7. Use `PaymentAdyenProvider.vue` as a last step of the checkout process. This component will mount Adyen's Web Drop In and handle payment process for you. ```vue void` - Called after we got an error from either Adyen or our API. ## Placing an order -If the transaction is authorized, the server's controller for `payAndOrder`/`submitAdditionalPaymentDetails` will place an order in commercetools and apply the `order` object to the response. Thanks to that, we have only one request from the client to both finalize/authorize the payment and make an order. +If the transaction is authorized, the server's controller for `payAndOrder`/`submitAdditionalPaymentDetails` will place an order in Commercetools and apply the `order` object to the response. Thanks to that, we have only one request from the client to both finalize/authorize a payment and make an order. ## Checkout.com Adyen's module isn't compatible with [Checkout.com's module](https://github.com/vuestorefront/checkout-com). @@ -233,17 +233,17 @@ Open the `Network` tab in the browser's devtools. Each payment request will have `ctApi.apiHost` property inside your `middleware.config.js` contains wrong path. It should be `https://.com/` instead of `https://.com//graphql` ### Error: The type with the key 'ctp-adyen-integration-web-components-payment-type' was not found -You have to add new types and extensions to commercetools as described on these pages: +You have to add new types and extension to commercetools as described on these pages: - [Extension Module](https://github.com/commercetools/commercetools-adyen-integration/blob/master/extension/docs/HowToRun.md#commercetools-project-requirements), - [Notification Module](https://github.com/commercetools/commercetools-adyen-integration/blob/master/notification/docs/HowToRun.md#commercetools-project-requirements). For more information, see the 6th step of the [Adyen's installation guide](./adyen.html#installation). -### Klarna Pay Later does not work for the United States +### Klarna Pay Later does not work for United States Klarna Pay Later is not supported in the United States. However, sometimes it is added when you enable Klarna in Adyen's dashboard. If you have this problem, contact Adyen's support to remove it. ### 3DS2 Auth doesn't work in one environment -There might be a situation when you can finish 3DS2 Auth in the local environment but not in the other, like staging. When this happens, make sure to change `origin` in the `middleware.config.js` from `http://localhost:3000` to the URL of your staging environment. +There might be a situation when you can finish 3DS2 Auth in the local environment but not in the other, like staging. When this happens, make sure to change `origin` in the `middleware.config.js` from `http://localhost:3000` to the URL of your staging environment. -### Structure of DetailsRequest contains the following unknown fields +### Structure of DetailsRequest contains the following unknown fields... Update extension and notification modules to the [newest available version](https://github.com/commercetools/commercetools-adyen-integration/releases) by updating the tag in `extension.Dockerfile` and `notification.Dockerfile`. diff --git a/packages/core/docs/integrations/bazaarvoice.md b/packages/core/docs/integrations/bazaarvoice.md index 769b36f783..a89d7b1ea2 100644 --- a/packages/core/docs/integrations/bazaarvoice.md +++ b/packages/core/docs/integrations/bazaarvoice.md @@ -8,7 +8,7 @@ This feature is part of the Enterprise version. Please [contact our Sales team]( This package provides integration with [Bazaarvoice](https://www.bazaarvoice.com/). -Bazaarvoice (BV) provides two SDKs to integrate with their platform - `bvapi.js` and `bv.js`. The latter is recommended because of the performance improvements, and this is what is package uses under the hood. +Bazaarvoice (BV) provides two SDKs to integrate with their platform - `bvapi.js` and `bv.js`. The latter is recommended because of the performance improvements and this is what is package uses under the hood. We recommend reading [this documentation page](https://knowledge.bazaarvoice.com/wp-content/conversations-prr/en_US/display/integrating_content_bv_js.html) before using the package. @@ -53,12 +53,12 @@ export default { ``` * `clientName` - the lowercase name of the client provided by Bazaarvoice. -* `siteId` - the ID of the zone coming from the Bazaarvoice configuration hub. Defaults to `main_site`. +* `siteId` - the ID of the zone coming from Bazaarvoice configuration hub. Defaults to `main_site`. * `environment` - the deployment environment. Valid values are `production` and `staging`. Defaults to `staging`. -* `locale` - the locale used by the library, e.g. `en_US`. +* `locale` - the locale used by the library, eg. `en_US`. -::: warning Domain allowlist -For security reasons, Bazaarvoice uses an allowlist of allowed domains. +::: warning Domain white list +For security reasons, Bazaarvoice uses a white list of allowed domains. ::: ::: tip Use localhost @@ -101,7 +101,7 @@ Questions component displays questions and answers provided by the customers reg #### `BvRatingSummary` -The rating summary component (also called "fast stars") displays the average rating, the total number of reviews, and rating distribution when hovered. +The rating summary component (also called "fast stars") displays average rating, the total number of reviews, and rating distribution when hovered. ```html diff --git a/packages/core/docs/migrate/2.1.0-rc.1/integrators.md b/packages/core/docs/migrate/2.1.0-rc.1/integrators.md index 34ad09bb48..bdccaaddd0 100644 --- a/packages/core/docs/migrate/2.1.0-rc.1/integrators.md +++ b/packages/core/docs/migrate/2.1.0-rc.1/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.1.0-rc.1 +# Integrators upgrade notes ## API client functions diff --git a/packages/core/docs/migrate/2.1.0-rc.1/overview.md b/packages/core/docs/migrate/2.1.0-rc.1/overview.md index b5996fdd17..486aa106b4 100644 --- a/packages/core/docs/migrate/2.1.0-rc.1/overview.md +++ b/packages/core/docs/migrate/2.1.0-rc.1/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.1.0-rc.1 +# Migration guide 2.1.0-rc.1 This guide contains a list of changes, in order to upgrade your VSF next to the 2.1.0-rc.1 version. @@ -68,130 +68,3 @@ Uncaught Error: [vue-composition-api] must call Vue.use(plugin) before using any ['@vue-storefront/some-integration/nuxt', {}] } ``` - -## Access to API client - -### Before - -```js -import { getSettings } from '@vue-storefront/integration-name-api'; - -export default { - setup () { - const apiClientSettings = getSettings() - } -} -``` - -### After -```js -import { useVSFContext } from '@vue-storefront/core'; - -export default { - setup () { - const { $tag } = useVSFContext() - - // $tag.config - // $tag.client - // $tag.api - } -} -``` - -## Usage API client in plugins or middlewares - -### Before -```js -import { getProduct } from '@vue-storefront/integration-name-api'; - -export default async ({ app }) => { - const product = await getProduct({ id: 1 }) -} -``` - -### After - -```js -export default async ({ app, $vsf }) => { - const product = await $vsf.$tag.api.getProduct({ id: 1 }) -} -``` - -## Price formatting - -### Before - -```js -import { productGetters, useProduct } from '@vue-storefront/integration-name'; - - - -export default { - setup () { - const { product } = useProduct(); - - return { product, productGetters } - } -} -``` - -### After - -```js -import { productGetters, useProduct } from '@vue-storefront/integration-name'; -import { useUiHelpers } from '~/composables'; - - - -export default { - setup () { - const th = useUiHelpers(); - const { product } = useProduct(); - - return { product, productGetters, th } - } -} -``` - -## Configuring integration - -### Before -```js -import { setup } from '@vue-storefront/integration-name'; - -export default ({ app }) => { - setup({ - api: { - host: '<%= options.api.host %>', - auth: { - username: '<%= options.api.auth.username %>', - password: '<%= options.api.auth.password %>' - }, - shopId: selectedLocale.shopId - }, - }); -} -``` - -### After -```js -import { integrationPlugin } from '@vue-storefront/integration-name' -import { getProduct } from './your-api'; - -export default integrationPlugin(({ app, integration }) => { - integration.configure({ - api: { - host: '<%= options.api.host %>', - auth: { - username: '<%= options.api.auth.username %>', - password: '<%= options.api.auth.password %>' - }, - shopId: selectedLocale.shopId - }, - }, { getProduct }) -}); -``` diff --git a/packages/core/docs/migrate/2.2.0/integrators.md b/packages/core/docs/migrate/2.2.0/integrators.md index 5770fb052c..4842620e10 100644 --- a/packages/core/docs/migrate/2.2.0/integrators.md +++ b/packages/core/docs/migrate/2.2.0/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.2.0 +# Integrators upgrade notes ## Factory usage diff --git a/packages/core/docs/migrate/2.2.0/overview.md b/packages/core/docs/migrate/2.2.0/overview.md index fe4aeac131..008ed9405f 100644 --- a/packages/core/docs/migrate/2.2.0/overview.md +++ b/packages/core/docs/migrate/2.2.0/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.2.0 +# Migration guide 2.2.0 This version introduces many renamings or changes related to the function declarations among of the core. We had to proceed with this in order to keep the convention and unify the naming across whole VSF. @@ -6,47 +6,3 @@ We changes the composables and our factories according to the following rules: - each composable return always one field with the response from the api - each composable function takes one argument wich is an object of given parameters - each factory param function takes two argumens, first one is context (as it was before) and second one contains a function parmeters along with other options (such as customQuery) - -## Composables usage - -We have changes a bit the naming and signatures of composable functions. Below is the full list of what hs been implemented or changed: - -| Composable | Method | Old signature | New signature | -|------------|--------|---------------|---------------| -| useCart | addToCart | (product: PRODUCT, quantity: number, customQuery?: CustomQuery) | ({ product: PRODUCT, quantity: number, customQuery?: CustomQuery }) | -| useCart | removeFromCart | (product: CART_ITEM, customQuery?: CustomQuery) | ({ product: CART_ITEM, customQuery?: CustomQuery }) | -| useCart | updateQuantity | (product: CART_ITEM, quantity?: number, customQuery?: CustomQuery) | ({ product: CART_ITEM, quantity?: number, customQuery?: CustomQuery }) | -| useCart | load | (customQuery?: CustomQuery) | ({ customQuery?: CustomQuery } = {}) | -| useCart | clearCart | () | () | -| useCart | applyCoupon | (couponCode: string, customQuery?: CustomQuery) | ({ couponCode: string, customQuery?: CustomQuery }) | -| useCart | isOnCart | (product: PRODUCT) | ({ product: PRODUCT }) | -| useCart | removeCoupon | (coupon: COUPON, customQuery?: CustomQuery) | ({ coupon: COUPON, customQuery?: CustomQuery }) | -| useCart | setCart | (newCart: CART) | ({ newCart: CART }) | -| useCategory | search | (searchParams: CATEGORY_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: CATEGORY_SEARCH_PARAMS, customQuery?: CustomQuery }) | -| useContent | search | (params: CONTENT_SEARCH_PARAMS) | No changes | -| useFacet | search | (params?: AgnosticFacetSearchParams) | No changes | -| useProduct | search | (searchParams: PRODUCT_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: PRODUCT_SEARCH_PARAMS, customQuery?: CustomQuery }) | -| useReview | search | (searchParams: REVIEWS_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: REVIEWS_SEARCH_PARAMS, customQuery?: CustomQuery }) | -| useReview | addReview | (addParams: REVIEW_ADD_PARAMS, customQuery?: CustomQuery) | ({ ...addParams: REVIEW_ADD_PARAMS, customQuery?: CustomQuery }) | -| useUserBilling | addAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | -| useUserBilling | deleteAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | -| useUserBilling | updateAddress | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | -| useUserBilling | setDefault | (address: USER_BILLING_ITEM) | ({ address: USER_BILLING_ITEM }) | -| useUserBilling | load | () | () | -| useUserShipping | addAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | -| useUserShipping | deleteAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | -| useUserShipping | updateAddress | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | -| useUserShipping | setDefault | (address: USER_SHIPPING_ITEM) | ({ address: USER_SHIPPING_ITEM }) | -| useUserShipping | load | () | () | -| useUser | updateUser | (params: UPDATE_USER_PARAMS) | ({ user: UPDATE_USER_PARAMS }) | -| useUser | register | (registerUserData: REGISTER_USER_PARAMS) | ({ user: REGISTER_USER_PARAMS }) | -| useUser | login | (loginUserData: { username: string; password: string; }) | ({ user: LOGIN_USER_PARAMS }) | -| useUser | logout | () | () | -| useUser | changePassword | (currentPassword: string, newPassword: string) | ({ currentPassword: string, newPassword: string }) | -| useUser | load | () | () | -| useUserOrders | searchOrders | (searchParams: ORDER_SEARCH_PARAMS, customQuery?: CustomQuery) | ({ ...searchParams: ORDER_SEARCH_PARAMS, customQuery?: CustomQuery } = {}) | -| useWishlist | addToWishlist | (product: PRODUCT, customQuery?: CustomQuery) | ({ product: PRODUCT, customQuery?: CustomQuery }) | -| useWishlist | removeFromWishlist | (product: WISHLIST_ITEM, customQuery?: CustomQuery) | ({ product: WISHLIST_ITEM, customQuery?: CustomQuery }) | -| useWishlist | load | (customQuery?: CustomQuery) | ({ customQuery?: CustomQuery } = {}) | -| useWishlist | clearWishlist | () | () | -| useWishlist | isOnWishlist | (product: PRODUCT) | ({ product: PRODUCT }) | diff --git a/packages/core/docs/migrate/2.3.0-rc.2/integrators.md b/packages/core/docs/migrate/2.3.0-rc.2/integrators.md index af7c9a6002..08506e219d 100644 --- a/packages/core/docs/migrate/2.3.0-rc.2/integrators.md +++ b/packages/core/docs/migrate/2.3.0-rc.2/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.3.0-rc.2 +# Migration guide 2.3.0-rc.2 for Integrators ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.2/overview.md b/packages/core/docs/migrate/2.3.0-rc.2/overview.md index b6be22ba92..7dd4cdf985 100644 --- a/packages/core/docs/migrate/2.3.0-rc.2/overview.md +++ b/packages/core/docs/migrate/2.3.0-rc.2/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.3.0-rc.2 +# Migration guide 2.3.0-rc.2 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.3/integrators.md b/packages/core/docs/migrate/2.3.0-rc.3/integrators.md index 1737dab750..cdd5ef8962 100644 --- a/packages/core/docs/migrate/2.3.0-rc.3/integrators.md +++ b/packages/core/docs/migrate/2.3.0-rc.3/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.3.0-rc.3 +# Migration guide 2.3.0-rc.3 for Integrators ## Introduction diff --git a/packages/core/docs/migrate/2.3.0-rc.3/overview.md b/packages/core/docs/migrate/2.3.0-rc.3/overview.md index 02bf3f6466..79f23e88fd 100644 --- a/packages/core/docs/migrate/2.3.0-rc.3/overview.md +++ b/packages/core/docs/migrate/2.3.0-rc.3/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.3.0-rc.3 +# Migration guide 2.3.0-rc.3 ## Introduction diff --git a/packages/core/docs/migrate/2.3.0/integrators.md b/packages/core/docs/migrate/2.3.0/integrators.md index 62176aed80..3385b233e5 100644 --- a/packages/core/docs/migrate/2.3.0/integrators.md +++ b/packages/core/docs/migrate/2.3.0/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.3.0 +# Migration guide 2.3.0 for Integrators ## Introduction diff --git a/packages/core/docs/migrate/2.3.0/overview.md b/packages/core/docs/migrate/2.3.0/overview.md index a937adc862..9da553d3eb 100644 --- a/packages/core/docs/migrate/2.3.0/overview.md +++ b/packages/core/docs/migrate/2.3.0/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.3.0 +# Migration guide 2.3.0 ## Introduction diff --git a/packages/core/docs/migrate/2.4.0/integrators.md b/packages/core/docs/migrate/2.4.0/integrators.md index 444cda6867..e47503a60d 100644 --- a/packages/core/docs/migrate/2.4.0/integrators.md +++ b/packages/core/docs/migrate/2.4.0/integrators.md @@ -1,4 +1,4 @@ -# Migrating eCommerce integrations to 2.4.0 +# Migration guide 2.4.0 for Integrators ## Introduction diff --git a/packages/core/docs/migrate/2.4.0/overview.md b/packages/core/docs/migrate/2.4.0/overview.md index 251142404e..378ba91887 100644 --- a/packages/core/docs/migrate/2.4.0/overview.md +++ b/packages/core/docs/migrate/2.4.0/overview.md @@ -1,4 +1,4 @@ -# Migrating projects to 2.4.0 +# Migration guide 2.4.0 ## Introduction @@ -8,16 +8,8 @@ We had to proceed with this in order to keep the convention and unify the naming We changed the composables and our factories according to the following rules: - each composable always return one field with the response from the api - each composable function takes one argument which is an object of given parameters -- each factory param function takes two arguments, first one is context (as it was before) and second one contains a function parameters along with other options (such as customQuery) - -## Changes in `useCart` composable - -We introduced a breaking change in a signature of the `removeCoupon` function in the `useCart` composable. The intention is to make is consistent with the `applyCoupon` function in the same composable. - -| Composable | Method | Old signature | New signature | -|------------|--------|---------------|---------------| -| useCart | removeCoupon | ({ coupon: COUPON, customQuery?: CustomQuery }) | ({ couponCode: string, customQuery?: CustomQuery }) -## Other changes +- each factory param function takes two arguments, first one is context (as it was before) and second one contains a function parmeters along with other options (such as customQuery +## Changes - Added `useForgotPasswordFactory`. - Added `useSearchFactory`. diff --git a/packages/core/docs/migrate/index.md b/packages/core/docs/migrate/index.md index 506d1c9b7b..1fe8279f48 100644 --- a/packages/core/docs/migrate/index.md +++ b/packages/core/docs/migrate/index.md @@ -1,31 +1,8 @@ # Migration guides -## 2.4.0 - -- [Overview](./2.4.0/overview.md) -- [Integrators](./2.4.0/integrators.md) - -## 2.3.0 - -- [Overview](./2.3.0/overview.md) -- [Integrators](./2.3.0/integrators.md) - -## 2.3.0-rc.3 - -- [Overview](./2.3.0-rc.3/overview.md) -- [Integrators](./2.3.0-rc.3/integrators.md) - -## 2.3.0-rc.2 - -- [Overview](./2.3.0-rc.2/overview.md) -- [Integrators](./2.3.0-rc.2/integrators.md) - -## 2.2.0 - -- [Overview](./2.2.0/overview.md) -- [Integrators](./2.2.0/integrators.md) - -## 2.1.0-rc.1 - -- [Overview](./2.1.0-rc.1/overview.md) -- [Integrators](./2.1.0-rc.1/integrators.md) +- [2.4.0](./2.4.0/overview.md) +- [2.3.0](./2.3.0/overview.md) +- [2.3.0-rc.3](./2.3.0-rc.3/overview.md) +- [2.3.0-rc.2](./2.3.0-rc.2/overview.md) +- [2.2.0](./2.2.0/overview.md) +- [2.1.0-rc.1](./2.1.0-rc.1/overview.md) \ No newline at end of file diff --git a/packages/core/docs/package.json b/packages/core/docs/package.json index 3df03b5bbf..1aa48b9176 100644 --- a/packages/core/docs/package.json +++ b/packages/core/docs/package.json @@ -5,27 +5,24 @@ "description": "", "license": "MIT", "scripts": { - "dev": "vuepress dev", + "dev": "yarn build:core && yarn build:ct && vuepress dev", "build": "yarn build:core && yarn build:ct && NODE_OPTIONS=--max_old_space_size=4096 vuepress build", + "core-cache-ref": "cd ../cache && api-extractor run --local", "core-core-ref": "cd ../core && api-extractor run --local", "core-middleware-ref": "cd ../middleware && api-extractor run --local", "core-ref-md": "api-documenter markdown --i core/api-reference --o core/api-reference", "build:core": "yarn core-cache-ref && yarn core-core-ref && yarn core-middleware-ref && yarn core-ref-md", + "ct-api-ref": "cd ../../commercetools/api-client && api-extractor run --local", "ct-comp-ref": "cd ../../commercetools/composables && api-extractor run --local", "ct-ref-md": "api-documenter markdown --i commercetools/api-reference --o commercetools/api-reference", "build:ct": "yarn ct-api-ref && yarn ct-comp-ref && yarn ct-ref-md" }, "devDependencies": { + "@vue-storefront/commercetools-api": "~1.2.0", "@microsoft/api-documenter": "^7.13.7", "@microsoft/api-extractor": "^7.18.3", - "@vue-storefront/commercetools-api": "~1.2.0", - "@vuepress/plugin-active-header-links": "^1.8.2", - "@vuepress/plugin-back-to-top": "^1.8.2", - "@vuepress/plugin-medium-zoom": "^1.8.2", - "@vuepress/plugin-search": "^1.8.2", - "handlebars": "^4.7.7", "typescript": "^3.6.4", "vuepress": "^1.2.0" }, diff --git a/packages/core/docs/scripts/changelog.js b/packages/core/docs/scripts/changelog.js index 75bc283ceb..e9b1b54b5f 100644 --- a/packages/core/docs/scripts/changelog.js +++ b/packages/core/docs/scripts/changelog.js @@ -1,53 +1,39 @@ -const { compile } = require('handlebars'); -const { readFileSync, writeFileSync, unlinkSync, readdirSync } = require('fs'); +const fs = require('fs'); -// Load changelog template files -const templates = { - version: readFileSync('./templates/version.hbs', 'utf8'), - change: readFileSync('./templates/change.hbs', 'utf8') +const commandArgs = process.argv.slice(2); + +const getCliArgument = (name, number) => { + return commandArgs[commandArgs.findIndex(arg => arg === name) + number]; }; -// Get arguments passed to the script -const commandArgs = process.argv.slice(2); -const getCliArgument = name => commandArgs[commandArgs.findIndex(arg => arg === name) + 1]; -const version = getCliArgument('--v'); -const pathIn = getCliArgument('--in'); -const pathOut = getCliArgument('--out'); - -// Get names of all files in the source directory -const fileName = readdirSync(pathIn); - -// Extract IDs of the pull requests from file names -const pullRequestIds = fileName.map(el => el.substr(0, el.lastIndexOf('.'))); - -// Map PRs into Markdown templates -const changes = fileName - // eslint-disable-next-line global-require - .map(el => require(`${pathIn}/${el}`)) - .map((pullRequest, index) => { - return compile(templates.change)({ - ...pullRequest, - prNumber: pullRequestIds[index] - }); - }) - .join('') - .trim(); - -// Load changelog file -const changelog = readFileSync(pathOut, 'utf8').split('\n'); - -// Check if version already exists -const versionLineNumber = changelog - .map(el => el.indexOf(version)) +const releaseVersion = getCliArgument('--v', 1); + +const pathIn = getCliArgument('--in', 0) ? getCliArgument('--in', 1) : '../changelog'; + +const pathOut = getCliArgument('--out', 0) ? getCliArgument('--out', 1) : '../contributing/changelog.md'; + +const prNumbers = fs.readdirSync(pathIn); + +const numberOfPR = prNumbers.map(el => el.substr(0, el.lastIndexOf('.'))); + +const finalData = prNumbers.map(el => require(`${pathIn}/${el}`)).map((el, i) => ` +- ${el.isBreaking ? '[BREAKING]' : ''} ${el.description} ([#${numberOfPR[i]}](${el.link})) - [${el.author}](${el.linkToGitHubAccount}) +${el.isBreaking ? ` +| Before | After | Comment | Module +| ------ | ----- | ------ | ------` + +el.breakingChanges.map(br => '\n' + br.before + ' | ' + br.after + ' | ' + br.comment + ' | ' + br.module) : ''}`); + +const changelogData = fs.readFileSync(pathOut).toString().split('\n'); + +const versionExists = changelogData + .map(el => el.indexOf(releaseVersion)) .findIndex(el => el > -1); -// Update changelog file -versionLineNumber > -1 - ? changelog.splice(versionLineNumber + 2, 0, changes) - : changelog.splice(2, 0, compile(templates.version)({ version, changes })); +changelogData.splice(versionExists > -1 ? versionExists + 1 : 1, 0, versionExists > -1 ? finalData : '\n## ' + releaseVersion + '\n' + finalData); +const text = changelogData.join('\n'); -// Write updated changelog file -writeFileSync(pathOut, changelog.join('\n')); +fs.writeFile(pathOut, text, (err) => { + if (err) return err; +}); -// Delete files from source directory -fileName.map(el => unlinkSync(`${pathIn}/${el}`)); +prNumbers.map(el => fs.unlinkSync(`${pathIn}/${el}`)); diff --git a/packages/core/docs/scripts/templates/change.hbs b/packages/core/docs/scripts/templates/change.hbs deleted file mode 100644 index b35b5080f9..0000000000 --- a/packages/core/docs/scripts/templates/change.hbs +++ /dev/null @@ -1,10 +0,0 @@ -- {{#if isBreaking}}**[BREAKING]** {{/if}}{{ description }} ([{{ prNumber }}]({{ link }})) - [{{ author }}]({{ linkToGitHubAccount }}) - -{{#if breakingChanges.length}} - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - {{#each breakingChanges}} - | {{ before }} | {{ after }} | {{ comment }} | {{ module }} | - {{/each}} - -{{/if}} diff --git a/packages/core/docs/scripts/templates/version.hbs b/packages/core/docs/scripts/templates/version.hbs deleted file mode 100644 index 602be0c2cf..0000000000 --- a/packages/core/docs/scripts/templates/version.hbs +++ /dev/null @@ -1,3 +0,0 @@ -## {{ version }} - -{{ changes }} diff --git a/packages/core/docs/shopify/README.md b/packages/core/docs/shopify/README.md deleted file mode 100755 index eb4dd7e017..0000000000 --- a/packages/core/docs/shopify/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Shopify integration for Vue Storefront 2 - -:::tip There's more -This page only contains the documentation specific to Shopify integration. For more information, see the [Vue Storefront documentation](https://docs.vuestorefront.io/v2/). -::: - -[Shopify](https://www.vuestorefront.io/shopify) integration for Vue Storefront is open-source and maintained by the superheroes from the [Aureate labs](https://aureatelabs.com/). - -If you want to preview our product, feel free to visit our [demo](https://shopify-pwa.aureatelabs.com/) application. - -You can also support us by contributing [here](https://github.com/vuestorefront/shopify). diff --git a/packages/core/docs/shopify/api-client-reference.md b/packages/core/docs/shopify/api-client-reference.md deleted file mode 100644 index 0d6a361503..0000000000 --- a/packages/core/docs/shopify/api-client-reference.md +++ /dev/null @@ -1,13424 +0,0 @@ - -
- -## `addToCart` - -Defined in: [packages/shopify/api-client/src/api/addToCart/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/addToCart/index.ts#L7) - -#### Parameters: - -Name | Type | -:------ | :------ | -| -`__namedParameters` | [*Cart*](#cart) | -`product` | [*ProductVariant*](#productvariant) | -`quantity` | *number* | -`customQuery?` | *Record* | - -**Returns:** *Promise*<[*CartResponse*](#cartresponse)\> - - - -## `createCart` - -Defined in: [packages/shopify/api-client/src/api/createCart/index.ts:6](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/createCart/index.ts#L6) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`cartDraft` | [*CartData*](#interfacestypes_apicartdatamd) | -`customQuery?` | *Record* | - -**Returns:** *Promise* - - - -## `changePassword` - -Defined in: [packages/shopify/api-client/src/api/changePassword/index.ts:4](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/changePassword/index.ts#L4) - -#### Parameters: - -Name | Type | -:------ | :------ | -`__namedParameters` | *Object* | -`version` | *any* | -`currentPassword` | *string* | -`newPassword` | *string* | - -**Returns:** *Promise*\>\> - - - -## `signIn` - -Defined in: [packages/shopify/api-client/src/api/signIn/index.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signIn/index.ts#L5) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`draft` | [*SignInDraft*](#signindraft) | - -**Returns:** *Promise*\>\> - - - -## `SignUp` - -Defined in: [packages/shopify/api-client/src/api/signUp/index.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signUp/index.ts#L5) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`draft` | [*SignUpDraft*](#signupdraft) | - -**Returns:** *Promise*\>\> - - - -## `SignOut` - -Defined in: [packages/shopify/api-client/src/api/SignOut/index.ts:1](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/signOut/index.ts#L1) - -#### Parameters: - -Name | Type | -:------ | :------ | -`__namedParameters` | *Object* | - -**Returns:** *Promise* - - - -## `editProfile` - -Defined in: [packages/shopify/api-client/src/api/editProfile/index.ts:4](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/editProfile/index.ts#L4) - -#### Parameters: - -Name | Type | -:------ | :------ | -`__namedParameters` | *Object* | -`customerAccessToken` | *string* | -`customer` | *any* | - - - -## `getCategory` - -Defined in: [packages/shopify/api-client/src/api/getCategory/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getCategory/index.ts#L12) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`params` | *any* | -`customQuery?` | *Record* | - -**Returns:** *Promise*\> - - - -## `fetchOrders` - -Defined in: [packages/shopify/api-client/src/api/ferchOrders/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/fetchOrders/index.ts#L12) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`params` | *any* | -`customQuery?` | *Record* | - -**Returns:** *Promise*\> - - - -## `getProduct` - -Defined in: [packages/shopify/api-client/src/api/getProduct/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getProduct/index.ts#L12) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`params` | *any* | -`customQuery?` | *Record* | - -**Returns:** *Promise*\> - - - -## `isGuest` - -Defined in: [packages/shopify/api-client/src/api/isGuest/index.ts:3](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/isGuest/index.ts#L3) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | - -**Returns:** *any* - - - -## `removeFromCart` - -Defined in: [packages/shopify/api-client/src/api/removeFromCart/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/removeFromCart/index.ts#L7) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`cart` | [*Cart*](#cart) | -`product` | [*LineItem*](#lineitem) | -`customQuery?` | *Record* | - -**Returns:** *Promise*<[*CartResponse*](#cartresponse)\> - - - -## `updateCart` - -Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:15](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L15) - -#### Parameters: - -Name | Type | -:------ | :------ | -`context` | *any* | -`params` | [*UpdateCartParams*](#interfacesapi_updatecartupdatecartparamsmd) | -`customQuery?` | *Record* | - -**Returns:** *any* - -#### Type declaration: - -Name | Type | -:------ | :------ | -`activeCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:55](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L55) - -___ - -### `AddAttributeDefinition` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeDefinition` | [*AttributeDefinitionDraft*](#attributedefinitiondraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:59](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L59) - -___ - -### `AddCartCustomLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`money` | [*BaseMoneyInput*](#basemoneyinput) | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | -`slug` | [*Scalars*](#scalars)[*String*] | -`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:63](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L63) - -### `AddCustomerAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address` | [*AddressInput*](#addressinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:113](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L113) - -___ - -### `AddCustomerBillingAddressId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:117](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L117) - -___ - -### `AddCustomerShippingAddressId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:121](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L121) - -___ - -### `AddMyCartLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:138](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/types/GraphQL.ts#L138) - -___ - -### `AddOrderDelivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`items`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | -`parcels`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L150) - -___ - -### `AddOrderItemShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address` | [*AddressInput*](#addressinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L156) - -___ - -### `AddOrderParcelToDelivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deliveryId` | [*Scalars*](#scalars)[*String*] | -`items`? | [*Maybe*](#maybe)<[*DeliveryItemDraftType*](#deliveryitemdrafttype)[]\> | -`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurementsDraftType*](#parcelmeasurementsdrafttype)\> | -`trackingData`? | [*Maybe*](#maybe)<[*TrackingDataDraftType*](#trackingdatadrafttype)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:160](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L160) - -___ - -### `AddOrderPayment` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L167) - -___ - -### `AddOrderReturnInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`items` | [*ReturnItemDraftType*](#returnitemdrafttype)[] | -`returnDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`returnTrackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:171](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L171) - -___ - -### `AddPlainEnumValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`value` | [*PlainEnumValueDraft*](#plainenumvaluedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:177](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L177) - -___ - -### `AddProductAsset` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`asset` | [*AssetDraftInput*](#assetdraftinput) | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`position`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:182](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L182) - -___ - -### `AddProductExternalImage` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`image` | [*ImageInput*](#imageinput) | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:191](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L191) - -___ - -### `AddProductPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`price` | [*ProductPriceDataInput*](#productpricedatainput) | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:198](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L198) - -___ - -### `AddProductToCategory` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`category` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L206) - -___ - -### `AddProductVariant` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | -`attributes`? | [*Maybe*](#maybe)<[*ProductAttributeInput*](#productattributeinput)[]\> | -`images`? | [*Maybe*](#maybe)<[*ImageInput*](#imageinput)[]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`prices`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)[]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L212) - -___ - -### `AddShippingMethodShippingRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | -`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:289](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L289) - -___ - -### `AddShippingMethodZone` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L294) - -___ - -### `AddShoppingListLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:298](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L298) - -___ - -### `AddShoppingListTextLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L307) - -___ - -### `AddZoneLocation` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`location` | [*ZoneLocation*](#zonelocation) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L315) - -___ - -### `Address` - -An address represents a postal address. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Address* | -`additionalAddressInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`additionalStreetInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`apartment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`building`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`city`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`company`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`contactInfo` | [*AddressContactInfo*](#addresscontactinfo) | -`country` | [*Scalars*](#scalars)[*Country*] | -`department`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`pOBox`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`postalCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`region`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`streetName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`streetNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:223](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L223) - -___ - -### `AddressContactInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *AddressContactInfo* | -`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:253](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L253) - -___ - -### `AddressInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`additionalAddressInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`additionalStreetInfo`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`apartment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`building`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`city`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`company`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`country` | [*Scalars*](#scalars)[*Country*] | -`department`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`fax`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`mobile`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`pOBox`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`phone`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`postalCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`region`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`streetName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`streetNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:261](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L261) - -___ - -### `ApiClientWithSecret` - -API Clients can be used to obtain OAuth 2 access tokens. The secret is only -shown once in the response of creating the API Client. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *APIClientWithSecret* | -`createdAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`id` | [*Scalars*](#scalars)[*String*] | -`lastUsedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`scope` | [*Scalars*](#scalars)[*String*] | -`secret` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:358](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L358) - -___ - -### `ApiClientWithoutSecret` - -API Clients can be used to obtain OAuth 2 access tokens - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *APIClientWithoutSecret* | -`createdAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`id` | [*Scalars*](#scalars)[*String*] | -`lastUsedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`scope` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:338](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L338) - -___ - -### `ApiClientWithoutSecretQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *APIClientWithoutSecretQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*ApiClientWithoutSecret*](#apiclientwithoutsecret)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:347](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L347) - -___ - -### `ApplyCartDeltaToCustomLineItemShippingDetailsTargets` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`targetsDelta` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:368](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L368) - -___ - -### `ApplyCartDeltaToLineItemShippingDetailsTargets` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`targetsDelta` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:373](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L373) - -___ - -### `Asset` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *Asset* | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | - | -`id` | [*Scalars*](#scalars)[*String*] | - | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | -`sources` | [*AssetSource*](#assetsource)[] | - | -`tags` | [*Scalars*](#scalars)[*String*][] | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:378](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L378) - -___ - -### `AssetCustomFieldListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:412](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L412) - -___ - -### `AssetCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:407](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L407) - -___ - -### `AssetDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:402](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L402) - -___ - -### `AssetDimensions` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *AssetDimensions* | -`height` | [*Scalars*](#scalars)[*Int*] | -`width` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:417](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L417) - -___ - -### `AssetDimensionsInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`height` | [*Scalars*](#scalars)[*Int*] | -`width` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:423](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L423) - -___ - -### `AssetDraftInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | -`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:428](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L428) - -___ - -### `AssetNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:397](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L397) - -___ - -### `AssetSource` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *AssetSource* | -`contentType`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`dimensions`? | [*Maybe*](#maybe)<[*AssetDimensions*](#assetdimensions)\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`uri` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:438](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L438) - -___ - -### `AssetSourceInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`contentType`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`dimensions`? | [*Maybe*](#maybe)<[*AssetDimensionsInput*](#assetdimensionsinput)\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`uri` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:446](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L446) - -___ - -### `Attribute` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:453](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L453) - -___ - -### `AttributeDefinition` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *AttributeDefinition* | -`attributeConstraint` | [*AttributeConstraint*](../enums/types_graphql.attributeconstraint.md) | -`inputHint` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | -`inputTip`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`inputTipAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | -`isRequired` | [*Scalars*](#scalars)[*Boolean*] | -`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | -`name` | [*Scalars*](#scalars)[*String*] | -`type` | [*AttributeDefinitionType*](#attributedefinitiontype) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L468) - -___ - -### `AttributeDefinitionDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeConstraint`? | [*Maybe*](#maybe)<[*AttributeConstraint*](../enums/types_graphql.attributeconstraint.md)\> | -`inputHint`? | [*Maybe*](#maybe)<[*TextInputHint*](../enums/types_graphql.textinputhint.md)\> | -`inputTip`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`isRequired` | [*Scalars*](#scalars)[*Boolean*] | -`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | -`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`name` | [*Scalars*](#scalars)[*String*] | -`type` | [*AttributeTypeDraft*](#attributetypedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:492](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L492) - -___ - -### `AttributeDefinitionInputTipArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:487](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L487) - -___ - -### `AttributeDefinitionLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:482](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L482) - -___ - -### `AttributeDefinitionResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *AttributeDefinitionResult* | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`results` | [*AttributeDefinition*](#attributedefinition)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:503](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L503) - -___ - -### `AttributeDefinitionType` - -(https://shopify.dev/api/storefront/reference/common-objects/attributeinput)[https://shopify.dev/api/storefront/reference/common-objects/attributeinput] - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:512](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L512) - -___ - -### `AttributeSetElementTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`boolean`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`date`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`datetime`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`enum`? | [*Maybe*](#maybe)<[*EnumTypeDraft*](#enumtypedraft)\> | -`lenum`? | [*Maybe*](#maybe)<[*LocalizableEnumTypeDraft*](#localizableenumtypedraft)\> | -`ltext`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`money`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`number`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`reference`? | [*Maybe*](#maybe)<[*ReferenceTypeDefinitionDraft*](#referencetypedefinitiondraft)\> | -`text`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`time`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L516) - -___ - -### `AttributeSetTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`elementType` | [*AttributeSetElementTypeDraft*](#attributesetelementtypedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:530](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L530) - -___ - -### `AttributeTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`boolean`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`date`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`datetime`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`enum`? | [*Maybe*](#maybe)<[*EnumTypeDraft*](#enumtypedraft)\> | -`lenum`? | [*Maybe*](#maybe)<[*LocalizableEnumTypeDraft*](#localizableenumtypedraft)\> | -`ltext`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`money`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`number`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`reference`? | [*Maybe*](#maybe)<[*ReferenceTypeDefinitionDraft*](#referencetypedefinitiondraft)\> | -`set`? | [*Maybe*](#maybe)<[*AttributeSetTypeDraft*](#attributesettypedraft)\> | -`text`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | -`time`? | [*Maybe*](#maybe)<[*SimpleAttributeTypeDraft*](#simpleattributetypedraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L534) - -___ - -### `BaseMoney` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`centAmount` | [*Scalars*](#scalars)[*Long*] | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | -`fractionDigits` | [*Scalars*](#scalars)[*Int*] | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:549](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L549) - -___ - -### `BaseMoneyInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`centPrecision`? | [*Maybe*](#maybe)<[*MoneyInput*](#moneyinput)\> | -`highPrecision`? | [*Maybe*](#maybe)<[*HighPrecisionMoneyInput*](#highprecisionmoneyinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:556](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L556) - -___ - -### `BaseSearchKeywordInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomSuggestTokenizerInput*](#customsuggesttokenizerinput)\> | -`whitespace`? | [*Maybe*](#maybe)<[*WhitespaceSuggestTokenizerInput*](#whitespacesuggesttokenizerinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:561](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L561) - -___ - -### `BooleanAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:566](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L566) - -___ - -### `BooleanAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:572](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L572) - -___ - -### `BooleanField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:577](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L577) - -___ - -### `BooleanType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:583](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L583) - -___ - -### `Cart` - -A shopping cart holds product variants and can be ordered. Each cart either -belongs to a registered customer or is an anonymous cart. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:591](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L591) - -___ - -### `CartClassificationInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`values` | [*LocalizedEnumValueInput*](#localizedenumvalueinput)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:654](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L654) - -___ - -### `CartClassificationType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L658) - -___ - -### `CartCustomFieldListArgs` - -A shopping cart holds product variants and can be ordered. Each cart either -belongs to a registered customer or is an anonymous cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:649](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L649) - -___ - -### `CartCustomFieldsRawArgs` - -A shopping cart holds product variants and can be ordered. Each cart either -belongs to a registered customer or is an anonymous cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:641](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L641) - -___ - -### `CartDiscount` - -Cart discounts are recalculated every time LineItems or CustomLineItems are -added or removed from the Cart or an order is created from the cart. - -The number of active cart discounts that do not require a discount code -(isActive=true and requiresDiscountCode=false) is limited to 100. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L670) - -___ - -### `CartDiscountCustomFieldListArgs` - -Cart discounts are recalculated every time LineItems or CustomLineItems are -added or removed from the Cart or an order is created from the cart. - -The number of active cart discounts that do not require a discount code -(isActive=true and requiresDiscountCode=false) is limited to 100. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:740](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L740) - -___ - -### `CartDiscountCustomFieldsRawArgs` - -Cart discounts are recalculated every time LineItems or CustomLineItems are -added or removed from the Cart or an order is created from the cart. - -The number of active cart discounts that do not require a discount code -(isActive=true and requiresDiscountCode=false) is limited to 100. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:729](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L729) - -___ - -### `CartDiscountDescriptionArgs` - -Cart discounts are recalculated every time LineItems or CustomLineItems are -added or removed from the Cart or an order is created from the cart. - -The number of active cart discounts that do not require a discount code -(isActive=true and requiresDiscountCode=false) is limited to 100. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:718](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L718) - -___ - -### `CartDiscountDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cartPredicate` | [*Scalars*](#scalars)[*String*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`requiresDiscountCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`sortOrder` | [*Scalars*](#scalars)[*String*] | -`stackingMode`? | [*Maybe*](#maybe)<[*StackingMode*](../enums/types_graphql.stackingmode.md)\> | -`target`? | [*Maybe*](#maybe)<[*CartDiscountTargetInput*](#cartdiscounttargetinput)\> | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`value` | [*CartDiscountValueInput*](#cartdiscountvalueinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:745](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L745) - -___ - -### `CartDiscountNameArgs` - -Cart discounts are recalculated every time LineItems or CustomLineItems are -added or removed from the Cart or an order is created from the cart. - -The number of active cart discounts that do not require a discount code -(isActive=true and requiresDiscountCode=false) is limited to 100. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:707](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L707) - -___ - -### `CartDiscountQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CartDiscountQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*CartDiscount*](#cartdiscount)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:761](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L761) - -___ - -### `CartDiscountTarget` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:769](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L769) - -___ - -### `CartDiscountTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItems`? | [*Maybe*](#maybe)<[*CustomLineItemsTargetInput*](#customlineitemstargetinput)\> | -`lineItems`? | [*Maybe*](#maybe)<[*LineItemsTargetInput*](#lineitemstargetinput)\> | -`multiBuyCustomLineItems`? | [*Maybe*](#maybe)<[*MultiBuyCustomLineItemsTargetInput*](#multibuycustomlineitemstargetinput)\> | -`multiBuyLineItems`? | [*Maybe*](#maybe)<[*MultiBuyLineItemsTargetInput*](#multibuylineitemstargetinput)\> | -`shipping`? | [*Maybe*](#maybe)<[*ShippingTargetInput*](#shippingtargetinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:773](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L773) - -___ - -### `CartDiscountUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`changeCartPredicate`? | [*Maybe*](#maybe)<[*ChangeCartDiscountCartPredicate*](#changecartdiscountcartpredicate)\> | -`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeCartDiscountIsActive*](#changecartdiscountisactive)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeCartDiscountName*](#changecartdiscountname)\> | -`changeRequiresDiscountCode`? | [*Maybe*](#maybe)<[*ChangeCartDiscountRequiresDiscountCode*](#changecartdiscountrequiresdiscountcode)\> | -`changeSortOrder`? | [*Maybe*](#maybe)<[*ChangeCartDiscountSortOrder*](#changecartdiscountsortorder)\> | -`changeStackingMode`? | [*Maybe*](#maybe)<[*ChangeCartDiscountStackingMode*](#changecartdiscountstackingmode)\> | -`changeTarget`? | [*Maybe*](#maybe)<[*ChangeCartDiscountTarget*](#changecartdiscounttarget)\> | -`changeValue`? | [*Maybe*](#maybe)<[*ChangeCartDiscountValue*](#changecartdiscountvalue)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCartDiscountCustomField*](#setcartdiscountcustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCartDiscountCustomType*](#setcartdiscountcustomtype)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetCartDiscountDescription*](#setcartdiscountdescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetCartDiscountKey*](#setcartdiscountkey)\> | -`setValidFrom`? | [*Maybe*](#maybe)<[*SetCartDiscountValidFrom*](#setcartdiscountvalidfrom)\> | -`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetCartDiscountValidFromAndUntil*](#setcartdiscountvalidfromanduntil)\> | -`setValidUntil`? | [*Maybe*](#maybe)<[*SetCartDiscountValidUntil*](#setcartdiscountvaliduntil)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:781](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L781) - -___ - -### `CartDiscountValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:799](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L799) - -___ - -### `CartDiscountValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`absolute`? | [*Maybe*](#maybe)<[*AbsoluteDiscountValueInput*](#absolutediscountvalueinput)\> | -`giftLineItem`? | [*Maybe*](#maybe)<[*GiftLineItemValueInput*](#giftlineitemvalueinput)\> | -`relative`? | [*Maybe*](#maybe)<[*RelativeDiscountValueInput*](#relativediscountvalueinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:803](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L803) - -___ - -### `CartDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`billingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | -`currency` | [*Scalars*](#scalars)[*Currency*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`customLineItems`? | [*Maybe*](#maybe)<[*CustomLineItemDraft*](#customlineitemdraft)[]\> | -`customerEmail`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`discountCodes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`externalTaxRateForShippingMethod`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`inventoryMode`? | [*Maybe*](#maybe)<[*InventoryMode*](../enums/types_graphql.inventorymode.md)\> | -`itemShippingAddresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | -`lineItems`? | [*Maybe*](#maybe)<[*LineItemDraft*](#lineitemdraft)[]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | -`origin`? | [*Maybe*](#maybe)<[*CartOrigin*](../enums/types_graphql.cartorigin.md)\> | -`shippingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`shippingRateInput`? | [*Maybe*](#maybe)<[*ShippingRateInputDraft*](#shippingrateinputdraft)\> | -`store`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`taxCalculationMode`? | [*Maybe*](#maybe)<[*TaxCalculationMode*](../enums/types_graphql.taxcalculationmode.md)\> | -`taxMode`? | [*Maybe*](#maybe)<[*TaxMode*](../enums/types_graphql.taxmode.md)\> | -`taxRoundingMode`? | [*Maybe*](#maybe)<[*RoundingMode*](../enums/types_graphql.roundingmode.md)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:809](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L809) - -___ - -### `CartQueryInterface` - -Fields to access carts. Includes direct access to a single cart and searching for carts. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | -`carts` | [*CartQueryResult*](#cartqueryresult) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:844](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L844) - -___ - -### `CartQueryInterfaceCartArgs` - -Fields to access carts. Includes direct access to a single cart and searching for carts. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L850) - -___ - -### `CartQueryInterfaceCartsArgs` - -Fields to access carts. Includes direct access to a single cart and searching for carts. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:855](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L855) - -___ - -### `CartQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CartQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Cart*](#cart)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:862](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L862) - -___ - -### `CartScoreInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L870) - -___ - -### `CartScoreType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:874](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L874) - -___ - -### `CartUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addCustomLineItem`? | [*Maybe*](#maybe)<[*AddCartCustomLineItem*](#addcartcustomlineitem)\> | -`addDiscountCode`? | [*Maybe*](#maybe)<[*AddCartDiscountCode*](#addcartdiscountcode)\> | -`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddCartItemShippingAddress*](#addcartitemshippingaddress)\> | -`addLineItem`? | [*Maybe*](#maybe)<[*AddCartLineItem*](#addcartlineitem)\> | -`addPayment`? | [*Maybe*](#maybe)<[*AddCartPayment*](#addcartpayment)\> | -`addShoppingList`? | [*Maybe*](#maybe)<[*AddCartShoppingList*](#addcartshoppinglist)\> | -`applyDeltaToCustomLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToCustomLineItemShippingDetailsTargets*](#applycartdeltatocustomlineitemshippingdetailstargets)\> | -`applyDeltaToLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToLineItemShippingDetailsTargets*](#applycartdeltatolineitemshippingdetailstargets)\> | -`changeCustomLineItemMoney`? | [*Maybe*](#maybe)<[*ChangeCartCustomLineItemMoney*](#changecartcustomlineitemmoney)\> | -`changeCustomLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartCustomLineItemQuantity*](#changecartcustomlineitemquantity)\> | -`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartLineItemQuantity*](#changecartlineitemquantity)\> | -`changeTaxCalculationMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxCalculationMode*](#changecarttaxcalculationmode)\> | -`changeTaxMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxMode*](#changecarttaxmode)\> | -`changeTaxRoundingMode`? | [*Maybe*](#maybe)<[*ChangeCartTaxRoundingMode*](#changecarttaxroundingmode)\> | -`recalculate`? | [*Maybe*](#maybe)<[*RecalculateCart*](#recalculatecart)\> | -`removeCustomLineItem`? | [*Maybe*](#maybe)<[*RemoveCartCustomLineItem*](#removecartcustomlineitem)\> | -`removeDiscountCode`? | [*Maybe*](#maybe)<[*RemoveCartDiscountCode*](#removecartdiscountcode)\> | -`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveCartItemShippingAddress*](#removecartitemshippingaddress)\> | -`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveCartLineItem*](#removecartlineitem)\> | -`removePayment`? | [*Maybe*](#maybe)<[*RemoveCartPayment*](#removecartpayment)\> | -`setAnonymousId`? | [*Maybe*](#maybe)<[*SetCartAnonymousId*](#setcartanonymousid)\> | -`setBillingAddress`? | [*Maybe*](#maybe)<[*SetCartBillingAddress*](#setcartbillingaddress)\> | -`setCartTotalTax`? | [*Maybe*](#maybe)<[*SetCartTotalTax*](#setcarttotaltax)\> | -`setCountry`? | [*Maybe*](#maybe)<[*SetCartCountry*](#setcartcountry)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomField*](#setcartcustomfield)\> | -`setCustomLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemCustomField*](#setcartcustomlineitemcustomfield)\> | -`setCustomLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemCustomType*](#setcartcustomlineitemcustomtype)\> | -`setCustomLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemShippingDetails*](#setcartcustomlineitemshippingdetails)\> | -`setCustomLineItemTaxAmount`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemTaxAmount*](#setcartcustomlineitemtaxamount)\> | -`setCustomLineItemTaxRate`? | [*Maybe*](#maybe)<[*SetCartCustomLineItemTaxRate*](#setcartcustomlineitemtaxrate)\> | -`setCustomShippingMethod`? | [*Maybe*](#maybe)<[*SetCartCustomShippingMethod*](#setcartcustomshippingmethod)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomType*](#setcartcustomtype)\> | -`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetCartCustomerEmail*](#setcartcustomeremail)\> | -`setCustomerGroup`? | [*Maybe*](#maybe)<[*SetCartCustomerGroup*](#setcartcustomergroup)\> | -`setCustomerId`? | [*Maybe*](#maybe)<[*SetCartCustomerId*](#setcartcustomerid)\> | -`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetCartDeleteDaysAfterLastModification*](#setcartdeletedaysafterlastmodification)\> | -`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomField*](#setcartlineitemcustomfield)\> | -`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomType*](#setcartlineitemcustomtype)\> | -`setLineItemPrice`? | [*Maybe*](#maybe)<[*SetCartLineItemPrice*](#setcartlineitemprice)\> | -`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartLineItemShippingDetails*](#setcartlineitemshippingdetails)\> | -`setLineItemTaxAmount`? | [*Maybe*](#maybe)<[*SetCartLineItemTaxAmount*](#setcartlineitemtaxamount)\> | -`setLineItemTaxRate`? | [*Maybe*](#maybe)<[*SetCartLineItemTaxRate*](#setcartlineitemtaxrate)\> | -`setLineItemTotalPrice`? | [*Maybe*](#maybe)<[*SetCartLineItemTotalPrice*](#setcartlineitemtotalprice)\> | -`setLocale`? | [*Maybe*](#maybe)<[*SetCartLocale*](#setcartlocale)\> | -`setShippingAddress`? | [*Maybe*](#maybe)<[*SetCartShippingAddress*](#setcartshippingaddress)\> | -`setShippingMethod`? | [*Maybe*](#maybe)<[*SetCartShippingMethod*](#setcartshippingmethod)\> | -`setShippingMethodTaxAmount`? | [*Maybe*](#maybe)<[*SetCartShippingMethodTaxAmount*](#setcartshippingmethodtaxamount)\> | -`setShippingMethodTaxRate`? | [*Maybe*](#maybe)<[*SetCartShippingMethodTaxRate*](#setcartshippingmethodtaxrate)\> | -`setShippingRateInput`? | [*Maybe*](#maybe)<[*SetCartShippingRateInput*](#setcartshippingrateinput)\> | -`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateCartItemShippingAddress*](#updatecartitemshippingaddress)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:888](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L888) - -___ - -### `CartValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:949](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L949) - -___ - -### `CartValueType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:953](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L953) - -___ - -### `Category` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:958](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L958) - -___ - -### `CategoryCustomFieldListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1035](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1035) - -___ - -### `CategoryCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1030](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1030) - -___ - -### `CategoryDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1005](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1005) - -___ - -### `CategoryDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`parent`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1040) - -___ - -### `CategoryMetaDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1025](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1025) - -___ - -### `CategoryMetaKeywordsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1020](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1020) - -___ - -### `CategoryMetaTitleArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1015) - -___ - -### `CategoryNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1000](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1000) - -___ - -### `CategoryOrderHint` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CategoryOrderHint* | -`categoryId` | [*Scalars*](#scalars)[*String*] | -`orderHint` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1055) - -___ - -### `CategoryOrderHintInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`orderHint` | [*Scalars*](#scalars)[*String*] | -`uuid` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1061](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1061) - -___ - -### `CategoryQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CategoryQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Category*](#category)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1066](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1066) - -___ - -### `CategorySearch` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *CategorySearch* | - | -`ancestors` | [*CategorySearch*](#categorysearch)[] | - | -`ancestorsRef` | [*Reference*](#reference)[] | - | -`assets` | [*Asset*](#asset)[] | - | -`childCount` | [*Scalars*](#scalars)[*Int*] | - | -`children` | [*CategorySearch*](#categorysearch)[] | Direct child categories. | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | - | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`id` | [*Scalars*](#scalars)[*String*] | - | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | - | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | -`orderHint` | [*Scalars*](#scalars)[*String*] | - | -`parent`? | [*Maybe*](#maybe)<[*CategorySearch*](#categorysearch)\> | - | -`parentRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`productCount` | [*Scalars*](#scalars)[*Int*] | - | -`productTypeNames` | [*Scalars*](#scalars)[*String*][] | - | -`slug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`slugAllLocales` | [*LocalizedString*](#localizedstring)[] | - | -`stagedProductCount` | [*Scalars*](#scalars)[*Int*] | - | -`version` | [*Scalars*](#scalars)[*Long*] | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1074](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1074) - -___ - -### `CategorySearchCustomFieldListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1129](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1129) - -___ - -### `CategorySearchCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1124](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1124) - -___ - -### `CategorySearchDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1114](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1114) - -___ - -### `CategorySearchNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1109](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1109) - -___ - -### `CategorySearchResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CategorySearchResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*CategorySearch*](#categorysearch)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1134](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1134) - -___ - -### `CategorySearchSlugArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1119) - -___ - -### `CategorySlugArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1010](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1010) - -___ - -### `CategoryUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addAsset`? | [*Maybe*](#maybe)<[*AddCategoryAsset*](#addcategoryasset)\> | -`changeAssetName`? | [*Maybe*](#maybe)<[*ChangeCategoryAssetName*](#changecategoryassetname)\> | -`changeAssetOrder`? | [*Maybe*](#maybe)<[*ChangeCategoryAssetOrder*](#changecategoryassetorder)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeCategoryName*](#changecategoryname)\> | -`changeOrderHint`? | [*Maybe*](#maybe)<[*ChangeCategoryOrderHint*](#changecategoryorderhint)\> | -`changeParent`? | [*Maybe*](#maybe)<[*ChangeCategoryParent*](#changecategoryparent)\> | -`changeSlug`? | [*Maybe*](#maybe)<[*ChangeCategorySlug*](#changecategoryslug)\> | -`removeAsset`? | [*Maybe*](#maybe)<[*RemoveCategoryAsset*](#removecategoryasset)\> | -`setAssetCustomField`? | [*Maybe*](#maybe)<[*SetCategoryAssetCustomField*](#setcategoryassetcustomfield)\> | -`setAssetCustomType`? | [*Maybe*](#maybe)<[*SetCategoryAssetCustomType*](#setcategoryassetcustomtype)\> | -`setAssetDescription`? | [*Maybe*](#maybe)<[*SetCategoryAssetDescription*](#setcategoryassetdescription)\> | -`setAssetKey`? | [*Maybe*](#maybe)<[*SetCategoryAssetKey*](#setcategoryassetkey)\> | -`setAssetSources`? | [*Maybe*](#maybe)<[*SetCategoryAssetSources*](#setcategoryassetsources)\> | -`setAssetTags`? | [*Maybe*](#maybe)<[*SetCategoryAssetTags*](#setcategoryassettags)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCategoryCustomField*](#setcategorycustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCategoryCustomType*](#setcategorycustomtype)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetCategoryDescription*](#setcategorydescription)\> | -`setExternalId`? | [*Maybe*](#maybe)<[*SetCategoryExternalId*](#setcategoryexternalid)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetCategoryKey*](#setcategorykey)\> | -`setMetaDescription`? | [*Maybe*](#maybe)<[*SetCategoryMetaDescription*](#setcategorymetadescription)\> | -`setMetaKeywords`? | [*Maybe*](#maybe)<[*SetCategoryMetaKeywords*](#setcategorymetakeywords)\> | -`setMetaTitle`? | [*Maybe*](#maybe)<[*SetCategoryMetaTitle*](#setcategorymetatitle)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1142](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1142) - -___ - -### `ChangeAttributeName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`newAttributeName` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1167) - -___ - -### `ChangeAttributeOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeDefinitions` | [*AttributeDefinitionDraft*](#attributedefinitiondraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1172) - -___ - -### `ChangeAttributeOrderByName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeNames` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1176) - -___ - -### `ChangeCartCustomLineItemMoney` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`money` | [*BaseMoneyInput*](#basemoneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1180](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1180) - -___ - -### `ChangeCartCustomLineItemQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1185](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1185) - -___ - -### `ChangeCartDiscountCartPredicate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cartPredicate` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1190](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1190) - -___ - -### `ChangeCartDiscountIsActive` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`isActive` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1194](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1194) - -___ - -### `ChangeCartDiscountName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1198](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1198) - -___ - -### `ChangeCartDiscountRequiresDiscountCode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`requiresDiscountCode` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1202](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1202) - -___ - -### `ChangeCartDiscountSortOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`sortOrder` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1206) - -___ - -### `ChangeCartDiscountStackingMode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`stackingMode` | [*StackingMode*](../enums/types_graphql.stackingmode.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1210](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1210) - -___ - -### `ChangeCartDiscountTarget` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`target` | [*CartDiscountTargetInput*](#cartdiscounttargetinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1214](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1214) - -___ - -### `ChangeCartDiscountValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`value` | [*CartDiscountValueInput*](#cartdiscountvalueinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1218](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1218) - -___ - -### `ChangeCartLineItemQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | -`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1222](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1222) - -___ - -### `ChangeCartTaxCalculationMode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxCalculationMode` | [*TaxCalculationMode*](../enums/types_graphql.taxcalculationmode.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1229](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1229) - -___ - -### `ChangeCartTaxMode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxMode` | [*TaxMode*](../enums/types_graphql.taxmode.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1233](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1233) - -___ - -### `ChangeCartTaxRoundingMode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxRoundingMode` | [*RoundingMode*](../enums/types_graphql.roundingmode.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1237](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1237) - -___ - -### `ChangeCategoryAssetName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1241](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1241) - -___ - -### `ChangeCategoryAssetOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetOrder` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1247](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1247) - -___ - -### `ChangeCategoryName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1251) - -___ - -### `ChangeCategoryOrderHint` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`orderHint` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1255](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1255) - -___ - -### `ChangeCategoryParent` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`parent` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1259](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1259) - -___ - -### `ChangeCategorySlug` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1263](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1263) - -___ - -### `ChangeCustomerAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address` | [*AddressInput*](#addressinput) | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1267](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1267) - -___ - -### `ChangeCustomerEmail` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`email` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1272](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1272) - -___ - -### `ChangeCustomerGroupName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1276](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1276) - -___ - -### `ChangeDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1280](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1280) - -___ - -### `ChangeDiscountCodeCartDiscounts` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cartDiscounts` | [*ReferenceInput*](#referenceinput)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1284](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1284) - -___ - -### `ChangeDiscountCodeGroups` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`groups` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1288](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1288) - -___ - -### `ChangeDiscountCodeIsActive` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`isActive` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1292](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1292) - -___ - -### `ChangeEnumKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`key` | [*Scalars*](#scalars)[*String*] | -`newKey` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1296](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1296) - -___ - -### `ChangeInputHint` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`newValue` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1302](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1302) - -___ - -### `ChangeInventoryEntryQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1307) - -___ - -### `ChangeIsSearchable` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`isSearchable` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1311) - -___ - -### `ChangeLabel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1316](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1316) - -___ - -### `ChangeLocalizedEnumValueLabel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`newValue` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1321](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1321) - -___ - -### `ChangeLocalizedEnumValueOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`values` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1326](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1326) - -___ - -### `ChangeMyCartTaxMode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxMode` | [*TaxMode*](../enums/types_graphql.taxmode.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1331) - -___ - -### `ChangeName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1335) - -___ - -### `ChangeOrderPaymentState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`paymentState` | [*PaymentState*](../enums/types_graphql.paymentstate.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1339) - -___ - -### `ChangeOrderShipmentState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shipmentState` | [*ShipmentState*](../enums/types_graphql.shipmentstate.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1343](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1343) - -___ - -### `ChangeOrderState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`orderState` | [*OrderState*](../enums/types_graphql.orderstate.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1347](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1347) - -___ - -### `ChangePlainEnumValueLabel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`newValue` | [*PlainEnumValueDraft*](#plainenumvaluedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1351](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1351) - -___ - -### `ChangePlainEnumValueOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`values` | [*PlainEnumValueDraft*](#plainenumvaluedraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1356](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1356) - -___ - -### `ChangeProductAssetName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1361](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1361) - -___ - -### `ChangeProductAssetOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetOrder` | [*Scalars*](#scalars)[*String*][] | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1371](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1371) - -___ - -### `ChangeProductDiscountIsActive` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`isActive` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1379](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1379) - -___ - -### `ChangeProductDiscountName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1383](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1383) - -___ - -### `ChangeProductDiscountPredicate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`predicate` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1387](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1387) - -___ - -### `ChangeProductDiscountSortOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`sortOrder` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1391](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1391) - -___ - -### `ChangeProductDiscountValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`value` | [*ProductDiscountValueInput*](#productdiscountvalueinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1395](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1395) - -___ - -### `ChangeProductImageLabel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`imageUrl` | [*Scalars*](#scalars)[*String*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1399) - -___ - -### `ChangeProductMasterVariant` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1407](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1407) - -___ - -### `ChangeProductName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1413](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1413) - -___ - -### `ChangeProductPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`price` | [*ProductPriceDataInput*](#productpricedatainput) | -`priceId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1418](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1418) - -___ - -### `ChangeProductSlug` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1427](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1427) - -___ - -### `ChangeProjectSettingsCountries` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`countries` | [*Scalars*](#scalars)[*Country*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1432](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1432) - -___ - -### `ChangeProjectSettingsCurrencies` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`currencies` | [*Scalars*](#scalars)[*Currency*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1436](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1436) - -___ - -### `ChangeProjectSettingsLanguages` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`languages` | [*Scalars*](#scalars)[*Locale*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1440](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1440) - -___ - -### `ChangeProjectSettingsMessagesConfiguration` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`messagesConfiguration` | [*MessagesConfigurationDraft*](#messagesconfigurationdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1444](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1444) - -___ - -### `ChangeProjectSettingsMessagesEnabled` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`messagesEnabled` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1448) - -___ - -### `ChangeProjectSettingsName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1452](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1452) - -___ - -### `ChangeShippingMethodIsDefault` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`isDefault` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1456](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1456) - -___ - -### `ChangeShippingMethodName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1460](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1460) - -___ - -### `ChangeShippingMethodTaxCategory` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxCategory` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1464](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1464) - -___ - -### `ChangeShoppingListLineItemQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1468) - -___ - -### `ChangeShoppingListLineItemsOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemOrder` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1473](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1473) - -___ - -### `ChangeShoppingListName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1477](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1477) - -___ - -### `ChangeShoppingListTextLineItemName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1481](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1481) - -___ - -### `ChangeShoppingListTextLineItemQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`quantity` | [*Scalars*](#scalars)[*Int*] | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1486](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1486) - -___ - -### `ChangeShoppingListTextLineItemsOrder` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`textLineItemOrder` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1491](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1491) - -___ - -### `ChangeZoneName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1495](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1495) - -___ - -### `Channel` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1499) - -___ - -### `ChannelCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1532) - -___ - -### `ChannelDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1527](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1527) - -___ - -### `ChannelNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1522](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1522) - -___ - -### `ChannelQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ChannelQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Channel*](#channel)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1537](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1537) - -___ - -### `ChannelReferenceIdentifier` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ChannelReferenceIdentifier* | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1545](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1545) - -___ - -### `ClassificationShippingRateInput` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1570](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1570) - -___ - -### `ClassificationShippingRateInputDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1583](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1583) - -___ - -### `ClassificationShippingRateInputLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1578) - -___ - -### `CreateApiClient` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`scope` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1587](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1587) - -___ - -### `CreateStore` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*String*] | -`languages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1592](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1592) - -___ - -### `CreateZone` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`locations`? | [*Maybe*](#maybe)<[*ZoneLocation*](#zonelocation)[]\> | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1598](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1598) - -___ - -### `CustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1901](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1901) - -___ - -### `CustomFieldInput` - -A key-value pair representing the field name and value of one single custom field. - -The value of this custom field consists of escaped JSON based on the FieldDefinition of the Type. - -Examples for `value`: - -* FieldType `String`: `"\"This is a string\""` -* FieldType `DateTimeType`: `"\"2001-09-11T14:00:00.000Z\""` -* FieldType `Number`: `"4"` -* FieldType `Set` with an elementType of `String`: `"[\"This is a string\", \"This is another string\"]"` -* FieldType `Reference`: `"{\"id\", \"b911b62d-353a-4388-93ee-8d488d9af962\", \"typeId\", \"product\"}"` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - | -`value` | [*Scalars*](#scalars)[*String*] | The value of this custom field consists of escaped JSON based on the FieldDefinition of the Type. Examples for `value`: * FieldType `String`: `"\"This is a string\""` * FieldType `DateTimeType`: `"\"2001-09-11T14:00:00.000Z\""` * FieldType `Number`: `"4"` * FieldType `Set` with an elementType of `String`: `"[\"This is a string\", \"This is another string\"]"` * FieldType `Reference`: `"{\"id\", \"b911b62d-353a-4388-93ee-8d488d9af962\", \"typeId\", \"product\"}"` | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1917](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1917) - -___ - -### `CustomFieldsDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1932](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1932) - -___ - -### `CustomFieldsType` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *CustomFieldsType* | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields` | [*Type*](#type) | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. For a typed alternative, have a look at `customFields`. | -`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | - | -`typeRef` | [*Reference*](#reference) | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1939](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1939) - -___ - -### `CustomFieldsTypeCustomFieldListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1956](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1956) - -___ - -### `CustomFieldsTypeCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1951) - -___ - -### `CustomLineItem` - -A custom line item is a generic item that can be added to the cart but is not -bound to a product. You can use it for discounts (negative money), vouchers, -complex cart rules, additional services or fees. You control the lifecycle of this item. - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *CustomLineItem* | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | -`discountedPricePerQuantity` | [*DiscountedLineItemPriceForQuantity*](#discountedlineitempriceforquantity)[] | - | -`id` | [*Scalars*](#scalars)[*String*] | - | -`money` | [*BaseMoney*](#basemoney) | - | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | -`quantity` | [*Scalars*](#scalars)[*Long*] | - | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | -`slug` | [*Scalars*](#scalars)[*String*] | - | -`state` | [*ItemState*](#itemstate)[] | - | -`taxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | -`taxCategoryRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | - | -`totalPrice` | [*Money*](#money) | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1965](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1965) - -___ - -### `CustomLineItemCustomFieldListArgs` - -A custom line item is a generic item that can be added to the cart but is not -bound to a product. You can use it for discounts (negative money), vouchers, -complex cart rules, additional services or fees. You control the lifecycle of this item. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2011](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2011) - -___ - -### `CustomLineItemCustomFieldsRawArgs` - -A custom line item is a generic item that can be added to the cart but is not -bound to a product. You can use it for discounts (negative money), vouchers, -complex cart rules, additional services or fees. You control the lifecycle of this item. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2002](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2002) - -___ - -### `CustomLineItemDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`money` | [*BaseMoneyInput*](#basemoneyinput) | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | -`slug` | [*Scalars*](#scalars)[*String*] | -`taxCategory`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2016](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2016) - -___ - -### `CustomLineItemNameArgs` - -A custom line item is a generic item that can be added to the cart but is not -bound to a product. You can use it for discounts (negative money), vouchers, -complex cart rules, additional services or fees. You control the lifecycle of this item. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1993](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1993) - -___ - -### `CustomLineItemReturnItem` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2027](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2027) - -___ - -### `CustomLineItemsTarget` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2040) - -___ - -### `CustomLineItemsTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`predicate` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2046](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2046) - -___ - -### `CustomSuggestTokenizerInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`suggestTokenizer`? | [*Maybe*](#maybe)<[*BaseSearchKeywordInput*](#basesearchkeywordinput)\> | -`text` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2050) - -___ - -### `Customer` - -A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1606) - -___ - -### `CustomerActiveCartInterface` - -A field to access a customer's active cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerActiveCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1664](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1664) - -___ - -### `CustomerActiveCartInterfaceCustomerActiveCartArgs` - -A field to access a customer's active cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1669](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1669) - -___ - -### `CustomerCustomFieldListArgs` - -A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1658) - -___ - -### `CustomerCustomFieldsRawArgs` - -A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1652](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1652) - -___ - -### `CustomerGroup` - -A customer can be a member in a customer group (e.g. reseller, gold member). A -customer group can be used in price calculations with special prices being -assigned to certain customer groups. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1677) - -___ - -### `CustomerGroupCustomFieldListArgs` - -A customer can be a member in a customer group (e.g. reseller, gold member). A -customer group can be used in price calculations with special prices being -assigned to certain customer groups. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1709) - -___ - -### `CustomerGroupCustomFieldsRawArgs` - -A customer can be a member in a customer group (e.g. reseller, gold member). A -customer group can be used in price calculations with special prices being -assigned to certain customer groups. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1700](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1700) - -___ - -### `CustomerGroupDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`groupName` | [*Scalars*](#scalars)[*String*] | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1714](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1714) - -___ - -### `CustomerGroupQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CustomerGroupQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*CustomerGroup*](#customergroup)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1720](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1720) - -___ - -### `CustomerGroupUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`changeName`? | [*Maybe*](#maybe)<[*ChangeCustomerGroupName*](#changecustomergroupname)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerGroupCustomField*](#setcustomergroupcustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerGroupCustomType*](#setcustomergroupcustomtype)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetCustomerGroupKey*](#setcustomergroupkey)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1728](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1728) - -___ - -### `CustomerQueryInterface` - -Fields to access customer accounts. Includes direct access to a single customer and searching for customers. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | -`customers` | [*CustomerQueryResult*](#customerqueryresult) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1736](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1736) - -___ - -### `CustomerQueryInterfaceCustomerArgs` - -Fields to access customer accounts. Includes direct access to a single customer and searching for customers. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1742](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1742) - -___ - -### `CustomerQueryInterfaceCustomersArgs` - -Fields to access customer accounts. Includes direct access to a single customer and searching for customers. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1750](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1750) - -___ - -### `CustomerQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CustomerQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Customer*](#customer)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1757) - -___ - -### `CustomerSignInDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`anonymousCartId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`anonymousCartSignInMode`? | [*Maybe*](#maybe)<[*AnonymousCartSignInMode*](../enums/types_graphql.anonymouscartsigninmode.md)\> | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`email` | [*Scalars*](#scalars)[*String*] | -`password` | [*Scalars*](#scalars)[*String*] | -`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1765](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1765) - -___ - -### `CustomerSignInResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CustomerSignInResult* | -`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | -`customer` | [*Customer*](#customer) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1774) - -___ - -### `CustomerSignMeInDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`activeCartSignInMode`? | [*Maybe*](#maybe)<[*AnonymousCartSignInMode*](../enums/types_graphql.anonymouscartsigninmode.md)\> | -`email` | [*Scalars*](#scalars)[*String*] | -`password` | [*Scalars*](#scalars)[*String*] | -`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1780](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1780) - -___ - -### `CustomerSignMeUpDraft` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`addresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | - | -`billingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the billing addresses in the `addresses` list. The `billingAddressIds` of the customer will be set to the IDs of that addresses. | -`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | - | -`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | - | -`defaultBillingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultBillingAddressId` of the customer will be set to the ID of that address. | -`defaultShippingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultShippingAddressId` of the customer will be set to the ID of that address. | -`email` | [*Scalars*](#scalars)[*String*] | - | -`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - | -`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`password` | [*Scalars*](#scalars)[*String*] | - | -`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`shippingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the shipping addresses in the `addresses` list. The `shippingAddressIds` of the `Customer` will be set to the IDs of that addresses. | -`stores`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | - | -`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1787](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1787) - -___ - -### `CustomerSignUpDraft` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`addresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | - | -`anonymousCartId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`billingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the billing addresses in the `addresses` list. The `billingAddressIds` of the customer will be set to the IDs of that addresses. | -`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | - | -`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - | -`customerNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | - | -`defaultBillingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultBillingAddressId` of the customer will be set to the ID of that address. | -`defaultShippingAddress`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | The index of the address in the `addresses` list. The `defaultShippingAddressId` of the customer will be set to the ID of that address. | -`email` | [*Scalars*](#scalars)[*String*] | - | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`isEmailVerified`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - | -`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`password` | [*Scalars*](#scalars)[*String*] | - | -`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`shippingAddresses`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*][]\> | The indices of the shipping addresses in the `addresses` list. The `shippingAddressIds` of the `Customer` will be set to the IDs of that addresses. | -`stores`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | - | -`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1821](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1821) - -___ - -### `CustomerToken` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *CustomerToken* | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`customerId` | [*Scalars*](#scalars)[*String*] | -`expiresAt` | [*Scalars*](#scalars)[*DateTime*] | -`id` | [*Scalars*](#scalars)[*String*] | -`value` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1861](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1861) - -___ - -### `CustomerUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addAddress`? | [*Maybe*](#maybe)<[*AddCustomerAddress*](#addcustomeraddress)\> | -`addBillingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerBillingAddressId*](#addcustomerbillingaddressid)\> | -`addShippingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerShippingAddressId*](#addcustomershippingaddressid)\> | -`addStore`? | [*Maybe*](#maybe)<[*AddCustomerStore*](#addcustomerstore)\> | -`changeAddress`? | [*Maybe*](#maybe)<[*ChangeCustomerAddress*](#changecustomeraddress)\> | -`changeEmail`? | [*Maybe*](#maybe)<[*ChangeCustomerEmail*](#changecustomeremail)\> | -`removeAddress`? | [*Maybe*](#maybe)<[*RemoveCustomerAddress*](#removecustomeraddress)\> | -`removeBillingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerBillingAddressId*](#removecustomerbillingaddressid)\> | -`removeShippingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerShippingAddressId*](#removecustomershippingaddressid)\> | -`removeStore`? | [*Maybe*](#maybe)<[*RemoveCustomerStore*](#removecustomerstore)\> | -`setCompanyName`? | [*Maybe*](#maybe)<[*SetCustomerCompanyName*](#setcustomercompanyname)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerCustomField*](#setcustomercustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerCustomType*](#setcustomercustomtype)\> | -`setCustomerGroup`? | [*Maybe*](#maybe)<[*SetCustomerGroup*](#setcustomergroup)\> | -`setCustomerNumber`? | [*Maybe*](#maybe)<[*SetCustomerNumber*](#setcustomernumber)\> | -`setDateOfBirth`? | [*Maybe*](#maybe)<[*SetCustomerDateOfBirth*](#setcustomerdateofbirth)\> | -`setDefaultBillingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultBillingAddress*](#setcustomerdefaultbillingaddress)\> | -`setDefaultShippingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultShippingAddress*](#setcustomerdefaultshippingaddress)\> | -`setExternalId`? | [*Maybe*](#maybe)<[*SetCustomerExternalId*](#setcustomerexternalid)\> | -`setFirstName`? | [*Maybe*](#maybe)<[*SetCustomerFirstName*](#setcustomerfirstname)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetCustomerKey*](#setcustomerkey)\> | -`setLastName`? | [*Maybe*](#maybe)<[*SetCustomerLastName*](#setcustomerlastname)\> | -`setLocale`? | [*Maybe*](#maybe)<[*SetCustomerLocale*](#setcustomerlocale)\> | -`setMiddleName`? | [*Maybe*](#maybe)<[*SetCustomerMiddleName*](#setcustomermiddlename)\> | -`setSalutation`? | [*Maybe*](#maybe)<[*SetCustomerSalutation*](#setcustomersalutation)\> | -`setStores`? | [*Maybe*](#maybe)<[*SetCustomerStores*](#setcustomerstores)\> | -`setTitle`? | [*Maybe*](#maybe)<[*SetCustomerTitle*](#setcustomertitle)\> | -`setVatId`? | [*Maybe*](#maybe)<[*SetCustomerVatId*](#setcustomervatid)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:1870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L1870) - -___ - -### `DateAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2055) - -___ - -### `DateAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2061](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2061) - -___ - -### `DateField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2066](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2066) - -___ - -### `DateTimeAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2072](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2072) - -___ - -### `DateTimeAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2078](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2078) - -___ - -### `DateTimeField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2083) - -___ - -### `DateTimeType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2089](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2089) - -___ - -### `DateType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2094](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2094) - -___ - -### `Delivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Delivery* | -`address`? | [*Maybe*](#maybe)<[*Address*](#address)\> | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`id` | [*Scalars*](#scalars)[*String*] | -`items` | [*DeliveryItem*](#deliveryitem)[] | -`parcels` | [*Parcel*](#parcel)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2099](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2099) - -___ - -### `DeliveryItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DeliveryItem* | -`id` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2108](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2108) - -___ - -### `DeliveryItemDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2114](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2114) - -___ - -### `Dimensions` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Dimensions* | -`height` | [*Scalars*](#scalars)[*Int*] | -`width` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2119) - -___ - -### `DimensionsInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`height` | [*Scalars*](#scalars)[*Int*] | -`width` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2125](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2125) - -___ - -### `DiscountCode` - -With discount codes it is possible to give specific cart discounts to an -eligible amount of users. They are defined by a string value which can be added -to a cart so that specific cart discounts can be applied to the cart. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2134](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2134) - -___ - -### `DiscountCodeCustomFieldListArgs` - -With discount codes it is possible to give specific cart discounts to an -eligible amount of users. They are defined by a string value which can be added -to a cart so that specific cart discounts can be applied to the cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2199](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2199) - -___ - -### `DiscountCodeCustomFieldsRawArgs` - -With discount codes it is possible to give specific cart discounts to an -eligible amount of users. They are defined by a string value which can be added -to a cart so that specific cart discounts can be applied to the cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2190](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2190) - -___ - -### `DiscountCodeDescriptionArgs` - -With discount codes it is possible to give specific cart discounts to an -eligible amount of users. They are defined by a string value which can be added -to a cart so that specific cart discounts can be applied to the cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2181](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2181) - -___ - -### `DiscountCodeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cartDiscounts` | [*ReferenceInput*](#referenceinput)[] | -`cartPredicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`code` | [*Scalars*](#scalars)[*String*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`groups`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`maxApplications`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`maxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2204](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2204) - -___ - -### `DiscountCodeInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DiscountCodeInfo* | -`discountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | -`discountCodeRef` | [*Reference*](#reference) | -`state`? | [*Maybe*](#maybe)<[*DiscountCodeState*](../enums/types_graphql.discountcodestate.md)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2219) - -___ - -### `DiscountCodeNameArgs` - -With discount codes it is possible to give specific cart discounts to an -eligible amount of users. They are defined by a string value which can be added -to a cart so that specific cart discounts can be applied to the cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2172) - -___ - -### `DiscountCodeQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DiscountCodeQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*DiscountCode*](#discountcode)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2226](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2226) - -___ - -### `DiscountCodeUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`changeCartDiscounts`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeCartDiscounts*](#changediscountcodecartdiscounts)\> | -`changeGroups`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeGroups*](#changediscountcodegroups)\> | -`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeDiscountCodeIsActive*](#changediscountcodeisactive)\> | -`setCartPredicate`? | [*Maybe*](#maybe)<[*SetDiscountCodeCartPredicate*](#setdiscountcodecartpredicate)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetDiscountCodeCustomField*](#setdiscountcodecustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetDiscountCodeCustomType*](#setdiscountcodecustomtype)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetDiscountCodeDescription*](#setdiscountcodedescription)\> | -`setMaxApplications`? | [*Maybe*](#maybe)<[*SetDiscountCodeMaxApplications*](#setdiscountcodemaxapplications)\> | -`setMaxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*SetDiscountCodeMaxApplicationsPerCustomer*](#setdiscountcodemaxapplicationspercustomer)\> | -`setName`? | [*Maybe*](#maybe)<[*SetDiscountCodeName*](#setdiscountcodename)\> | -`setValidFrom`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidFrom*](#setdiscountcodevalidfrom)\> | -`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidFromAndUntil*](#setdiscountcodevalidfromanduntil)\> | -`setValidUntil`? | [*Maybe*](#maybe)<[*SetDiscountCodeValidUntil*](#setdiscountcodevaliduntil)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2260](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2260) - -___ - -### `DiscountedLineItemPortion` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DiscountedLineItemPortion* | -`discount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | -`discountRef` | [*Reference*](#reference) | -`discountedAmount` | [*BaseMoney*](#basemoney) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2278) - -___ - -### `DiscountedLineItemPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DiscountedLineItemPrice* | -`includedDiscounts` | [*DiscountedLineItemPortion*](#discountedlineitemportion)[] | -`value` | [*BaseMoney*](#basemoney) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2285](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2285) - -___ - -### `DiscountedLineItemPriceForQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *DiscountedLineItemPriceForQuantity* | -`discountedPrice` | [*DiscountedLineItemPrice*](#discountedlineitemprice) | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2291](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2291) - -___ - -### `DiscountedProductPriceValue` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *DiscountedProductPriceValue* | - | -`discount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | -`discountRef` | [*Reference*](#reference) | - | -`discountRel`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | Temporal. Will be renamed some time in the future. Please use 'discount'. | -`value` | [*BaseMoney*](#basemoney) | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2297](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2297) - -___ - -### `DiscountedProductPriceValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`discount` | [*ReferenceInput*](#referenceinput) | -`value` | [*BaseMoneyInput*](#basemoneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2306](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2306) - -___ - -### `EnumAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2311) - -___ - -### `EnumAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2318](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2318) - -___ - -### `EnumAttributeDefinitionTypeValuesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2324](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2324) - -___ - -### `EnumField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2332](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2332) - -___ - -### `EnumType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2338](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2338) - -___ - -### `EnumTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`values` | [*PlainEnumValueDraft*](#plainenumvaluedraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2344](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2344) - -___ - -### `EnumValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *EnumValue* | -`key` | [*Scalars*](#scalars)[*String*] | -`label` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2348) - -___ - -### `ExternalDiscountValue` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2354](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2354) - -___ - -### `ExternalDiscountValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2359](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2359) - -___ - -### `ExternalLineItemTotalPriceDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`price` | [*BaseMoneyInput*](#basemoneyinput) | -`totalPrice` | [*MoneyInput*](#moneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2363](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2363) - -___ - -### `ExternalOAuth` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ExternalOAuth* | -`authorizationHeader` | [*Scalars*](#scalars)[*String*] | -`url` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2368](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2368) - -___ - -### `ExternalOAuthDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`authorizationHeader` | [*Scalars*](#scalars)[*String*] | -`url` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2374](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2374) - -___ - -### `ExternalTaxAmountDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxRate` | [*ExternalTaxRateDraft*](#externaltaxratedraft) | -`totalGross` | [*MoneyInput*](#moneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2379](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2379) - -___ - -### `ExternalTaxRateDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`amount` | [*Scalars*](#scalars)[*Float*] | -`country` | [*Scalars*](#scalars)[*Country*] | -`includedInPrice`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`subRates`? | [*Maybe*](#maybe)<[*SubRateDraft*](#subratedraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2384](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2384) - -___ - -### `FieldDefinition` - -Field definitions describe custom fields and allow you to define some meta-information associated with the field. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *FieldDefinition* | -`inputHint` | [*TextInputHint*](../enums/types_graphql.textinputhint.md) | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | -`name` | [*Scalars*](#scalars)[*String*] | -`required` | [*Scalars*](#scalars)[*Boolean*] | -`type` | [*FieldType*](#fieldtype) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2394) - -___ - -### `FieldDefinitionLabelArgs` - -Field definitions describe custom fields and allow you to define some meta-information associated with the field. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2405](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2405) - -___ - -### `FieldType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2410](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2410) - -___ - -### `Geometry` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2414](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2414) - -___ - -### `GiftLineItemValue` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2418](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2418) - -___ - -### `GiftLineItemValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`product` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`variantId` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2427](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2427) - -___ - -### `HighPrecisionMoney` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2434](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2434) - -___ - -### `HighPrecisionMoneyInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`centAmount`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | -`fractionDigits` | [*Scalars*](#scalars)[*Int*] | -`preciseAmount` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2443](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2443) - -___ - -### `IOsUserType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2698](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2698) - -___ - -### `Image` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Image* | -`dimensions` | [*Dimensions*](#dimensions) | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`url` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2450](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2450) - -___ - -### `ImageInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dimensions` | [*DimensionsInput*](#dimensionsinput) | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`url` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2457](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2457) - -___ - -### `ImportOrderCustomLineItemState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`state` | [*ItemStateDraftType*](#itemstatedrafttype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2463](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2463) - -___ - -### `ImportOrderLineItemState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`state` | [*ItemStateDraftType*](#itemstatedrafttype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2468](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2468) - -___ - -### `InStore` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2483](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2483) - -___ - -### `InStoreCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2523](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2523) - -___ - -### `InStoreCartsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2527](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2527) - -___ - -### `InStoreCustomerActiveCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2534) - -___ - -### `InStoreCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2509) - -___ - -### `InStoreCustomersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2516) - -___ - -### `InStoreMe` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2550](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2550) - -___ - -### `InStoreMeCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2562](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2562) - -___ - -### `InStoreMeCartsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2566](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2566) - -___ - -### `InStoreMeOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2573) - -___ - -### `InStoreMeOrdersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2578) - -___ - -### `InStoreMeShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2585](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2585) - -___ - -### `InStoreMeShoppingListsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2590](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2590) - -___ - -### `InStoreOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2538](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2538) - -___ - -### `InStoreOrdersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2543](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2543) - -___ - -### `InStoreShippingMethodsByCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2505](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2505) - -___ - -### `Initiator` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Initiator* | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`clientId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`customer`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | -`externalUserId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`isPlatformClient`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`user`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2473](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2473) - -___ - -### `InterfaceInteractionsRaw` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *InterfaceInteractionsRaw* | -`fields` | [*RawCustomField*](#rawcustomfield)[] | -`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | -`typeRef` | [*Reference*](#reference) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2597](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2597) - -___ - -### `InterfaceInteractionsRawFieldsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2604](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2604) - -___ - -### `InterfaceInteractionsRawResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *InterfaceInteractionsRawResult* | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`results` | [*InterfaceInteractionsRaw*](#interfaceinteractionsraw)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2609](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2609) - -___ - -### `InventoryEntry` - -Inventory allows you to track stock quantity per SKU and optionally per supply channel - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2618](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2618) - -___ - -### `InventoryEntryCustomFieldListArgs` - -Inventory allows you to track stock quantity per SKU and optionally per supply channel - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2648) - -___ - -### `InventoryEntryCustomFieldsRawArgs` - -Inventory allows you to track stock quantity per SKU and optionally per supply channel - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2642](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2642) - -___ - -### `InventoryEntryDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`expectedDelivery`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`quantityOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sku` | [*Scalars*](#scalars)[*String*] | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2653) - -___ - -### `InventoryEntryQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *InventoryEntryQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*InventoryEntry*](#inventoryentry)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2662](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2662) - -___ - -### `InventoryEntryUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addQuantity`? | [*Maybe*](#maybe)<[*AddInventoryEntryQuantity*](#addinventoryentryquantity)\> | -`changeQuantity`? | [*Maybe*](#maybe)<[*ChangeInventoryEntryQuantity*](#changeinventoryentryquantity)\> | -`removeQuantity`? | [*Maybe*](#maybe)<[*RemoveInventoryEntryQuantity*](#removeinventoryentryquantity)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetInventoryEntryCustomField*](#setinventoryentrycustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetInventoryEntryCustomType*](#setinventoryentrycustomtype)\> | -`setExpectedDelivery`? | [*Maybe*](#maybe)<[*SetInventoryEntryExpectedDelivery*](#setinventoryentryexpecteddelivery)\> | -`setRestockableInDays`? | [*Maybe*](#maybe)<[*SetInventoryEntryRestockableInDays*](#setinventoryentryrestockableindays)\> | -`setSupplyChannel`? | [*Maybe*](#maybe)<[*SetInventoryEntrySupplyChannel*](#setinventoryentrysupplychannel)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2670) - -___ - -### `ItemShippingDetails` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ItemShippingDetails* | -`targets` | [*ItemShippingTarget*](#itemshippingtarget)[] | -`valid` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2706](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2706) - -___ - -### `ItemShippingDetailsDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`targets` | [*ShippingTargetDraft*](#shippingtargetdraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2712](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2712) - -___ - -### `ItemShippingDetailsDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`targets` | [*ShippingTargetDraftType*](#shippingtargetdrafttype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2716](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2716) - -___ - -### `ItemShippingTarget` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ItemShippingTarget* | -`addressKey` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2720](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2720) - -___ - -### `ItemState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ItemState* | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`state`? | [*Maybe*](#maybe)<[*State*](#state)\> | -`stateRef` | [*Reference*](#reference) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2726) - -___ - -### `ItemStateDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`state` | [*ReferenceInput*](#referenceinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2733](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2733) - -___ - -### `KeyReference` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *KeyReference* | -`key` | [*Scalars*](#scalars)[*String*] | -`typeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2738](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2738) - -___ - -### `LineItem` - -A line item is a snapshot of a product variant at the time it was added to the cart. - -Since a product variant may change at any time, the ProductVariant data is copied into the field variant. -The relation to the Product is kept but the line item will not automatically update if the product variant changes. -On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. -It can be used to link to the product. If the product has been deleted, the line item remains but refers to a -non-existent product and the productSlug is left empty. - -Please also note that creating an order is impossible if the product or product -variant a line item relates to has been deleted. - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *LineItem* | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | -`discountedPricePerQuantity` | [*DiscountedLineItemPriceForQuantity*](#discountedlineitempriceforquantity)[] | - | -`distributionChannel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | - | -`distributionChannelRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`id` | [*Scalars*](#scalars)[*String*] | - | -`inventoryMode`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | -`lineItemMode` | [*LineItemMode*](../enums/types_graphql.lineitemmode.md) | - | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | - | -`price` | [*ProductPrice*](#productprice) | - | -`priceMode` | [*LineItemPriceMode*](../enums/types_graphql.lineitempricemode.md) | - | -`productId` | [*Scalars*](#scalars)[*String*] | - | -`productSlug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`productType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | -`productTypeRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`quantity` | [*Scalars*](#scalars)[*Long*] | - | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetails*](#itemshippingdetails)\> | - | -`state` | [*ItemState*](#itemstate)[] | - | -`supplyChannel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | - | -`supplyChannelRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | - | -`taxedPrice`? | [*Maybe*](#maybe)<[*TaxedItemPrice*](#taxeditemprice)\> | - | -`totalPrice`? | [*Maybe*](#maybe)<[*Money*](#money)\> | - | -`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2755](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2755) - -___ - -### `LineItemCustomFieldListArgs` - -A line item is a snapshot of a product variant at the time it was added to the cart. - -Since a product variant may change at any time, the ProductVariant data is copied into the field variant. -The relation to the Product is kept but the line item will not automatically update if the product variant changes. -On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. -It can be used to link to the product. If the product has been deleted, the line item remains but refers to a -non-existent product and the productSlug is left empty. - -Please also note that creating an order is impossible if the product or product -variant a line item relates to has been deleted. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2848](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2848) - -___ - -### `LineItemCustomFieldsRawArgs` - -A line item is a snapshot of a product variant at the time it was added to the cart. - -Since a product variant may change at any time, the ProductVariant data is copied into the field variant. -The relation to the Product is kept but the line item will not automatically update if the product variant changes. -On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. -It can be used to link to the product. If the product has been deleted, the line item remains but refers to a -non-existent product and the productSlug is left empty. - -Please also note that creating an order is impossible if the product or product -variant a line item relates to has been deleted. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2832](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2832) - -___ - -### `LineItemDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | -`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2853](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2853) - -___ - -### `LineItemNameArgs` - -A line item is a snapshot of a product variant at the time it was added to the cart. - -Since a product variant may change at any time, the ProductVariant data is copied into the field variant. -The relation to the Product is kept but the line item will not automatically update if the product variant changes. -On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. -It can be used to link to the product. If the product has been deleted, the line item remains but refers to a -non-existent product and the productSlug is left empty. - -Please also note that creating an order is impossible if the product or product -variant a line item relates to has been deleted. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2800](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2800) - -___ - -### `LineItemProductSlugArgs` - -A line item is a snapshot of a product variant at the time it was added to the cart. - -Since a product variant may change at any time, the ProductVariant data is copied into the field variant. -The relation to the Product is kept but the line item will not automatically update if the product variant changes. -On the cart, the line item can be updated manually. The productSlug refers to the current version of the product. -It can be used to link to the product. If the product has been deleted, the line item remains but refers to a -non-existent product and the productSlug is left empty. - -Please also note that creating an order is impossible if the product or product -variant a line item relates to has been deleted. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2816](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2816) - -___ - -### `LineItemReturnItem` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2893](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2893) - -___ - -### `LineItemsTarget` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2906](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2906) - -___ - -### `LineItemsTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`predicate` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2912](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2912) - -___ - -### `LocalizableEnumAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2916](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2916) - -___ - -### `LocalizableEnumAttributeDefinitionTypeValuesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeKeys`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2922](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2922) - -___ - -### `LocalizableEnumTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`values` | [*LocalizedEnumValueDraft*](#localizedenumvaluedraft)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2930](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2930) - -___ - -### `LocalizableEnumValueType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *LocalizableEnumValueType* | -`key` | [*Scalars*](#scalars)[*String*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2934](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2934) - -___ - -### `LocalizableEnumValueTypeLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2941](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2941) - -___ - -### `LocalizableEnumValueTypeResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *LocalizableEnumValueTypeResult* | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`results` | [*LocalizableEnumValueType*](#localizableenumvaluetype)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2946](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2946) - -___ - -### `LocalizableTextAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2954](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2954) - -___ - -### `LocalizedEnumAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2959](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2959) - -___ - -### `LocalizedEnumAttributeLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2966](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2966) - -___ - -### `LocalizedEnumField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2970](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2970) - -___ - -### `LocalizedEnumFieldLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2977](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2977) - -___ - -### `LocalizedEnumType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2981](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2981) - -___ - -### `LocalizedEnumValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *LocalizedEnumValue* | -`key` | [*Scalars*](#scalars)[*String*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2987](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2987) - -___ - -### `LocalizedEnumValueDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*String*] | -`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2999](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2999) - -___ - -### `LocalizedEnumValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*String*] | -`label` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3004](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3004) - -___ - -### `LocalizedEnumValueLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:2994](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L2994) - -___ - -### `LocalizedString` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *LocalizedString* | -`locale` | [*Scalars*](#scalars)[*Locale*] | -`value` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3009](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3009) - -___ - -### `LocalizedStringAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3015) - -___ - -### `LocalizedStringAttributeValueArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3021](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3021) - -___ - -### `LocalizedStringField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3025](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3025) - -___ - -### `LocalizedStringFieldValueArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3031](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3031) - -___ - -### `LocalizedStringItemInputType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | -`value` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3035](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3035) - -___ - -### `LocalizedStringType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3040](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3040) - -___ - -### `LocalizedText` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | -`text` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3045](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3045) - -___ - -### `Location` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Location* | -`country` | [*Scalars*](#scalars)[*Country*] | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3050) - -___ - -### `MainProductType` - -Sunrise Product Data Set Structure - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3057](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3057) - -___ - -### `Maybe` - -#### Type parameters: - -Name | -:------ | -`T` | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3) - -___ - -### `Me` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3083) - -___ - -### `MeCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3095](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3095) - -___ - -### `MeCartsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3099](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3099) - -___ - -### `MeFieldInterface` - -The me field gives access to the data that is specific to the customer or anonymous session linked to the access token. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`me` | [*MeQueryInterface*](#mequeryinterface) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3131](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3131) - -___ - -### `MeOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3106](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3106) - -___ - -### `MeOrdersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3111](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3111) - -___ - -### `MeQueryInterface` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`activeCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | -`cart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | -`carts` | [*CartQueryResult*](#cartqueryresult) | -`order`? | [*Maybe*](#maybe)<[*Order*](#order)\> | -`orders` | [*OrderQueryResult*](#orderqueryresult) | -`shoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | -`shoppingLists` | [*ShoppingListQueryResult*](#shoppinglistqueryresult) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3135](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3135) - -___ - -### `MeQueryInterfaceCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3145](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3145) - -___ - -### `MeQueryInterfaceCartsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3149](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3149) - -___ - -### `MeQueryInterfaceOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3156) - -___ - -### `MeQueryInterfaceOrdersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3161](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3161) - -___ - -### `MeQueryInterfaceShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3168](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3168) - -___ - -### `MeQueryInterfaceShoppingListsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3173](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3173) - -___ - -### `MeShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3118](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3118) - -___ - -### `MeShoppingListsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3123](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3123) - -___ - -### `MessagesConfiguration` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *MessagesConfiguration* | -`deleteDaysAfterCreation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`enabled` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3180](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3180) - -___ - -### `MessagesConfigurationDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deleteDaysAfterCreation` | [*Scalars*](#scalars)[*Int*] | -`enabled` | [*Scalars*](#scalars)[*Boolean*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3186](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3186) - -___ - -### `Money` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3191](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3191) - -___ - -### `MoneyAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3200) - -___ - -### `MoneyAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3207](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3207) - -___ - -### `MoneyDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`centAmount` | [*Scalars*](#scalars)[*Long*] | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3212) - -___ - -### `MoneyField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3217](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3217) - -___ - -### `MoneyInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`centAmount` | [*Scalars*](#scalars)[*Long*] | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3224](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3224) - -___ - -### `MoneyType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3229](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3229) - -___ - -### `MoveProductImageToPosition` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`imageUrl` | [*Scalars*](#scalars)[*String*] | -`position` | [*Scalars*](#scalars)[*Int*] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3234](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3234) - -___ - -### `MultiBuyCustomLineItemsTarget` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3242](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3242) - -___ - -### `MultiBuyCustomLineItemsTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`discountedQuantity` | [*Scalars*](#scalars)[*Long*] | -`maxOccurrence`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`predicate` | [*Scalars*](#scalars)[*String*] | -`selectionMode`? | [*Maybe*](#maybe)<[*SelectionMode*](../enums/types_graphql.selectionmode.md)\> | -`triggerQuantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3252](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3252) - -___ - -### `MultiBuyLineItemsTarget` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3260](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3260) - -___ - -### `MultiBuyLineItemsTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`discountedQuantity` | [*Scalars*](#scalars)[*Long*] | -`maxOccurrence`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`predicate` | [*Scalars*](#scalars)[*String*] | -`selectionMode`? | [*Maybe*](#maybe)<[*SelectionMode*](../enums/types_graphql.selectionmode.md)\> | -`triggerQuantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3270](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3270) - -___ - -### `Mutation` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *Mutation* | - | -`createApiClient`? | [*Maybe*](#maybe)<[*ApiClientWithSecret*](#apiclientwithsecret)\> | - | -`createCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`createCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | -`createCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | -`createCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | -`createDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | -`createInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | -`createMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`createMyOrderFromCart`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | -`createMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`createOrderFromCart`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | -`createProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | -`createProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | -`createProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | -`createShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | -`createShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`createStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | -`createTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | -`createZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | -`customerChangeMyPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`customerChangePassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`customerConfirmEmail`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | Verifies customer's email using a token. | -`customerConfirmMyEmail`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`customerCreateEmailVerificationToken` | [*CustomerToken*](#customertoken) | - | -`customerCreatePasswordResetToken`? | [*Maybe*](#maybe)<[*CustomerToken*](#customertoken)\> | The token value is used to reset the password of the customer with the given email. The token is valid only for 10 minutes. | -`customerResetMyPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`customerResetPassword`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | The following workflow can be used to reset the customer’s password: 1. Create a password reset token and send it embedded in a link to the customer. 2. When the customer clicks on the link, you may optionally retrieve customer by password token. 3. When the customer entered new password, use reset customer’s password to reset the password. | -`customerSignIn` | [*CustomerSignInResult*](#customersigninresult) | Retrieves the authenticated customer (a customer that matches the given email/password pair). There may be carts and orders created before the sign in that should be assigned to the customer account. With the `anonymousCartId`, a single anonymous cart can be assigned. With the `anonymousId`, all orders and carts that have this `anonymousId` set will be assigned to the customer. If both `anonymousCartId` and `anonymousId` are given, the anonymous cart must have the `anonymousId`. Additionally, there might also exist one or more active customer carts from an earlier session. On customer sign in there are several ways how to proceed with this cart and the cart referenced by the `anonymousCartId`. * If the customer does not have a cart yet, the anonymous cart becomes the customer's cart. * If the customer already has one or more carts, the content of the anonymous cart will be copied to the customer's active cart that has been modified most recently. In this case the `CartState` of the anonymous cart gets changed to `Merged` while the customer's cart remains the `Active` cart. If a `LineItem` in the anonymous cart matches an existing line item, or a `CustomLineItem` matches an existing custom line item in the customer's cart, the maximum quantity of both line items is used as the new quantity. `ItemShippingDetails` are copied from the item with the highest quantity. If `itemShippingAddresses` are different in the two carts, the resulting cart contains the addresses of both the customer cart and the anonymous cart. Note, that it is not possible to merge carts that differ in their currency (set during creation of the cart). If a cart is is returned as part of the `CustomerSignInResult`, it has been recalculated (it will have up-to-date prices, taxes and discounts, and invalid line items have been removed). | -`customerSignMeIn` | [*CustomerSignInResult*](#customersigninresult) | Retrieves the authenticated customer (a customer that matches the given email/password pair). If used with an access token for Anonymous Sessions, all orders and carts belonging to the `anonymousId` will be assigned to the newly created customer. * If the customer does not have a cart yet, the anonymous cart that was modified most recently becomes the customer's cart. * If the customer already has a cart, the most recently modified anonymous cart will be handled according to the `AnonymousCartSignInMode`. If a cart is is returned as part of the `CustomerSignInResult`, it has been recalculated (it will have up-to-date prices, taxes and discounts, and invalid line items have been removed). | -`customerSignMeUp` | [*CustomerSignInResult*](#customersigninresult) | If used with an access token for Anonymous Sessions, all orders and carts belonging to the anonymousId will be assigned to the newly created customer. | -`customerSignUp` | [*CustomerSignInResult*](#customersigninresult) | Creates a customer. If an anonymous cart is given then the cart is assigned to the created customer and the version number of the Cart will increase. If the id of an anonymous session is given, all carts and orders will be assigned to the created customer. | -`deleteApiClient`? | [*Maybe*](#maybe)<[*ApiClientWithoutSecret*](#apiclientwithoutsecret)\> | - | -`deleteCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`deleteCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | -`deleteCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | -`deleteCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`deleteCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | -`deleteDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | -`deleteInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | -`deleteMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`deleteMyCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`deleteMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`deleteOrder`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | -`deleteProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | -`deleteProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | -`deleteProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | -`deleteShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | -`deleteShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`deleteStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | -`deleteTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | -`deleteZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | -`replicateCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`updateCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`updateCartDiscount`? | [*Maybe*](#maybe)<[*CartDiscount*](#cartdiscount)\> | - | -`updateCategory`? | [*Maybe*](#maybe)<[*Category*](#category)\> | - | -`updateCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`updateCustomerGroup`? | [*Maybe*](#maybe)<[*CustomerGroup*](#customergroup)\> | - | -`updateDiscountCode`? | [*Maybe*](#maybe)<[*DiscountCode*](#discountcode)\> | - | -`updateInventoryEntry`? | [*Maybe*](#maybe)<[*InventoryEntry*](#inventoryentry)\> | - | -`updateMyCart`? | [*Maybe*](#maybe)<[*Cart*](#cart)\> | - | -`updateMyCustomer`? | [*Maybe*](#maybe)<[*Customer*](#customer)\> | - | -`updateMyShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`updateOrder`? | [*Maybe*](#maybe)<[*Order*](#order)\> | - | -`updateProduct`? | [*Maybe*](#maybe)<[*Product*](#product)\> | - | -`updateProductDiscount`? | [*Maybe*](#maybe)<[*ProductDiscount*](#productdiscount)\> | - | -`updateProductType`? | [*Maybe*](#maybe)<[*ProductTypeDefinition*](#producttypedefinition)\> | - | -`updateProject`? | [*Maybe*](#maybe)<[*ProjectProjection*](#projectprojection)\> | - | -`updateShippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | - | -`updateShoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | - | -`updateStore`? | [*Maybe*](#maybe)<[*Store*](#store)\> | - | -`updateTaxCategory`? | [*Maybe*](#maybe)<[*TaxCategory*](#taxcategory)\> | - | -`updateZone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3278) - -___ - -### `MutationCreateApiClientArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CreateApiClient*](#createapiclient) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3825](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3825) - -___ - -### `MutationCreateCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CartDraft*](#cartdraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3703](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3703) - -___ - -### `MutationCreateCartDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CartDiscountDraft*](#cartdiscountdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3537](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3537) - -___ - -### `MutationCreateCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CategoryDraft*](#categorydraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3437](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3437) - -___ - -### `MutationCreateCustomerGroupArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CustomerGroupDraft*](#customergroupdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3420](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3420) - -___ - -### `MutationCreateDiscountCodeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*DiscountCodeDraft*](#discountcodedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3522](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3522) - -___ - -### `MutationCreateInventoryEntryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*InventoryEntryDraft*](#inventoryentrydraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3688](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3688) - -___ - -### `MutationCreateMyCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*MyCartDraft*](#mycartdraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3726) - -___ - -### `MutationCreateMyOrderFromCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*OrderMyCartCommand*](#ordermycartcommand) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3765](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3765) - -___ - -### `MutationCreateMyShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*MyShoppingListDraft*](#myshoppinglistdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3788](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3788) - -___ - -### `MutationCreateOrderFromCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*OrderCartCommand*](#ordercartcommand) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3744](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3744) - -___ - -### `MutationCreateProductArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*ProductDraft*](#productdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3571](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3571) - -___ - -### `MutationCreateProductDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*ProductDiscountDraft*](#productdiscountdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3554](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3554) - -___ - -### `MutationCreateProductTypeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*ProductTypeDraft*](#producttypedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3454](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3454) - -___ - -### `MutationCreateShippingMethodArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*ShippingMethodDraft*](#shippingmethoddraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3471](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3471) - -___ - -### `MutationCreateShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*ShoppingListDraft*](#shoppinglistdraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3770](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3770) - -___ - -### `MutationCreateStoreArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CreateStore*](#createstore) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3808](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3808) - -___ - -### `MutationCreateTaxCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*TaxCategoryDraft*](#taxcategorydraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3505](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3505) - -___ - -### `MutationCreateZoneArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CreateZone*](#createzone) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3488](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3488) - -___ - -### `MutationCustomerChangeMyPasswordArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`currentPassword` | [*Scalars*](#scalars)[*String*] | -`newPassword` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3670](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3670) - -___ - -### `MutationCustomerChangePasswordArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`currentPassword` | [*Scalars*](#scalars)[*String*] | -`id` | [*Scalars*](#scalars)[*String*] | -`newPassword` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3614](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3614) - -___ - -### `MutationCustomerConfirmEmailArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`tokenValue` | [*Scalars*](#scalars)[*String*] | -`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3629](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3629) - -___ - -### `MutationCustomerConfirmMyEmailArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`tokenValue` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3677) - -___ - -### `MutationCustomerCreateEmailVerificationTokenArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`ttlMinutes` | [*Scalars*](#scalars)[*Int*] | -`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3641](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3641) - -___ - -### `MutationCustomerCreatePasswordResetTokenArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`email` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`ttlMinutes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3635](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3635) - -___ - -### `MutationCustomerResetMyPasswordArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`newPassword` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`tokenValue` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3682](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3682) - -___ - -### `MutationCustomerResetPasswordArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`newPassword` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`tokenValue` | [*Scalars*](#scalars)[*String*] | -`version`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3622](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3622) - -___ - -### `MutationCustomerSignInArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CustomerSignInDraft*](#customersignindraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3593](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3593) - -___ - -### `MutationCustomerSignMeInArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CustomerSignMeInDraft*](#customersignmeindraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3653) - -___ - -### `MutationCustomerSignMeUpArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CustomerSignMeUpDraft*](#customersignmeupdraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3648) - -___ - -### `MutationCustomerSignUpArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`draft` | [*CustomerSignUpDraft*](#customersignupdraft) | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3588](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3588) - -___ - -### `MutationDeleteApiClientArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3829](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3829) - -___ - -### `MutationDeleteCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3715](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3715) - -___ - -### `MutationDeleteCartDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3548](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3548) - -___ - -### `MutationDeleteCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3448) - -___ - -### `MutationDeleteCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3606) - -___ - -### `MutationDeleteCustomerGroupArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3431](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3431) - -___ - -### `MutationDeleteDiscountCodeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3532) - -___ - -### `MutationDeleteInventoryEntryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3698](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3698) - -___ - -### `MutationDeleteMyCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3738](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3738) - -___ - -### `MutationDeleteMyCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3664](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3664) - -___ - -### `MutationDeleteMyShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3798](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3798) - -___ - -### `MutationDeleteOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3757) - -___ - -### `MutationDeleteProductArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3582](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3582) - -___ - -### `MutationDeleteProductDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3565](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3565) - -___ - -### `MutationDeleteProductTypeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3465](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3465) - -___ - -### `MutationDeleteShippingMethodArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3482](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3482) - -___ - -### `MutationDeleteShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`personalDataErasure`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3781](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3781) - -___ - -### `MutationDeleteStoreArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3819) - -___ - -### `MutationDeleteTaxCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3516](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3516) - -___ - -### `MutationDeleteZoneArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3499) - -___ - -### `MutationReplicateCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`reference` | [*ReferenceInput*](#referenceinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3722) - -___ - -### `MutationUpdateCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*CartUpdateAction*](#cartupdateaction)[] | -`id` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3708](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3708) - -___ - -### `MutationUpdateCartDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*CartDiscountUpdateAction*](#cartdiscountupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3541](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3541) - -___ - -### `MutationUpdateCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*CategoryUpdateAction*](#categoryupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3441](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3441) - -___ - -### `MutationUpdateCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*CustomerUpdateAction*](#customerupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3598](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3598) - -___ - -### `MutationUpdateCustomerGroupArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*CustomerGroupUpdateAction*](#customergroupupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3424](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3424) - -___ - -### `MutationUpdateDiscountCodeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*DiscountCodeUpdateAction*](#discountcodeupdateaction)[] | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3526](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3526) - -___ - -### `MutationUpdateInventoryEntryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*InventoryEntryUpdateAction*](#inventoryentryupdateaction)[] | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3692](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3692) - -___ - -### `MutationUpdateMyCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*MyCartUpdateAction*](#mycartupdateaction)[] | -`id` | [*Scalars*](#scalars)[*String*] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3731](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3731) - -___ - -### `MutationUpdateMyCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*MyCustomerUpdateAction*](#mycustomerupdateaction)[] | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3658](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3658) - -___ - -### `MutationUpdateMyShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*MyShoppingListUpdateAction*](#myshoppinglistupdateaction)[] | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3792](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3792) - -___ - -### `MutationUpdateOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*OrderUpdateAction*](#orderupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`storeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*KeyReferenceInput*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3749](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3749) - -___ - -### `MutationUpdateProductArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ProductUpdateAction*](#productupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3575](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3575) - -___ - -### `MutationUpdateProductDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ProductDiscountUpdateAction*](#productdiscountupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3558](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3558) - -___ - -### `MutationUpdateProductTypeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ProductTypeUpdateAction*](#producttypeupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3458) - -___ - -### `MutationUpdateProjectArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ProjectSettingsUpdateAction*](#projectsettingsupdateaction)[] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3803](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3803) - -___ - -### `MutationUpdateShippingMethodArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ShippingMethodUpdateAction*](#shippingmethodupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3475](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3475) - -___ - -### `MutationUpdateShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ShoppingListUpdateAction*](#shoppinglistupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3774) - -___ - -### `MutationUpdateStoreArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*StoreUpdateAction*](#storeupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3812](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3812) - -___ - -### `MutationUpdateTaxCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*TaxCategoryUpdateAction*](#taxcategoryupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3509) - -___ - -### `MutationUpdateZoneArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actions` | [*ZoneUpdateAction*](#zoneupdateaction)[] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3492](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3492) - -___ - -### `MyCartDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`billingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | -`currency` | [*Scalars*](#scalars)[*Currency*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`customerEmail`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`discountCodes`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`inventoryMode`? | [*Maybe*](#maybe)<[*InventoryMode*](../enums/types_graphql.inventorymode.md)\> | -`itemShippingAddresses`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)[]\> | -`lineItems`? | [*Maybe*](#maybe)<[*MyLineItemDraft*](#mylineitemdraft)[]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | -`shippingAddress`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`taxMode`? | [*Maybe*](#maybe)<[*TaxMode*](../enums/types_graphql.taxmode.md)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3833](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3833) - -___ - -### `MyCartUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addDiscountCode`? | [*Maybe*](#maybe)<[*AddCartDiscountCode*](#addcartdiscountcode)\> | -`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddCartItemShippingAddress*](#addcartitemshippingaddress)\> | -`addLineItem`? | [*Maybe*](#maybe)<[*AddMyCartLineItem*](#addmycartlineitem)\> | -`addPayment`? | [*Maybe*](#maybe)<[*AddCartPayment*](#addcartpayment)\> | -`addShoppingList`? | [*Maybe*](#maybe)<[*AddCartShoppingList*](#addcartshoppinglist)\> | -`applyDeltaToLineItemShippingDetailsTargets`? | [*Maybe*](#maybe)<[*ApplyCartDeltaToLineItemShippingDetailsTargets*](#applycartdeltatolineitemshippingdetailstargets)\> | -`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeCartLineItemQuantity*](#changecartlineitemquantity)\> | -`changeTaxMode`? | [*Maybe*](#maybe)<[*ChangeMyCartTaxMode*](#changemycarttaxmode)\> | -`recalculate`? | [*Maybe*](#maybe)<[*RecalculateCart*](#recalculatecart)\> | -`removeDiscountCode`? | [*Maybe*](#maybe)<[*RemoveCartDiscountCode*](#removecartdiscountcode)\> | -`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveCartItemShippingAddress*](#removecartitemshippingaddress)\> | -`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveCartLineItem*](#removecartlineitem)\> | -`removePayment`? | [*Maybe*](#maybe)<[*RemoveCartPayment*](#removecartpayment)\> | -`setBillingAddress`? | [*Maybe*](#maybe)<[*SetCartBillingAddress*](#setcartbillingaddress)\> | -`setCountry`? | [*Maybe*](#maybe)<[*SetCartCountry*](#setcartcountry)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCartCustomField*](#setcartcustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCartCustomType*](#setcartcustomtype)\> | -`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetCartCustomerEmail*](#setcartcustomeremail)\> | -`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetCartDeleteDaysAfterLastModification*](#setcartdeletedaysafterlastmodification)\> | -`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomField*](#setcartlineitemcustomfield)\> | -`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetCartLineItemCustomType*](#setcartlineitemcustomtype)\> | -`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetCartLineItemShippingDetails*](#setcartlineitemshippingdetails)\> | -`setLocale`? | [*Maybe*](#maybe)<[*SetCartLocale*](#setcartlocale)\> | -`setShippingAddress`? | [*Maybe*](#maybe)<[*SetCartShippingAddress*](#setcartshippingaddress)\> | -`setShippingMethod`? | [*Maybe*](#maybe)<[*SetMyCartShippingMethod*](#setmycartshippingmethod)\> | -`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateCartItemShippingAddress*](#updatecartitemshippingaddress)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3850) - -___ - -### `MyCustomerUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addAddress`? | [*Maybe*](#maybe)<[*AddCustomerAddress*](#addcustomeraddress)\> | -`addBillingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerBillingAddressId*](#addcustomerbillingaddressid)\> | -`addShippingAddressId`? | [*Maybe*](#maybe)<[*AddCustomerShippingAddressId*](#addcustomershippingaddressid)\> | -`changeAddress`? | [*Maybe*](#maybe)<[*ChangeCustomerAddress*](#changecustomeraddress)\> | -`changeEmail`? | [*Maybe*](#maybe)<[*ChangeCustomerEmail*](#changecustomeremail)\> | -`removeAddress`? | [*Maybe*](#maybe)<[*RemoveCustomerAddress*](#removecustomeraddress)\> | -`removeBillingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerBillingAddressId*](#removecustomerbillingaddressid)\> | -`removeShippingAddressId`? | [*Maybe*](#maybe)<[*RemoveCustomerShippingAddressId*](#removecustomershippingaddressid)\> | -`setCompanyName`? | [*Maybe*](#maybe)<[*SetCustomerCompanyName*](#setcustomercompanyname)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetCustomerCustomField*](#setcustomercustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetCustomerCustomType*](#setcustomercustomtype)\> | -`setDateOfBirth`? | [*Maybe*](#maybe)<[*SetCustomerDateOfBirth*](#setcustomerdateofbirth)\> | -`setDefaultBillingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultBillingAddress*](#setcustomerdefaultbillingaddress)\> | -`setDefaultShippingAddress`? | [*Maybe*](#maybe)<[*SetCustomerDefaultShippingAddress*](#setcustomerdefaultshippingaddress)\> | -`setFirstName`? | [*Maybe*](#maybe)<[*SetCustomerFirstName*](#setcustomerfirstname)\> | -`setLastName`? | [*Maybe*](#maybe)<[*SetCustomerLastName*](#setcustomerlastname)\> | -`setLocale`? | [*Maybe*](#maybe)<[*SetCustomerLocale*](#setcustomerlocale)\> | -`setMiddleName`? | [*Maybe*](#maybe)<[*SetCustomerMiddleName*](#setcustomermiddlename)\> | -`setSalutation`? | [*Maybe*](#maybe)<[*SetCustomerSalutation*](#setcustomersalutation)\> | -`setTitle`? | [*Maybe*](#maybe)<[*SetCustomerTitle*](#setcustomertitle)\> | -`setVatId`? | [*Maybe*](#maybe)<[*SetCustomerVatId*](#setcustomervatid)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3883](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3883) - -___ - -### `MyLineItemDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`distributionChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3907](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3907) - -___ - -### `MyShoppingListDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`lineItems`? | [*Maybe*](#maybe)<[*ShoppingListLineItemDraft*](#shoppinglistlineitemdraft)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`textLineItems`? | [*Maybe*](#maybe)<[*TextLineItemDraft*](#textlineitemdraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3918](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3918) - -___ - -### `MyShoppingListUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListLineItem*](#addshoppinglistlineitem)\> | -`addTextLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListTextLineItem*](#addshoppinglisttextlineitem)\> | -`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemQuantity*](#changeshoppinglistlineitemquantity)\> | -`changeLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemsOrder*](#changeshoppinglistlineitemsorder)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeShoppingListName*](#changeshoppinglistname)\> | -`changeTextLineItemName`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemName*](#changeshoppinglisttextlineitemname)\> | -`changeTextLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemQuantity*](#changeshoppinglisttextlineitemquantity)\> | -`changeTextLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemsOrder*](#changeshoppinglisttextlineitemsorder)\> | -`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListLineItem*](#removeshoppinglistlineitem)\> | -`removeTextLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListTextLineItem*](#removeshoppinglisttextlineitem)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListCustomField*](#setshoppinglistcustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListCustomType*](#setshoppinglistcustomtype)\> | -`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetShoppingListDeleteDaysAfterLastModification*](#setshoppinglistdeletedaysafterlastmodification)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetShoppingListDescription*](#setshoppinglistdescription)\> | -`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomField*](#setshoppinglistlineitemcustomfield)\> | -`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomType*](#setshoppinglistlineitemcustomtype)\> | -`setTextLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomField*](#setshoppinglisttextlineitemcustomfield)\> | -`setTextLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomType*](#setshoppinglisttextlineitemcustomtype)\> | -`setTextLineItemDescription`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemDescription*](#setshoppinglisttextlineitemdescription)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3927](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3927) - -___ - -### `NestedAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3951) - -___ - -### `NumberAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3957) - -___ - -### `NumberAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3963](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3963) - -___ - -### `NumberField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3968](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3968) - -___ - -### `NumberType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3974](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3974) - -___ - -### `Order` - -An order can be created from a cart, usually after a checkout process has been completed. -[documentation](https://shopify.dev/api/storefront/reference/orders/order) - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:3982](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L3982) - -___ - -### `OrderCartCommand` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderState`? | [*Maybe*](#maybe)<[*OrderState*](../enums/types_graphql.orderstate.md)\> | -`paymentState`? | [*Maybe*](#maybe)<[*PaymentState*](../enums/types_graphql.paymentstate.md)\> | -`shipmentState`? | [*Maybe*](#maybe)<[*ShipmentState*](../enums/types_graphql.shipmentstate.md)\> | -`state`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4055](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4055) - -___ - -### `OrderMyCartCommand` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4065](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4065) - -___ - -### `OrderQueryInterface` - -Fields to access orders. Includes direct access to a single order and searching for orders. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`order`? | [*Maybe*](#maybe)<[*Order*](#order)\> | -`orders` | [*OrderQueryResult*](#orderqueryresult) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4071](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4071) - -___ - -### `OrderQueryInterfaceOrderArgs` - -Fields to access orders. Includes direct access to a single order and searching for orders. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4077](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4077) - -___ - -### `OrderQueryInterfaceOrdersArgs` - -Fields to access orders. Includes direct access to a single order and searching for orders. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4083](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4083) - -___ - -### `OrderQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *OrderQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Order*](#order)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4090](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4090) - -___ - -### `OrderUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addDelivery`? | [*Maybe*](#maybe)<[*AddOrderDelivery*](#addorderdelivery)\> | -`addItemShippingAddress`? | [*Maybe*](#maybe)<[*AddOrderItemShippingAddress*](#addorderitemshippingaddress)\> | -`addParcelToDelivery`? | [*Maybe*](#maybe)<[*AddOrderParcelToDelivery*](#addorderparceltodelivery)\> | -`addPayment`? | [*Maybe*](#maybe)<[*AddOrderPayment*](#addorderpayment)\> | -`addReturnInfo`? | [*Maybe*](#maybe)<[*AddOrderReturnInfo*](#addorderreturninfo)\> | -`changeOrderState`? | [*Maybe*](#maybe)<[*ChangeOrderState*](#changeorderstate)\> | -`changePaymentState`? | [*Maybe*](#maybe)<[*ChangeOrderPaymentState*](#changeorderpaymentstate)\> | -`changeShipmentState`? | [*Maybe*](#maybe)<[*ChangeOrderShipmentState*](#changeordershipmentstate)\> | -`importCustomLineItemState`? | [*Maybe*](#maybe)<[*ImportOrderCustomLineItemState*](#importordercustomlineitemstate)\> | -`importLineItemState`? | [*Maybe*](#maybe)<[*ImportOrderLineItemState*](#importorderlineitemstate)\> | -`removeDelivery`? | [*Maybe*](#maybe)<[*RemoveOrderDelivery*](#removeorderdelivery)\> | -`removeItemShippingAddress`? | [*Maybe*](#maybe)<[*RemoveOrderItemShippingAddress*](#removeorderitemshippingaddress)\> | -`removeParcelFromDelivery`? | [*Maybe*](#maybe)<[*RemoveOrderParcelFromDelivery*](#removeorderparcelfromdelivery)\> | -`removePayment`? | [*Maybe*](#maybe)<[*RemoveOrderPayment*](#removeorderpayment)\> | -`setBillingAddress`? | [*Maybe*](#maybe)<[*SetOrderBillingAddress*](#setorderbillingaddress)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetOrderCustomField*](#setordercustomfield)\> | -`setCustomLineItemCustomField`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemCustomField*](#setordercustomlineitemcustomfield)\> | -`setCustomLineItemCustomType`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemCustomType*](#setordercustomlineitemcustomtype)\> | -`setCustomLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetOrderCustomLineItemShippingDetails*](#setordercustomlineitemshippingdetails)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetOrderCustomType*](#setordercustomtype)\> | -`setCustomerEmail`? | [*Maybe*](#maybe)<[*SetOrderCustomerEmail*](#setordercustomeremail)\> | -`setCustomerId`? | [*Maybe*](#maybe)<[*SetOrderCustomerId*](#setordercustomerid)\> | -`setDeliveryAddress`? | [*Maybe*](#maybe)<[*SetOrderDeliveryAddress*](#setorderdeliveryaddress)\> | -`setDeliveryItems`? | [*Maybe*](#maybe)<[*SetOrderDeliveryItems*](#setorderdeliveryitems)\> | -`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetOrderLineItemCustomField*](#setorderlineitemcustomfield)\> | -`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetOrderLineItemCustomType*](#setorderlineitemcustomtype)\> | -`setLineItemShippingDetails`? | [*Maybe*](#maybe)<[*SetOrderLineItemShippingDetails*](#setorderlineitemshippingdetails)\> | -`setLocale`? | [*Maybe*](#maybe)<[*SetOrderLocale*](#setorderlocale)\> | -`setOrderNumber`? | [*Maybe*](#maybe)<[*SetOrderNumber*](#setordernumber)\> | -`setParcelItems`? | [*Maybe*](#maybe)<[*SetOrderParcelItems*](#setorderparcelitems)\> | -`setParcelMeasurements`? | [*Maybe*](#maybe)<[*SetOrderParcelMeasurements*](#setorderparcelmeasurements)\> | -`setParcelTrackingData`? | [*Maybe*](#maybe)<[*SetOrderParcelTrackingData*](#setorderparceltrackingdata)\> | -`setReturnPaymentState`? | [*Maybe*](#maybe)<[*SetOrderReturnPaymentState*](#setorderreturnpaymentstate)\> | -`setReturnShipmentState`? | [*Maybe*](#maybe)<[*SetOrderReturnShipmentState*](#setorderreturnshipmentstate)\> | -`setShippingAddress`? | [*Maybe*](#maybe)<[*SetOrderShippingAddress*](#setordershippingaddress)\> | -`transitionCustomLineItemState`? | [*Maybe*](#maybe)<[*TransitionOrderCustomLineItemState*](#transitionordercustomlineitemstate)\> | -`transitionLineItemState`? | [*Maybe*](#maybe)<[*TransitionOrderLineItemState*](#transitionorderlineitemstate)\> | -`transitionState`? | [*Maybe*](#maybe)<[*TransitionOrderState*](#transitionorderstate)\> | -`updateItemShippingAddress`? | [*Maybe*](#maybe)<[*UpdateOrderItemShippingAddress*](#updateorderitemshippingaddress)\> | -`updateSyncInfo`? | [*Maybe*](#maybe)<[*UpdateOrderSyncInfo*](#updateordersyncinfo)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4105](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4105) - -___ - -### `Parcel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Parcel* | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`id` | [*Scalars*](#scalars)[*String*] | -`items` | [*DeliveryItem*](#deliveryitem)[] | -`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurements*](#parcelmeasurements)\> | -`trackingData`? | [*Maybe*](#maybe)<[*TrackingData*](#trackingdata)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4150) - -___ - -### `ParcelMeasurements` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ParcelMeasurements* | -`heightInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`lengthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`weightInGram`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`widthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4159](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4159) - -___ - -### `ParcelMeasurementsDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`heightInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`lengthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`weightInGram`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`widthInMillimeter`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4167](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4167) - -___ - -### `Payment` - -Payments hold information about the current state of receiving and/or refunding money. -[documentation](https://shopify.dev/api/storefront/reference/checkouts/payment) - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4177](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4177) - -___ - -### `PaymentInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PaymentInfo* | -`paymentRefs` | [*Reference*](#reference)[] | -`payments` | [*Payment*](#payment)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4232](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4232) - -___ - -### `PaymentMethodInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PaymentMethodInfo* | -`method`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`nameAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | -`paymentInterface`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4238) - -___ - -### `PaymentMethodInfoNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4246](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4246) - -___ - -### `PaymentQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PaymentQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Payment*](#payment)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4251) - -___ - -### `PaymentStatus` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PaymentStatus* | -`interfaceCode`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`interfaceText`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`state`? | [*Maybe*](#maybe)<[*State*](#state)\> | -`stateRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4267](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4267) - -___ - -### `PlainEnumValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PlainEnumValue* | -`key` | [*Scalars*](#scalars)[*String*] | -`label` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4275](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4275) - -___ - -### `PlainEnumValueDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*String*] | -`label` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4281](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4281) - -___ - -### `PlainEnumValueResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PlainEnumValueResult* | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`results` | [*PlainEnumValue*](#plainenumvalue)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4286) - -___ - -### `Point` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4294) - -___ - -### `PriceFunction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *PriceFunction* | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | -`function` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4300](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4300) - -___ - -### `PriceFunctionDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`currencyCode` | [*Scalars*](#scalars)[*Currency*] | -`function` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4306](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4306) - -___ - -### `Product` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4311) - -___ - -### `ProductAttributeInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4335) - -___ - -### `ProductCatalogData` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductCatalogData* | -`current`? | [*Maybe*](#maybe)<[*ProductData*](#productdata)\> | -`hasStagedChanges` | [*Scalars*](#scalars)[*Boolean*] | -`published` | [*Scalars*](#scalars)[*Boolean*] | -`staged`? | [*Maybe*](#maybe)<[*ProductData*](#productdata)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4340](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4340) - -___ - -### `ProductCatalogDataArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4331) - -___ - -### `ProductData` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductData* | -`allVariants` | [*ProductVariant*](#productvariant)[] | -`categories` | [*Category*](#category)[] | -`categoriesRef` | [*Reference*](#reference)[] | -`categoryOrderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`categoryOrderHints` | [*CategoryOrderHint*](#categoryorderhint)[] | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | -`masterVariant` | [*ProductVariant*](#productvariant) | -`metaDescription`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`metaKeywords`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`metaTitle`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | -`searchKeyword`? | [*Maybe*](#maybe)<[*SearchKeyword*](#searchkeyword)[]\> | -`searchKeywords` | [*SearchKeywords*](#searchkeywords)[] | -`skus` | [*Scalars*](#scalars)[*String*][] | -`slug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | -`variants` | [*ProductVariant*](#productvariant)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4348) - -___ - -### `ProductDataAllVariantsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`hasImages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`isOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`stockChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4416](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4416) - -___ - -### `ProductDataCategoryOrderHintArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`categoryId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4386](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4386) - -___ - -### `ProductDataDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4376](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4376) - -___ - -### `ProductDataMetaDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4404](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4404) - -___ - -### `ProductDataMetaKeywordsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4399) - -___ - -### `ProductDataMetaTitleArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4394) - -___ - -### `ProductDataNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4371](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4371) - -___ - -### `ProductDataSearchKeywordArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4390](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4390) - -___ - -### `ProductDataSlugArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4381](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4381) - -___ - -### `ProductDataVariantArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4423](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4423) - -___ - -### `ProductDataVariantsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`hasImages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`isOnStock`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`stockChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4409](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4409) - -___ - -### `ProductDiscount` - -A product price can be discounted in two ways: - -* with a relative or an absolute product discount, which will be automatically -applied to all prices in a product that match a discount predicate. - A relative discount reduces the matching price by a fraction (for example 10 % -off). An absolute discount reduces the matching price by a fixed amount (for -example 10€ off). If more than one product discount matches a price, the -discount sort order determines which one will be applied. -* with an external product discount, which can then be used to explicitly set a -discounted value on a particular product price. - -The discounted price is stored in the discounted field of the Product Price. - -Note that when a discount is created, updated or removed it can take up to 15 -minutes to update all the prices with the discounts. - -The maximum number of ProductDiscounts that can be active at the same time is **200**. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4446](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4446) - -___ - -### `ProductDiscountDescriptionArgs` - -A product price can be discounted in two ways: - -* with a relative or an absolute product discount, which will be automatically -applied to all prices in a product that match a discount predicate. - A relative discount reduces the matching price by a fraction (for example 10 % -off). An absolute discount reduces the matching price by a fixed amount (for -example 10€ off). If more than one product discount matches a price, the -discount sort order determines which one will be applied. -* with an external product discount, which can then be used to explicitly set a -discounted value on a particular product price. - -The discounted price is stored in the discounted field of the Product Price. - -Note that when a discount is created, updated or removed it can take up to 15 -minutes to update all the prices with the discounts. - -The maximum number of ProductDiscounts that can be active at the same time is **200**. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4509](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4509) - -___ - -### `ProductDiscountDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`isActive`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`predicate` | [*Scalars*](#scalars)[*String*] | -`sortOrder` | [*Scalars*](#scalars)[*String*] | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`value` | [*ProductDiscountValueInput*](#productdiscountvalueinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4514](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4514) - -___ - -### `ProductDiscountNameArgs` - -A product price can be discounted in two ways: - -* with a relative or an absolute product discount, which will be automatically -applied to all prices in a product that match a discount predicate. - A relative discount reduces the matching price by a fraction (for example 10 % -off). An absolute discount reduces the matching price by a fixed amount (for -example 10€ off). If more than one product discount matches a price, the -discount sort order determines which one will be applied. -* with an external product discount, which can then be used to explicitly set a -discounted value on a particular product price. - -The discounted price is stored in the discounted field of the Product Price. - -Note that when a discount is created, updated or removed it can take up to 15 -minutes to update all the prices with the discounts. - -The maximum number of ProductDiscounts that can be active at the same time is **200**. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4486](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4486) - -___ - -### `ProductDiscountQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductDiscountQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*ProductDiscount*](#productdiscount)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4526](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4526) - -___ - -### `ProductDiscountUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`changeIsActive`? | [*Maybe*](#maybe)<[*ChangeProductDiscountIsActive*](#changeproductdiscountisactive)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeProductDiscountName*](#changeproductdiscountname)\> | -`changePredicate`? | [*Maybe*](#maybe)<[*ChangeProductDiscountPredicate*](#changeproductdiscountpredicate)\> | -`changeSortOrder`? | [*Maybe*](#maybe)<[*ChangeProductDiscountSortOrder*](#changeproductdiscountsortorder)\> | -`changeValue`? | [*Maybe*](#maybe)<[*ChangeProductDiscountValue*](#changeproductdiscountvalue)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetProductDiscountDescription*](#setproductdiscountdescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetProductDiscountKey*](#setproductdiscountkey)\> | -`setValidFrom`? | [*Maybe*](#maybe)<[*SetProductDiscountValidFrom*](#setproductdiscountvalidfrom)\> | -`setValidFromAndUntil`? | [*Maybe*](#maybe)<[*SetProductDiscountValidFromAndUntil*](#setproductdiscountvalidfromanduntil)\> | -`setValidUntil`? | [*Maybe*](#maybe)<[*SetProductDiscountValidUntil*](#setproductdiscountvaliduntil)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4534) - -___ - -### `ProductDiscountValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4547](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4547) - -___ - -### `ProductDiscountValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`absolute`? | [*Maybe*](#maybe)<[*AbsoluteDiscountValueInput*](#absolutediscountvalueinput)\> | -`external`? | [*Maybe*](#maybe)<[*ExternalDiscountValueInput*](#externaldiscountvalueinput)\> | -`relative`? | [*Maybe*](#maybe)<[*RelativeDiscountValueInput*](#relativediscountvalueinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4551](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4551) - -___ - -### `ProductDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`categories`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)[]\> | -`categoryOrderHints`? | [*Maybe*](#maybe)<[*CategoryOrderHintInput*](#categoryorderhintinput)[]\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`masterVariant`? | [*Maybe*](#maybe)<[*ProductVariantInput*](#productvariantinput)\> | -`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`productType` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`publish`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`searchKeywords`? | [*Maybe*](#maybe)<[*SearchKeywordInput*](#searchkeywordinput)[]\> | -`slug` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`state`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`variants`? | [*Maybe*](#maybe)<[*ProductVariantInput*](#productvariantinput)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4557](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4557) - -___ - -### `ProductPrice` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *ProductPrice* | - | -`channel`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | - | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | - | -`customFieldList`? | [*Maybe*](#maybe)<[*CustomField*](#customfield)[]\> | Custom fields are returned as a list instead of an object structure. | -`customFields`? | [*Maybe*](#maybe)<[*Type*](#type)\> | This field would contain type data | -`customFieldsRaw`? | [*Maybe*](#maybe)<[*RawCustomField*](#rawcustomfield)[]\> | This field contains non-typed data. Consider using `customFields` as a typed alternative. | -`customerGroup`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - | -`discounted`? | [*Maybe*](#maybe)<[*DiscountedProductPriceValue*](#discountedproductpricevalue)\> | - | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`tiers`? | [*Maybe*](#maybe)<[*ProductPriceTier*](#productpricetier)[]\> | - | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - | -`value` | [*BaseMoney*](#basemoney) | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4576](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4576) - -___ - -### `ProductPriceCustomFieldListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4601](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4601) - -___ - -### `ProductPriceCustomFieldsRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4596](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4596) - -___ - -### `ProductPriceDataInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`channel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`customerGroup`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`tiers`? | [*Maybe*](#maybe)<[*ProductPriceTierInput*](#productpricetierinput)[]\> | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`value` | [*BaseMoneyInput*](#basemoneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4606](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4606) - -___ - -### `ProductPriceTier` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductPriceTier* | -`minimumQuantity` | [*Scalars*](#scalars)[*Int*] | -`value` | [*BaseMoney*](#basemoney) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4617](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4617) - -___ - -### `ProductPriceTierInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`minimumQuantity` | [*Scalars*](#scalars)[*Int*] | -`value` | [*BaseMoneyInput*](#basemoneyinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4623](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4623) - -___ - -### `ProductQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Product*](#product)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4628](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4628) - -___ - -### `ProductReferenceIdentifier` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductReferenceIdentifier* | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4636](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4636) - -___ - -### `ProductType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`productTypeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4643](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4643) - -___ - -### `ProductTypeDefinition` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4647](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4647) - -___ - -### `ProductTypeDefinitionAttributeDefinitionsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4661](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4661) - -___ - -### `ProductTypeDefinitionQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductTypeDefinitionQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*ProductTypeDefinition*](#producttypedefinition)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4669](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4669) - -___ - -### `ProductTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeDefinitions`? | [*Maybe*](#maybe)<[*AttributeDefinitionDraft*](#attributedefinitiondraft)[]\> | -`description` | [*Scalars*](#scalars)[*String*] | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4677](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4677) - -___ - -### `ProductTypeUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addAttributeDefinition`? | [*Maybe*](#maybe)<[*AddAttributeDefinition*](#addattributedefinition)\> | -`addLocalizedEnumValue`? | [*Maybe*](#maybe)<[*AddLocalizedEnumValue*](#addlocalizedenumvalue)\> | -`addPlainEnumValue`? | [*Maybe*](#maybe)<[*AddPlainEnumValue*](#addplainenumvalue)\> | -`changeAttributeName`? | [*Maybe*](#maybe)<[*ChangeAttributeName*](#changeattributename)\> | -`changeAttributeOrder`? | [*Maybe*](#maybe)<[*ChangeAttributeOrder*](#changeattributeorder)\> | -`changeAttributeOrderByName`? | [*Maybe*](#maybe)<[*ChangeAttributeOrderByName*](#changeattributeorderbyname)\> | -`changeDescription`? | [*Maybe*](#maybe)<[*ChangeDescription*](#changedescription)\> | -`changeEnumKey`? | [*Maybe*](#maybe)<[*ChangeEnumKey*](#changeenumkey)\> | -`changeInputHint`? | [*Maybe*](#maybe)<[*ChangeInputHint*](#changeinputhint)\> | -`changeIsSearchable`? | [*Maybe*](#maybe)<[*ChangeIsSearchable*](#changeissearchable)\> | -`changeLabel`? | [*Maybe*](#maybe)<[*ChangeLabel*](#changelabel)\> | -`changeLocalizedEnumValueLabel`? | [*Maybe*](#maybe)<[*ChangeLocalizedEnumValueLabel*](#changelocalizedenumvaluelabel)\> | -`changeLocalizedEnumValueOrder`? | [*Maybe*](#maybe)<[*ChangeLocalizedEnumValueOrder*](#changelocalizedenumvalueorder)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeName*](#changename)\> | -`changePlainEnumValueLabel`? | [*Maybe*](#maybe)<[*ChangePlainEnumValueLabel*](#changeplainenumvaluelabel)\> | -`changePlainEnumValueOrder`? | [*Maybe*](#maybe)<[*ChangePlainEnumValueOrder*](#changeplainenumvalueorder)\> | -`removeAttributeDefinition`? | [*Maybe*](#maybe)<[*RemoveAttributeDefinition*](#removeattributedefinition)\> | -`removeEnumValues`? | [*Maybe*](#maybe)<[*RemoveEnumValues*](#removeenumvalues)\> | -`setInputTip`? | [*Maybe*](#maybe)<[*SetInputTip*](#setinputtip)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetKey*](#setkey)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4684](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4684) - -___ - -### `ProductUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addAsset`? | [*Maybe*](#maybe)<[*AddProductAsset*](#addproductasset)\> | -`addExternalImage`? | [*Maybe*](#maybe)<[*AddProductExternalImage*](#addproductexternalimage)\> | -`addPrice`? | [*Maybe*](#maybe)<[*AddProductPrice*](#addproductprice)\> | -`addToCategory`? | [*Maybe*](#maybe)<[*AddProductToCategory*](#addproducttocategory)\> | -`addVariant`? | [*Maybe*](#maybe)<[*AddProductVariant*](#addproductvariant)\> | -`changeAssetName`? | [*Maybe*](#maybe)<[*ChangeProductAssetName*](#changeproductassetname)\> | -`changeAssetOrder`? | [*Maybe*](#maybe)<[*ChangeProductAssetOrder*](#changeproductassetorder)\> | -`changeImageLabel`? | [*Maybe*](#maybe)<[*ChangeProductImageLabel*](#changeproductimagelabel)\> | -`changeMasterVariant`? | [*Maybe*](#maybe)<[*ChangeProductMasterVariant*](#changeproductmastervariant)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeProductName*](#changeproductname)\> | -`changePrice`? | [*Maybe*](#maybe)<[*ChangeProductPrice*](#changeproductprice)\> | -`changeSlug`? | [*Maybe*](#maybe)<[*ChangeProductSlug*](#changeproductslug)\> | -`moveImageToPosition`? | [*Maybe*](#maybe)<[*MoveProductImageToPosition*](#moveproductimagetoposition)\> | -`publish`? | [*Maybe*](#maybe)<[*PublishProduct*](#publishproduct)\> | -`removeAsset`? | [*Maybe*](#maybe)<[*RemoveProductAsset*](#removeproductasset)\> | -`removeFromCategory`? | [*Maybe*](#maybe)<[*RemoveProductFromCategory*](#removeproductfromcategory)\> | -`removeImage`? | [*Maybe*](#maybe)<[*RemoveProductImage*](#removeproductimage)\> | -`removePrice`? | [*Maybe*](#maybe)<[*RemoveProductPrice*](#removeproductprice)\> | -`removeVariant`? | [*Maybe*](#maybe)<[*RemoveProductVariant*](#removeproductvariant)\> | -`revertStagedChanges`? | [*Maybe*](#maybe)<[*RevertStagedChanges*](#revertstagedchanges)\> | -`revertStagedVariantChanges`? | [*Maybe*](#maybe)<[*RevertStagedVariantChanges*](#revertstagedvariantchanges)\> | -`setAssetCustomField`? | [*Maybe*](#maybe)<[*SetProductAssetCustomField*](#setproductassetcustomfield)\> | -`setAssetCustomType`? | [*Maybe*](#maybe)<[*SetProductAssetCustomType*](#setproductassetcustomtype)\> | -`setAssetDescription`? | [*Maybe*](#maybe)<[*SetProductAssetDescription*](#setproductassetdescription)\> | -`setAssetKey`? | [*Maybe*](#maybe)<[*SetProductAssetKey*](#setproductassetkey)\> | -`setAssetSources`? | [*Maybe*](#maybe)<[*SetProductAssetSources*](#setproductassetsources)\> | -`setAssetTags`? | [*Maybe*](#maybe)<[*SetProductAssetTags*](#setproductassettags)\> | -`setAttribute`? | [*Maybe*](#maybe)<[*SetProductAttribute*](#setproductattribute)\> | -`setAttributeInAllVariants`? | [*Maybe*](#maybe)<[*SetProductAttributeInAllVariants*](#setproductattributeinallvariants)\> | -`setCategoryOrderHint`? | [*Maybe*](#maybe)<[*SetProductCategoryOrderHint*](#setproductcategoryorderhint)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetProductDescription*](#setproductdescription)\> | -`setDiscountedPrice`? | [*Maybe*](#maybe)<[*SetProductDiscountedPrice*](#setproductdiscountedprice)\> | -`setImageLabel`? | [*Maybe*](#maybe)<[*SetProductImageLabel*](#setproductimagelabel)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetProductKey*](#setproductkey)\> | -`setMetaAttributes`? | [*Maybe*](#maybe)<[*SetProductMetaAttributes*](#setproductmetaattributes)\> | -`setMetaDescription`? | [*Maybe*](#maybe)<[*SetProductMetaDescription*](#setproductmetadescription)\> | -`setMetaKeywords`? | [*Maybe*](#maybe)<[*SetProductMetaKeywords*](#setproductmetakeywords)\> | -`setMetaTitle`? | [*Maybe*](#maybe)<[*SetProductMetaTitle*](#setproductmetatitle)\> | -`setPrices`? | [*Maybe*](#maybe)<[*SetProductPrices*](#setproductprices)\> | -`setProductPriceCustomField`? | [*Maybe*](#maybe)<[*SetProductPriceCustomField*](#setproductpricecustomfield)\> | -`setProductPriceCustomType`? | [*Maybe*](#maybe)<[*SetProductPriceCustomType*](#setproductpricecustomtype)\> | -`setProductVariantKey`? | [*Maybe*](#maybe)<[*SetProductVariantKey*](#setproductvariantkey)\> | -`setSearchKeywords`? | [*Maybe*](#maybe)<[*SetSearchKeywords*](#setsearchkeywords)\> | -`setSku`? | [*Maybe*](#maybe)<[*SetProductSku*](#setproductsku)\> | -`setTaxCategory`? | [*Maybe*](#maybe)<[*SetProductTaxCategory*](#setproducttaxcategory)\> | -`transitionState`? | [*Maybe*](#maybe)<[*TransitionProductState*](#transitionproductstate)\> | -`unpublish`? | [*Maybe*](#maybe)<[*UnpublishProduct*](#unpublishproduct)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4707](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4707) - -___ - -### `ProductVariant` - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`__typename`? | *ProductVariant* | - | -`assets` | [*Asset*](#asset)[] | - | -`attributeList` | [*Attribute*](#attribute)[] | Product attributes are returned as a list instead of an object structure. | -`attributes` | [*ProductType*](#producttype) | Product attributes | -`attributesRaw` | [*RawProductAttribute*](#rawproductattribute)[] | This field contains non-typed data. Consider using `attributes` as a typed alternative. | -`availability`? | [*Maybe*](#maybe)<[*ProductVariantAvailabilityWithChannels*](#productvariantavailabilitywithchannels)\> | - | -`id` | [*Scalars*](#scalars)[*Int*] | - | -`images` | [*Image*](#image)[] | - | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | -`price`? | [*Maybe*](#maybe)<[*ProductPrice*](#productprice)\> | Returns a single price based on the price selection rules. | -`prices`? | [*Maybe*](#maybe)<[*ProductPrice*](#productprice)[]\> | - | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4757) - -___ - -### `ProductVariantAttributeListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4789](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4789) - -___ - -### `ProductVariantAttributesRawArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4784](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4784) - -___ - -### `ProductVariantAvailabilitiesResult` - -Product variant availabilities - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductVariantAvailabilitiesResult* | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`results` | [*ProductVariantAvailabilityWithChannel*](#productvariantavailabilitywithchannel)[] | -`total` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4795](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4795) - -___ - -### `ProductVariantAvailability` - -Product variant availability - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductVariantAvailability* | -`availableQuantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`isOnStock` | [*Scalars*](#scalars)[*Boolean*] | -`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4804](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4804) - -___ - -### `ProductVariantAvailabilityWithChannel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductVariantAvailabilityWithChannel* | -`availability` | [*ProductVariantAvailability*](#productvariantavailability) | -`channel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | -`channelRef` | [*Reference*](#reference) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4811](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4811) - -___ - -### `ProductVariantAvailabilityWithChannels` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProductVariantAvailabilityWithChannels* | -`channels` | [*ProductVariantAvailabilitiesResult*](#productvariantavailabilitiesresult) | -`noChannel`? | [*Maybe*](#maybe)<[*ProductVariantAvailability*](#productvariantavailability)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4818](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4818) - -___ - -### `ProductVariantAvailabilityWithChannelsChannelsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeChannelIds`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4824](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4824) - -___ - -### `ProductVariantInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assets`? | [*Maybe*](#maybe)<[*AssetDraftInput*](#assetdraftinput)[]\> | -`attributes`? | [*Maybe*](#maybe)<[*ProductAttributeInput*](#productattributeinput)[]\> | -`images`? | [*Maybe*](#maybe)<[*ImageInput*](#imageinput)[]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`prices`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)[]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4831](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4831) - -___ - -### `ProductVariantPriceArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`channelId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | -`currency` | [*Scalars*](#scalars)[*Currency*] | -`customerGroupId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`date`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4776](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4776) - -___ - -### `ProjectProjection` - -Project contains information about project. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ProjectProjection* | -`countries` | [*Scalars*](#scalars)[*Country*][] | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`currencies` | [*Scalars*](#scalars)[*Currency*][] | -`externalOAuth`? | [*Maybe*](#maybe)<[*ExternalOAuth*](#externaloauth)\> | -`key` | [*Scalars*](#scalars)[*String*] | -`languages` | [*Scalars*](#scalars)[*Locale*][] | -`messages` | [*MessagesConfiguration*](#messagesconfiguration) | -`name` | [*Scalars*](#scalars)[*String*] | -`shippingRateInputType`? | [*Maybe*](#maybe)<[*ShippingRateInputType*](#shippingrateinputtype)\> | -`trialUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*YearMonth*]\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4841](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4841) - -___ - -### `ProjectSettingsUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`changeCountries`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsCountries*](#changeprojectsettingscountries)\> | -`changeCurrencies`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsCurrencies*](#changeprojectsettingscurrencies)\> | -`changeLanguages`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsLanguages*](#changeprojectsettingslanguages)\> | -`changeMessagesConfiguration`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsMessagesConfiguration*](#changeprojectsettingsmessagesconfiguration)\> | -`changeMessagesEnabled`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsMessagesEnabled*](#changeprojectsettingsmessagesenabled)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeProjectSettingsName*](#changeprojectsettingsname)\> | -`setExternalOAuth`? | [*Maybe*](#maybe)<[*SetProjectSettingsExternalOAuth*](#setprojectsettingsexternaloauth)\> | -`setShippingRateInputType`? | [*Maybe*](#maybe)<[*SetProjectSettingsShippingRateInputType*](#setprojectsettingsshippingrateinputtype)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4856](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4856) - -___ - -### `PublishProduct` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`scope`? | [*Maybe*](#maybe)<[*PublishScope*](../enums/types_graphql.publishscope.md)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4869](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4869) - -___ - -### `Query` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4880](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4880) - -___ - -### `QueryApiClientArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5231](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5231) - -___ - -### `QueryApiClientsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5235](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5235) - -___ - -### `QueryCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5168](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5168) - -___ - -### `QueryCartDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5093](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5093) - -___ - -### `QueryCartDiscountsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5098](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5098) - -___ - -### `QueryCartsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5172](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5172) - -___ - -### `QueryCategoriesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4974](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4974) - -___ - -### `QueryCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4969](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4969) - -___ - -### `QueryCategoryAutocompleteArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`experimental`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`filters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`locale` | [*Scalars*](#scalars)[*Locale*] | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`text` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4981](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4981) - -___ - -### `QueryCategorySearchArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`experimental`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`filters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | -`fulltext`? | [*Maybe*](#maybe)<[*LocalizedText*](#localizedtext)\> | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`queryFilters`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchFilter*][]\> | -`sorts`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*SearchSort*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4990](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4990) - -___ - -### `QueryChannelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5000](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5000) - -___ - -### `QueryChannelsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5005](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5005) - -___ - -### `QueryCustomerActiveCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5179](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5179) - -___ - -### `QueryCustomerArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`emailToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`passwordToken`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5143](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5143) - -___ - -### `QueryCustomerGroupArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4957) - -___ - -### `QueryCustomerGroupsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4962](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4962) - -___ - -### `QueryCustomersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5150](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5150) - -___ - -### `QueryDiscountCodeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5082](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5082) - -___ - -### `QueryDiscountCodesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5086](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5086) - -___ - -### `QueryInStoreArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key` | [*Scalars*](#scalars)[*KeyReferenceInput*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4949](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4949) - -___ - -### `QueryInStoresArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`keys` | [*Scalars*](#scalars)[*KeyReferenceInput*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:4953](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L4953) - -___ - -### `QueryInventoryEntriesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5161](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5161) - -___ - -### `QueryInventoryEntryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5157](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5157) - -___ - -### `QueryOrderArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5183](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5183) - -___ - -### `QueryOrdersArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5188](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5188) - -___ - -### `QueryPaymentArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5207](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5207) - -___ - -### `QueryPaymentsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5212](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5212) - -___ - -### `QueryProductArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5116](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5116) - -___ - -### `QueryProductDiscountArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5105](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5105) - -___ - -### `QueryProductDiscountsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5109](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5109) - -___ - -### `QueryProductTypeArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5012](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5012) - -___ - -### `QueryProductTypesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5017](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5017) - -___ - -### `QueryProductsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`skus`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5123](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5123) - -___ - -### `QueryShippingMethodArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5036](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5036) - -___ - -### `QueryShippingMethodsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5041](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5041) - -___ - -### `QueryShippingMethodsByCartArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5048](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5048) - -___ - -### `QueryShippingMethodsByLocationArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`country` | [*Scalars*](#scalars)[*Country*] | -`currency`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Currency*]\> | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5052](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5052) - -___ - -### `QueryShoppingListArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5195](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5195) - -___ - -### `QueryShoppingListsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5200) - -___ - -### `QueryStateArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5131](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5131) - -___ - -### `QueryStatesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5136](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5136) - -___ - -### `QueryStoreArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5219) - -___ - -### `QueryStoresArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5224](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5224) - -___ - -### `QueryTaxCategoriesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5075](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5075) - -___ - -### `QueryTaxCategoryArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5070](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5070) - -___ - -### `QueryTypeDefinitionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5024](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5024) - -___ - -### `QueryTypeDefinitionsArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5029](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5029) - -___ - -### `QueryZoneArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5058](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5058) - -___ - -### `QueryZonesArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5063](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5063) - -___ - -### `RawCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *RawCustomField* | -`name` | [*Scalars*](#scalars)[*String*] | -`value` | [*Scalars*](#scalars)[*Json*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5242](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5242) - -___ - -### `RawProductAttribute` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *RawProductAttribute* | -`attributeDefinition`? | [*Maybe*](#maybe)<[*AttributeDefinition*](#attributedefinition)\> | -`name` | [*Scalars*](#scalars)[*String*] | -`value` | [*Scalars*](#scalars)[*Json*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5248](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5248) - -___ - -### `RecalculateCart` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`updateProductData`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5255](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5255) - -___ - -### `Reference` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Reference* | -`id` | [*Scalars*](#scalars)[*String*] | -`typeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5259](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5259) - -___ - -### `ReferenceAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5265](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5265) - -___ - -### `ReferenceAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5272](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5272) - -___ - -### `ReferenceField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5278](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5278) - -___ - -### `ReferenceInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | -`typeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5285](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5285) - -___ - -### `ReferenceType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5290](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5290) - -___ - -### `ReferenceTypeDefinitionDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`referenceTypeId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5296](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5296) - -___ - -### `RelativeDiscountValue` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5300](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5300) - -___ - -### `RelativeDiscountValueInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`permyriad` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5307) - -___ - -### `RemoveAttributeDefinition` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5311) - -___ - -### `RemoveCartCustomLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5315) - -___ - -### `RemoveCartDiscountCode` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`discountCode` | [*ReferenceInput*](#referenceinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5319](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5319) - -___ - -### `RemoveCartItemShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressKey` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5323](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5323) - -___ - -### `RemoveCartLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | -`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | -`shippingDetailsToRemove`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5327](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5327) - -___ - -### `RemoveCartPayment` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5335) - -___ - -### `RemoveCategoryAsset` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5339) - -___ - -### `RemoveCustomerAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5344](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5344) - -___ - -### `RemoveCustomerBillingAddressId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5348](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5348) - -___ - -### `RemoveCustomerShippingAddressId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5352](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5352) - -___ - -### `RemoveCustomerStore` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`store` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5356](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5356) - -___ - -### `RemoveEnumValues` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`keys` | [*Scalars*](#scalars)[*String*][] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5360](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5360) - -___ - -### `RemoveInventoryEntryQuantity` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5365](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5365) - -___ - -### `RemoveOrderDelivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deliveryId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5369](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5369) - -___ - -### `RemoveOrderItemShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressKey` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5373](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5373) - -___ - -### `RemoveOrderParcelFromDelivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`parcelId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5377](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5377) - -___ - -### `RemoveOrderPayment` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`payment` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5381](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5381) - -___ - -### `RemoveProductAsset` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5385](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5385) - -___ - -### `RemoveProductFromCategory` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`category` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5394](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5394) - -___ - -### `RemoveProductImage` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`imageUrl` | [*Scalars*](#scalars)[*String*] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5399](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5399) - -___ - -### `RemoveProductPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`price`? | [*Maybe*](#maybe)<[*ProductPriceDataInput*](#productpricedatainput)\> | -`priceId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5406](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5406) - -___ - -### `RemoveProductVariant` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5415](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5415) - -___ - -### `RemoveShippingMethodShippingRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | -`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5421](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5421) - -___ - -### `RemoveShippingMethodZone` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5426](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5426) - -___ - -### `RemoveShoppingListLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5430](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5430) - -___ - -### `RemoveShoppingListTextLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5435](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5435) - -___ - -### `RemoveZoneLocation` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`location` | [*ZoneLocation*](#zonelocation) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5440](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5440) - -___ - -### `ReservationOrderType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5444](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5444) - -___ - -### `ResourceIdentifierInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5451](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5451) - -___ - -### `ReturnInfo` - -Stores information about returns connected to this order. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ReturnInfo* | -`items` | [*ReturnItem*](#returnitem)[] | -`returnDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`returnTrackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5458) - -___ - -### `ReturnItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`comment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`id` | [*Scalars*](#scalars)[*String*] | -`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | -`paymentState` | [*ReturnPaymentState*](../enums/types_graphql.returnpaymentstate.md) | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5465](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5465) - -___ - -### `ReturnItemDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`comment`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`customLineItemId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`lineItemId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5476](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5476) - -___ - -### `RevertStagedChanges` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5498](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5498) - -___ - -### `RevertStagedVariantChanges` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`variantId` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5502](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5502) - -___ - -### `Scalars` - -All built-in and custom scalars, mapped to their actual values - -#### Type declaration: - -Name | Type | Description | -:------ | :------ | :------ | -`BigDecimal` | *any* | The `BigDecimal` scalar type represents signed fractional values with arbitrary precision. | -`Boolean` | *boolean* | - | -`Country` | *any* | [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) country code. | -`Currency` | *any* | Represents a currency. Currencies are identified by their [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm) currency codes. | -`Date` | *any* | DateTime is a scalar value that represents an ISO8601 formatted date. | -`DateTime` | *any* | DateTime is a scalar value that represents an ISO8601 formatted date and time. | -`Float` | *number* | - | -`ID` | *string* | - | -`Int` | *number* | - | -`Json` | *any* | Raw JSON value | -`KeyReferenceInput` | *any* | A key that references a resource. | -`Locale` | *any* | Locale is a scalar value represented as a string language tag. | -`Long` | *any* | The `Long` scalar type represents non-fractional signed whole numeric values. Long can represent values between -(2^63) and 2^63 - 1. | -`SearchFilter` | *any* | Search filter. It is represented as a string and has th same format as in REST API: "field:filter_criteria" | -`SearchSort` | *any* | Search sort | -`String` | *string* | - | -`Time` | *any* | Time is a scalar value that represents an ISO8601 formatted time. | -`YearMonth` | *any* | YearMonth is a scalar value that represents an ISO8601 formatted year and month. | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5) - -___ - -### `ScoreShippingRateInput` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5519](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5519) - -___ - -### `ScoreShippingRateInputDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`score` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5525](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5525) - -___ - -### `SearchKeyword` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *SearchKeyword* | -`text` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5529](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5529) - -___ - -### `SearchKeywordInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`keywords` | [*CustomSuggestTokenizerInput*](#customsuggesttokenizerinput)[] | -`locale` | [*Scalars*](#scalars)[*Locale*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5534](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5534) - -___ - -### `SearchKeywords` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *SearchKeywords* | -`locale` | [*Scalars*](#scalars)[*Locale*] | -`searchKeywords` | [*SearchKeyword*](#searchkeyword)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5539](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5539) - -___ - -### `SetAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5551](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5551) - -___ - -### `SetCartAnonymousId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5557](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5557) - -___ - -### `SetCartBillingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5561](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5561) - -___ - -### `SetCartCountry` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`country`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Country*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5565](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5565) - -___ - -### `SetCartCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5581](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5581) - -___ - -### `SetCartCustomLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5586](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5586) - -___ - -### `SetCartCustomLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5592](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5592) - -___ - -### `SetCartCustomLineItemShippingDetails` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5600](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5600) - -___ - -### `SetCartCustomLineItemTaxAmount` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5605](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5605) - -___ - -### `SetCartCustomLineItemTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5610](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5610) - -___ - -### `SetCartCustomShippingMethod` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`shippingMethodName` | [*Scalars*](#scalars)[*String*] | -`shippingRate` | [*ShippingRateDraft*](#shippingratedraft) | -`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5615](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5615) - -___ - -### `SetCartCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5622](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5622) - -___ - -### `SetCartCustomerEmail` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5569](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5569) - -___ - -### `SetCartCustomerGroup` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5573) - -___ - -### `SetCartCustomerId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5577](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5577) - -___ - -### `SetCartDeleteDaysAfterLastModification` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5629](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5629) - -___ - -### `SetCartDiscountCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5633](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5633) - -___ - -### `SetCartDiscountCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5638](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5638) - -___ - -### `SetCartDiscountDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5645](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5645) - -___ - -### `SetCartDiscountKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5649](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5649) - -___ - -### `SetCartDiscountValidFrom` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5653) - -___ - -### `SetCartDiscountValidFromAndUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5657](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5657) - -___ - -### `SetCartDiscountValidUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5662](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5662) - -___ - -### `SetCartLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5666](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5666) - -___ - -### `SetCartLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5672](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5672) - -___ - -### `SetCartLineItemPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalPrice`? | [*Maybe*](#maybe)<[*BaseMoneyInput*](#basemoneyinput)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5680](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5680) - -___ - -### `SetCartLineItemShippingDetails` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraft*](#itemshippingdetailsdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5685](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5685) - -___ - -### `SetCartLineItemTaxAmount` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5690](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5690) - -___ - -### `SetCartLineItemTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5695](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5695) - -___ - -### `SetCartLineItemTotalPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTotalPrice`? | [*Maybe*](#maybe)<[*ExternalLineItemTotalPriceDraft*](#externallineitemtotalpricedraft)\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5700](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5700) - -___ - -### `SetCartLocale` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5705](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5705) - -___ - -### `SetCartShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5709) - -___ - -### `SetCartShippingMethod` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | -`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5713](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5713) - -___ - -### `SetCartShippingMethodTaxAmount` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxAmount`? | [*Maybe*](#maybe)<[*ExternalTaxAmountDraft*](#externaltaxamountdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5718](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5718) - -___ - -### `SetCartShippingMethodTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxRate`? | [*Maybe*](#maybe)<[*ExternalTaxRateDraft*](#externaltaxratedraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5722) - -___ - -### `SetCartShippingRateInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingRateInput`? | [*Maybe*](#maybe)<[*ShippingRateInputDraft*](#shippingrateinputdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5726](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5726) - -___ - -### `SetCartTotalTax` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalTaxPortions`? | [*Maybe*](#maybe)<[*TaxPortionDraft*](#taxportiondraft)[]\> | -`externalTotalGross`? | [*Maybe*](#maybe)<[*MoneyInput*](#moneyinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5730](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5730) - -___ - -### `SetCategoryAssetCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5735](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5735) - -___ - -### `SetCategoryAssetCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5742](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5742) - -___ - -### `SetCategoryAssetDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5751](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5751) - -___ - -### `SetCategoryAssetKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId` | [*Scalars*](#scalars)[*String*] | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5757](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5757) - -___ - -### `SetCategoryAssetSources` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5762](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5762) - -___ - -### `SetCategoryAssetTags` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5768](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5768) - -___ - -### `SetCategoryCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5774](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5774) - -___ - -### `SetCategoryCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5779](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5779) - -___ - -### `SetCategoryDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5786](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5786) - -___ - -### `SetCategoryExternalId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5790](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5790) - -___ - -### `SetCategoryKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5794](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5794) - -___ - -### `SetCategoryMetaDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5798](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5798) - -___ - -### `SetCategoryMetaKeywords` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5802](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5802) - -___ - -### `SetCategoryMetaTitle` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5806](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5806) - -___ - -### `SetCustomerCompanyName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`companyName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5810](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5810) - -___ - -### `SetCustomerCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5814](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5814) - -___ - -### `SetCustomerCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5819) - -___ - -### `SetCustomerDateOfBirth` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dateOfBirth`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Date*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5826) - -___ - -### `SetCustomerDefaultBillingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5830](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5830) - -___ - -### `SetCustomerDefaultShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5834](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5834) - -___ - -### `SetCustomerExternalId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5838](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5838) - -___ - -### `SetCustomerFirstName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`firstName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5842](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5842) - -___ - -### `SetCustomerGroup` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerGroup`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5846](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5846) - -___ - -### `SetCustomerGroupCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5850](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5850) - -___ - -### `SetCustomerGroupCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5855](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5855) - -___ - -### `SetCustomerGroupKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5862](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5862) - -___ - -### `SetCustomerKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5866](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5866) - -___ - -### `SetCustomerLastName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lastName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5870](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5870) - -___ - -### `SetCustomerLocale` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5874](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5874) - -___ - -### `SetCustomerMiddleName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`middleName`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5878](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5878) - -___ - -### `SetCustomerNumber` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5882](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5882) - -___ - -### `SetCustomerSalutation` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`salutation`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5886](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5886) - -___ - -### `SetCustomerStores` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`stores` | [*ResourceIdentifierInput*](#resourceidentifierinput)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5890](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5890) - -___ - -### `SetCustomerTitle` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`title`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5894](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5894) - -___ - -### `SetCustomerVatId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`vatId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5898](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5898) - -___ - -### `SetDiscountCodeCartPredicate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`cartPredicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5902](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5902) - -___ - -### `SetDiscountCodeCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5906](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5906) - -___ - -### `SetDiscountCodeCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5911](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5911) - -___ - -### `SetDiscountCodeDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5918](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5918) - -___ - -### `SetDiscountCodeMaxApplications` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`maxApplications`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5922](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5922) - -___ - -### `SetDiscountCodeMaxApplicationsPerCustomer` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`maxApplicationsPerCustomer`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Long*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5926](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5926) - -___ - -### `SetDiscountCodeName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5930](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5930) - -___ - -### `SetDiscountCodeValidFrom` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5934](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5934) - -___ - -### `SetDiscountCodeValidFromAndUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5938](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5938) - -___ - -### `SetDiscountCodeValidUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5943](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5943) - -___ - -### `SetInputTip` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`attributeName` | [*Scalars*](#scalars)[*String*] | -`inputTip`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5947](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5947) - -___ - -### `SetInventoryEntryCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5952](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5952) - -___ - -### `SetInventoryEntryCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5957](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5957) - -___ - -### `SetInventoryEntryExpectedDelivery` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`expectedDelivery`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5964](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5964) - -___ - -### `SetInventoryEntryRestockableInDays` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`restockableInDays`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5968](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5968) - -___ - -### `SetInventoryEntrySupplyChannel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`supplyChannel`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5972](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5972) - -___ - -### `SetKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5976](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5976) - -___ - -### `SetMyCartShippingMethod` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingMethod`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5980](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5980) - -___ - -### `SetOrderBillingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5984](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5984) - -___ - -### `SetOrderCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5996](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5996) - -___ - -### `SetOrderCustomLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6001](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6001) - -___ - -### `SetOrderCustomLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6007](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6007) - -___ - -### `SetOrderCustomLineItemShippingDetails` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraftType*](#itemshippingdetailsdrafttype)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6015](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6015) - -___ - -### `SetOrderCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6020](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6020) - -___ - -### `SetOrderCustomerEmail` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`email`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5988](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5988) - -___ - -### `SetOrderCustomerId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customerId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:5992](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L5992) - -___ - -### `SetOrderDeliveryAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | -`deliveryId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6027](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6027) - -___ - -### `SetOrderDeliveryItems` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deliveryId` | [*Scalars*](#scalars)[*String*] | -`items` | [*DeliveryItemDraftType*](#deliveryitemdrafttype)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6032](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6032) - -___ - -### `SetOrderLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6037](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6037) - -___ - -### `SetOrderLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6043](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6043) - -___ - -### `SetOrderLineItemShippingDetails` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`shippingDetails`? | [*Maybe*](#maybe)<[*ItemShippingDetailsDraftType*](#itemshippingdetailsdrafttype)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6051](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6051) - -___ - -### `SetOrderLocale` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6056](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6056) - -___ - -### `SetOrderNumber` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`orderNumber`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6060](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6060) - -___ - -### `SetOrderParcelItems` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`items` | [*DeliveryItemDraftType*](#deliveryitemdrafttype)[] | -`parcelId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6064](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6064) - -___ - -### `SetOrderParcelMeasurements` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`measurements`? | [*Maybe*](#maybe)<[*ParcelMeasurementsDraftType*](#parcelmeasurementsdrafttype)\> | -`parcelId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6069](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6069) - -___ - -### `SetOrderParcelTrackingData` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`parcelId` | [*Scalars*](#scalars)[*String*] | -`trackingData`? | [*Maybe*](#maybe)<[*TrackingDataDraftType*](#trackingdatadrafttype)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6074](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6074) - -___ - -### `SetOrderReturnPaymentState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`paymentState` | [*ReturnPaymentState*](../enums/types_graphql.returnpaymentstate.md) | -`returnItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6079](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6079) - -___ - -### `SetOrderReturnShipmentState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`returnItemId` | [*Scalars*](#scalars)[*String*] | -`shipmentState` | [*ReturnShipmentState*](../enums/types_graphql.returnshipmentstate.md) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6084](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6084) - -___ - -### `SetOrderShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address`? | [*Maybe*](#maybe)<[*AddressInput*](#addressinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6089](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6089) - -___ - -### `SetProductAssetCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`name` | [*Scalars*](#scalars)[*String*] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6093](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6093) - -___ - -### `SetProductAssetCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6104](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6104) - -___ - -### `SetProductAssetDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6117](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6117) - -___ - -### `SetProductAssetKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId` | [*Scalars*](#scalars)[*String*] | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6127](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6127) - -___ - -### `SetProductAssetSources` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sources`? | [*Maybe*](#maybe)<[*AssetSourceInput*](#assetsourceinput)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6136](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6136) - -___ - -### `SetProductAssetTags` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`assetId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`assetKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`tags`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6146](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6146) - -___ - -### `SetProductAttribute` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6156](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6156) - -___ - -### `SetProductAttributeInAllVariants` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6164](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6164) - -___ - -### `SetProductCategoryOrderHint` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`categoryId` | [*Scalars*](#scalars)[*String*] | -`orderHint`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6170](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6170) - -___ - -### `SetProductDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6176) - -___ - -### `SetProductDiscountDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6181](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6181) - -___ - -### `SetProductDiscountKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6192](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6192) - -___ - -### `SetProductDiscountValidFrom` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6196](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6196) - -___ - -### `SetProductDiscountValidFromAndUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validFrom`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6200) - -___ - -### `SetProductDiscountValidUntil` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`validUntil`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6205](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6205) - -___ - -### `SetProductDiscountedPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`discounted`? | [*Maybe*](#maybe)<[*DiscountedProductPriceValueInput*](#discountedproductpricevalueinput)\> | -`priceId` | [*Scalars*](#scalars)[*String*] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6185](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6185) - -___ - -### `SetProductImageLabel` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`imageUrl` | [*Scalars*](#scalars)[*String*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6209](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6209) - -___ - -### `SetProductKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6217](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6217) - -___ - -### `SetProductMetaAttributes` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6221](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6221) - -___ - -### `SetProductMetaDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaDescription`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6228](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6228) - -___ - -### `SetProductMetaKeywords` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaKeywords`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6233](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6233) - -___ - -### `SetProductMetaTitle` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`metaTitle`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6238) - -___ - -### `SetProductPriceCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`name` | [*Scalars*](#scalars)[*String*] | -`priceId` | [*Scalars*](#scalars)[*String*] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6243](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6243) - -___ - -### `SetProductPriceCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`priceId` | [*Scalars*](#scalars)[*String*] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6251](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6251) - -___ - -### `SetProductPrices` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`catalog`? | [*Maybe*](#maybe)<[*ReferenceInput*](#referenceinput)\> | -`prices` | [*ProductPriceDataInput*](#productpricedatainput)[] | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6261](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6261) - -___ - -### `SetProductSku` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6269](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6269) - -___ - -### `SetProductTaxCategory` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxCategory`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6275](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6275) - -___ - -### `SetProductVariantKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6279](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6279) - -___ - -### `SetProjectSettingsExternalOAuth` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`externalOAuth`? | [*Maybe*](#maybe)<[*ExternalOAuthDraft*](#externaloauthdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6286) - -___ - -### `SetProjectSettingsShippingRateInputType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingRateInputType`? | [*Maybe*](#maybe)<[*ShippingRateInputTypeInput*](#shippingrateinputtypeinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6290](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6290) - -___ - -### `SetSearchKeywords` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`searchKeywords` | [*SearchKeywordInput*](#searchkeywordinput)[] | -`staged`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6294](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6294) - -___ - -### `SetShippingMethodDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6299](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6299) - -___ - -### `SetShippingMethodKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6303](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6303) - -___ - -### `SetShippingMethodPredicate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`predicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6307](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6307) - -___ - -### `SetShoppingListAnonymousId` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6311](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6311) - -___ - -### `SetShoppingListCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6319](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6319) - -___ - -### `SetShoppingListCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6324](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6324) - -___ - -### `SetShoppingListCustomer` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`customer`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6315](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6315) - -___ - -### `SetShoppingListDeleteDaysAfterLastModification` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6331](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6331) - -___ - -### `SetShoppingListDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6335](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6335) - -___ - -### `SetShoppingListKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6339](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6339) - -___ - -### `SetShoppingListLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`name` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6343](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6343) - -___ - -### `SetShoppingListLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6349](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6349) - -___ - -### `SetShoppingListSlug` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`slug`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6357](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6357) - -___ - -### `SetShoppingListTextLineItemCustomField` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | -`value`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6361](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6361) - -___ - -### `SetShoppingListTextLineItemCustomType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`fields`? | [*Maybe*](#maybe)<[*CustomFieldInput*](#customfieldinput)[]\> | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | -`type`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`typeId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`typeKey`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6367](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6367) - -___ - -### `SetShoppingListTextLineItemDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`textLineItemId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6375](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6375) - -___ - -### `SetStoreLanguages` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`languages`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6380](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6380) - -___ - -### `SetStoreName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6384](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6384) - -___ - -### `SetTaxCategoryKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6388](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6388) - -___ - -### `SetType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6392](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6392) - -___ - -### `SetZoneDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6398](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6398) - -___ - -### `SetZoneKey` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6402](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6402) - -___ - -### `ShippingInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShippingInfo* | -`deliveries` | [*Delivery*](#delivery)[] | -`discountedPrice`? | [*Maybe*](#maybe)<[*DiscountedLineItemPrice*](#discountedlineitemprice)\> | -`price` | [*Money*](#money) | -`shippingMethod`? | [*Maybe*](#maybe)<[*ShippingMethod*](#shippingmethod)\> | -`shippingMethodName` | [*Scalars*](#scalars)[*String*] | -`shippingMethodRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | -`shippingMethodState` | [*ShippingMethodState*](../enums/types_graphql.shippingmethodstate.md) | -`shippingRate` | [*ShippingRate*](#shippingrate) | -`taxCategory`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | -`taxRate`? | [*Maybe*](#maybe)<[*TaxRate*](#taxrate)\> | -`taxedPrice`? | [*Maybe*](#maybe)<[*TaxedItemPrice*](#taxeditemprice)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6415](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6415) - -___ - -### `ShippingMethod` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6430](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6430) - -___ - -### `ShippingMethodDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`isDefault` | [*Scalars*](#scalars)[*Boolean*] | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`predicate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`taxCategory` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`zoneRates`? | [*Maybe*](#maybe)<[*ZoneRateDraft*](#zoneratedraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6448](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6448) - -___ - -### `ShippingMethodQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShippingMethodQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*ShippingMethod*](#shippingmethod)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6458](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6458) - -___ - -### `ShippingMethodUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addShippingRate`? | [*Maybe*](#maybe)<[*AddShippingMethodShippingRate*](#addshippingmethodshippingrate)\> | -`addZone`? | [*Maybe*](#maybe)<[*AddShippingMethodZone*](#addshippingmethodzone)\> | -`changeIsDefault`? | [*Maybe*](#maybe)<[*ChangeShippingMethodIsDefault*](#changeshippingmethodisdefault)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeShippingMethodName*](#changeshippingmethodname)\> | -`changeTaxCategory`? | [*Maybe*](#maybe)<[*ChangeShippingMethodTaxCategory*](#changeshippingmethodtaxcategory)\> | -`removeShippingRate`? | [*Maybe*](#maybe)<[*RemoveShippingMethodShippingRate*](#removeshippingmethodshippingrate)\> | -`removeZone`? | [*Maybe*](#maybe)<[*RemoveShippingMethodZone*](#removeshippingmethodzone)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetShippingMethodDescription*](#setshippingmethoddescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetShippingMethodKey*](#setshippingmethodkey)\> | -`setPredicate`? | [*Maybe*](#maybe)<[*SetShippingMethodPredicate*](#setshippingmethodpredicate)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6485](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6485) - -___ - -### `ShippingMethodsByCartInterface` - -A field to retrieve available shipping methods for a cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingMethodsByCart` | [*ShippingMethod*](#shippingmethod)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6467](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6467) - -___ - -### `ShippingMethodsByCartInterfaceShippingMethodsByCartArgs` - -A field to retrieve available shipping methods for a cart. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6472](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6472) - -___ - -### `ShippingRate` - -Shipping Rate - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShippingRate* | -`freeAbove`? | [*Maybe*](#maybe)<[*Money*](#money)\> | -`isMatching`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`price` | [*Money*](#money) | -`tiers` | [*ShippingRatePriceTier*](#shippingratepricetier)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6499](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6499) - -___ - -### `ShippingRateCartClassificationPriceTier` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6507](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6507) - -___ - -### `ShippingRateCartScorePriceTier` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6515](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6515) - -___ - -### `ShippingRateCartValuePriceTier` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6524](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6524) - -___ - -### `ShippingRateDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`freeAbove`? | [*Maybe*](#maybe)<[*MoneyDraft*](#moneydraft)\> | -`price` | [*MoneyDraft*](#moneydraft) | -`tiers`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierDraft*](#shippingratepricetierdraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6532](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6532) - -___ - -### `ShippingRateInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6538](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6538) - -___ - -### `ShippingRateInputDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`Classification`? | [*Maybe*](#maybe)<[*ClassificationShippingRateInputDraft*](#classificationshippingrateinputdraft)\> | -`Score`? | [*Maybe*](#maybe)<[*ScoreShippingRateInputDraft*](#scoreshippingrateinputdraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6542](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6542) - -___ - -### `ShippingRateInputLocalizedEnumValue` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShippingRateInputLocalizedEnumValue* | -`key` | [*Scalars*](#scalars)[*String*] | -`label`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`labelAllLocales` | [*LocalizedString*](#localizedstring)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6547](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6547) - -___ - -### `ShippingRateInputLocalizedEnumValueLabelArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6554](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6554) - -___ - -### `ShippingRateInputType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6559](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6559) - -___ - -### `ShippingRateInputTypeInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`CartClassification`? | [*Maybe*](#maybe)<[*CartClassificationInput*](#cartclassificationinput)\> | -`CartScore`? | [*Maybe*](#maybe)<[*CartScoreInput*](#cartscoreinput)\> | -`CartValue`? | [*Maybe*](#maybe)<[*CartValueInput*](#cartvalueinput)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6563](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6563) - -___ - -### `ShippingRatePriceTier` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6569](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6569) - -___ - -### `ShippingRatePriceTierCartClassificationDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`price` | [*MoneyDraft*](#moneydraft) | -`value` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6573](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6573) - -___ - -### `ShippingRatePriceTierCartScoreDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`price`? | [*Maybe*](#maybe)<[*MoneyDraft*](#moneydraft)\> | -`priceFunction`? | [*Maybe*](#maybe)<[*PriceFunctionDraft*](#pricefunctiondraft)\> | -`score` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6578](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6578) - -___ - -### `ShippingRatePriceTierCartValueDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`minimumCentAmount` | [*Scalars*](#scalars)[*Int*] | -`price` | [*MoneyDraft*](#moneydraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6584](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6584) - -___ - -### `ShippingRatePriceTierDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`CartClassification`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartClassificationDraft*](#shippingratepricetiercartclassificationdraft)\> | -`CartScore`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartScoreDraft*](#shippingratepricetiercartscoredraft)\> | -`CartValue`? | [*Maybe*](#maybe)<[*ShippingRatePriceTierCartValueDraft*](#shippingratepricetiercartvaluedraft)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6589](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6589) - -___ - -### `ShippingTarget` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6595](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6595) - -___ - -### `ShippingTargetDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressKey` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6600](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6600) - -___ - -### `ShippingTargetDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addressKey` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6605](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6605) - -___ - -### `ShippingTargetInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6610](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6610) - -___ - -### `ShoppingList` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6614](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6614) - -___ - -### `ShoppingListDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6643](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6643) - -___ - -### `ShoppingListDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`anonymousId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`customer`? | [*Maybe*](#maybe)<[*ResourceIdentifierInput*](#resourceidentifierinput)\> | -`deleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`lineItems`? | [*Maybe*](#maybe)<[*ShoppingListLineItemDraft*](#shoppinglistlineitemdraft)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`slug`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`textLineItems`? | [*Maybe*](#maybe)<[*TextLineItemDraft*](#textlineitemdraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6653](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6653) - -___ - -### `ShoppingListLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShoppingListLineItem* | -`addedAt` | [*Scalars*](#scalars)[*DateTime*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | -`deactivatedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`id` | [*Scalars*](#scalars)[*String*] | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | -`productId` | [*Scalars*](#scalars)[*String*] | -`productSlug`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`productType` | [*ProductTypeDefinition*](#producttypedefinition) | -`productTypeRef` | [*Reference*](#reference) | -`quantity` | [*Scalars*](#scalars)[*Int*] | -`variant`? | [*Maybe*](#maybe)<[*ProductVariant*](#productvariant)\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6666](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6666) - -___ - -### `ShoppingListLineItemDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`productId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sku`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`variantId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6693](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6693) - -___ - -### `ShoppingListLineItemNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6683](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6683) - -___ - -### `ShoppingListLineItemProductSlugArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6688](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6688) - -___ - -### `ShoppingListNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6638](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6638) - -___ - -### `ShoppingListQueryInterface` - -Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shoppingList`? | [*Maybe*](#maybe)<[*ShoppingList*](#shoppinglist)\> | -`shoppingLists` | [*ShoppingListQueryResult*](#shoppinglistqueryresult) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6703](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6703) - -___ - -### `ShoppingListQueryInterfaceShoppingListArgs` - -Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6709](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6709) - -___ - -### `ShoppingListQueryInterfaceShoppingListsArgs` - -Fields to access shopping lists. Includes direct access to a single list and searching for shopping lists. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`limit`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`offset`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | -`sort`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`where`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6715](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6715) - -___ - -### `ShoppingListQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ShoppingListQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*ShoppingList*](#shoppinglist)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6722](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6722) - -___ - -### `ShoppingListSlugArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6648](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6648) - -___ - -### `ShoppingListUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListLineItem*](#addshoppinglistlineitem)\> | -`addTextLineItem`? | [*Maybe*](#maybe)<[*AddShoppingListTextLineItem*](#addshoppinglisttextlineitem)\> | -`changeLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemQuantity*](#changeshoppinglistlineitemquantity)\> | -`changeLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListLineItemsOrder*](#changeshoppinglistlineitemsorder)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeShoppingListName*](#changeshoppinglistname)\> | -`changeTextLineItemName`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemName*](#changeshoppinglisttextlineitemname)\> | -`changeTextLineItemQuantity`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemQuantity*](#changeshoppinglisttextlineitemquantity)\> | -`changeTextLineItemsOrder`? | [*Maybe*](#maybe)<[*ChangeShoppingListTextLineItemsOrder*](#changeshoppinglisttextlineitemsorder)\> | -`removeLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListLineItem*](#removeshoppinglistlineitem)\> | -`removeTextLineItem`? | [*Maybe*](#maybe)<[*RemoveShoppingListTextLineItem*](#removeshoppinglisttextlineitem)\> | -`setAnonymousId`? | [*Maybe*](#maybe)<[*SetShoppingListAnonymousId*](#setshoppinglistanonymousid)\> | -`setCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListCustomField*](#setshoppinglistcustomfield)\> | -`setCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListCustomType*](#setshoppinglistcustomtype)\> | -`setCustomer`? | [*Maybe*](#maybe)<[*SetShoppingListCustomer*](#setshoppinglistcustomer)\> | -`setDeleteDaysAfterLastModification`? | [*Maybe*](#maybe)<[*SetShoppingListDeleteDaysAfterLastModification*](#setshoppinglistdeletedaysafterlastmodification)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetShoppingListDescription*](#setshoppinglistdescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetShoppingListKey*](#setshoppinglistkey)\> | -`setLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomField*](#setshoppinglistlineitemcustomfield)\> | -`setLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListLineItemCustomType*](#setshoppinglistlineitemcustomtype)\> | -`setSlug`? | [*Maybe*](#maybe)<[*SetShoppingListSlug*](#setshoppinglistslug)\> | -`setTextLineItemCustomField`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomField*](#setshoppinglisttextlineitemcustomfield)\> | -`setTextLineItemCustomType`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemCustomType*](#setshoppinglisttextlineitemcustomtype)\> | -`setTextLineItemDescription`? | [*Maybe*](#maybe)<[*SetShoppingListTextLineItemDescription*](#setshoppinglisttextlineitemdescription)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6730](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6730) - -___ - -### `SimpleAttributeTypeDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6758](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6758) - -___ - -### `StateQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *StateQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*State*](#state)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6804](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6804) - -___ - -### `Store` - -[BETA] Stores allow defining different contexts for a project. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6826) - -___ - -### `StoreNameArgs` - -[BETA] Stores allow defining different contexts for a project. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6841](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6841) - -___ - -### `StoreQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *StoreQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Store*](#store)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6846](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6846) - -___ - -### `StoreUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`setLanguages`? | [*Maybe*](#maybe)<[*SetStoreLanguages*](#setstorelanguages)\> | -`setName`? | [*Maybe*](#maybe)<[*SetStoreName*](#setstorename)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6854](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6854) - -___ - -### `StringAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6859](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6859) - -___ - -### `StringField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6865](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6865) - -___ - -### `StringType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6871](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6871) - -___ - -### `SubRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *SubRate* | -`amount` | [*Scalars*](#scalars)[*Float*] | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6876](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6876) - -___ - -### `SubRateDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`amount` | [*Scalars*](#scalars)[*Float*] | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6882](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6882) - -___ - -### `SyncInfo` - -Stores information about order synchronization activities (like export or import). - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *SyncInfo* | -`channel`? | [*Maybe*](#maybe)<[*Channel*](#channel)\> | -`channelRef` | [*Reference*](#reference) | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`syncedAt` | [*Scalars*](#scalars)[*DateTime*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6890](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6890) - -___ - -### `TaxCategory` - -Tax Categories define how products are to be taxed in different countries. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6910](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6910) - -___ - -### `TaxCategoryAddTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxRate` | [*TaxRateDraft*](#taxratedraft) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6924](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6924) - -___ - -### `TaxCategoryChangeName` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`name` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6928](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6928) - -___ - -### `TaxCategoryDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`key`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`name` | [*Scalars*](#scalars)[*String*] | -`rates`? | [*Maybe*](#maybe)<[*TaxRateDraft*](#taxratedraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6932](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6932) - -___ - -### `TaxCategoryQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TaxCategoryQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*TaxCategory*](#taxcategory)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6939](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6939) - -___ - -### `TaxCategoryRemoveTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxRateId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6947](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6947) - -___ - -### `TaxCategoryReplaceTaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`taxRate` | [*TaxRateDraft*](#taxratedraft) | -`taxRateId` | [*Scalars*](#scalars)[*String*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6951](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6951) - -___ - -### `TaxCategorySetDescription` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6956](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6956) - -___ - -### `TaxCategoryUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryAddTaxRate*](#taxcategoryaddtaxrate)\> | -`changeName`? | [*Maybe*](#maybe)<[*TaxCategoryChangeName*](#taxcategorychangename)\> | -`removeTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryRemoveTaxRate*](#taxcategoryremovetaxrate)\> | -`replaceTaxRate`? | [*Maybe*](#maybe)<[*TaxCategoryReplaceTaxRate*](#taxcategoryreplacetaxrate)\> | -`setDescription`? | [*Maybe*](#maybe)<[*TaxCategorySetDescription*](#taxcategorysetdescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetTaxCategoryKey*](#settaxcategorykey)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6960](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6960) - -___ - -### `TaxPortion` - -Represents the portions that sum up to the totalGross field of a TaxedPrice. The portions are calculated -from the TaxRates. If a tax rate has SubRates, they are used and can be identified by name. Tax portions -from line items that have the same rate and name will be accumulated to the same tax portion. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TaxPortion* | -`amount` | [*Money*](#money) | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`rate` | [*Scalars*](#scalars)[*Float*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7006](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7006) - -___ - -### `TaxPortionDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`amount` | [*MoneyInput*](#moneyinput) | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`rate` | [*Scalars*](#scalars)[*Float*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7013](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7013) - -___ - -### `TaxRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TaxRate* | -`amount` | [*Scalars*](#scalars)[*Float*] | -`country` | [*Scalars*](#scalars)[*Country*] | -`id`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`includedInPrice` | [*Scalars*](#scalars)[*Boolean*] | -`name` | [*Scalars*](#scalars)[*String*] | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`subRates` | [*SubRate*](#subrate)[] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7019](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7019) - -___ - -### `TaxRateDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`amount`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Float*]\> | -`country` | [*Scalars*](#scalars)[*Country*] | -`includedInPrice` | [*Scalars*](#scalars)[*Boolean*] | -`name` | [*Scalars*](#scalars)[*String*] | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`subRates`? | [*Maybe*](#maybe)<[*SubRateDraft*](#subratedraft)[]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7030](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7030) - -___ - -### `TaxedItemPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TaxedItemPrice* | -`totalGross` | [*Money*](#money) | -`totalNet` | [*Money*](#money) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6969](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6969) - -___ - -### `TaxedPrice` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TaxedPrice* | -`taxPortions` | [*TaxPortion*](#taxportion)[] | -`totalGross` | [*Money*](#money) | -`totalNet` | [*Money*](#money) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:6975](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L6975) - -___ - -### `TextAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7039](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7039) - -___ - -### `TextLineItem` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TextLineItem* | -`addedAt` | [*Scalars*](#scalars)[*DateTime*] | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsType*](#customfieldstype)\> | -`description`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`descriptionAllLocales`? | [*Maybe*](#maybe)<[*LocalizedString*](#localizedstring)[]\> | -`id` | [*Scalars*](#scalars)[*String*] | -`name`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`nameAllLocales` | [*LocalizedString*](#localizedstring)[] | -`quantity` | [*Scalars*](#scalars)[*Int*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7050](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7050) - -___ - -### `TextLineItemDescriptionArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7067](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7067) - -___ - -### `TextLineItemDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`custom`? | [*Maybe*](#maybe)<[*CustomFieldsDraft*](#customfieldsdraft)\> | -`description`? | [*Maybe*](#maybe)<[*LocalizedStringItemInputType*](#localizedstringiteminputtype)[]\> | -`name` | [*LocalizedStringItemInputType*](#localizedstringiteminputtype)[] | -`quantity`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Int*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7072](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7072) - -___ - -### `TextLineItemNameArgs` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7062](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7062) - -___ - -### `TimeAttribute` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7080](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7080) - -___ - -### `TimeAttributeDefinitionType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7086](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7086) - -___ - -### `TimeField` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7091](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7091) - -___ - -### `TimeType` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7097](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7097) - -___ - -### `TrackingData` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TrackingData* | -`carrier`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`isReturn` | [*Scalars*](#scalars)[*Boolean*] | -`provider`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`providerTransaction`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`trackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7102](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7102) - -___ - -### `TrackingDataDraftType` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`carrier`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`isReturn`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`provider`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`providerTransaction`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`trackingId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7111](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7111) - -___ - -### `Transaction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *Transaction* | -`amount` | [*Money*](#money) | -`id` | [*Scalars*](#scalars)[*String*] | -`interactionId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`state` | [*TransactionState*](../enums/types_graphql.transactionstate.md) | -`timestamp`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`type`? | [*Maybe*](#maybe)<[*TransactionType*](../enums/types_graphql.transactiontype.md)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7119](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7119) - -___ - -### `TransitionOrderCustomLineItemState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actualTransitionDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`customLineItemId` | [*Scalars*](#scalars)[*String*] | -`fromState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`toState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7144](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7144) - -___ - -### `TransitionOrderLineItemState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`actualTransitionDate`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | -`fromState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`lineItemId` | [*Scalars*](#scalars)[*String*] | -`quantity` | [*Scalars*](#scalars)[*Long*] | -`toState` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7152](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7152) - -___ - -### `TransitionOrderState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`force`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`state` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7160](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7160) - -___ - -### `TransitionProductState` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`force`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Boolean*]\> | -`state` | [*ReferenceInput*](#referenceinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7165](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7165) - -___ - -### `Type` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`type`? | [*Maybe*](#maybe)<[*TypeDefinition*](#typedefinition)\> | -`typeRef` | [*Reference*](#reference) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7170](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7170) - -___ - -### `TypeDefinition` - -Types define the structure of custom fields which can be attached to different entities throughout the platform. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7176](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7176) - -___ - -### `TypeDefinitionDescriptionArgs` - -Types define the structure of custom fields which can be attached to different entities throughout the platform. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7200](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7200) - -___ - -### `TypeDefinitionFieldDefinitionsArgs` - -Types define the structure of custom fields which can be attached to different entities throughout the platform. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`excludeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | -`includeNames`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*][]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7206](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7206) - -___ - -### `TypeDefinitionNameArgs` - -Types define the structure of custom fields which can be attached to different entities throughout the platform. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`acceptLanguage`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*][]\> | -`locale`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*Locale*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7194](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7194) - -___ - -### `TypeDefinitionQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *TypeDefinitionQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*TypeDefinition*](#typedefinition)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7211](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7211) - -___ - -### `UnpublishProduct` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7219](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7219) - -___ - -### `UpdateCartItemShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address` | [*AddressInput*](#addressinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7223](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7223) - -___ - -### `UpdateOrderItemShippingAddress` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`address` | [*AddressInput*](#addressinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7227](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7227) - -___ - -### `UpdateOrderSyncInfo` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`channel` | [*ResourceIdentifierInput*](#resourceidentifierinput) | -`externalId`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | -`syncedAt`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*DateTime*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7231](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7231) - -___ - -### `Versioned` - -Versioned object have an ID and version and modification. Every update of this object changes it's version. - -#### Type declaration: - -Name | Type | -:------ | :------ | -`createdAt` | [*Scalars*](#scalars)[*DateTime*] | -`createdBy`? | [*Maybe*](#maybe)<[*Initiator*](#initiator)\> | -`id` | [*Scalars*](#scalars)[*String*] | -`lastModifiedAt` | [*Scalars*](#scalars)[*DateTime*] | -`lastModifiedBy`? | [*Maybe*](#maybe)<[*Initiator*](#initiator)\> | -`version` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7238](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7238) - -___ - -### `WhitespaceSuggestTokenizerInput` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`dummy`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7247](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7247) - -___ - -### `Zone` - -Zones allow defining ShippingRates for specific Locations. - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7252](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7252) - -___ - -### `ZoneLocation` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`country` | [*Scalars*](#scalars)[*Country*] | -`state`? | [*Maybe*](#maybe)<[*Scalars*](#scalars)[*String*]\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7266](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7266) - -___ - -### `ZoneQueryResult` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ZoneQueryResult* | -`count` | [*Scalars*](#scalars)[*Int*] | -`offset` | [*Scalars*](#scalars)[*Int*] | -`results` | [*Zone*](#zone)[] | -`total` | [*Scalars*](#scalars)[*Long*] | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7271](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7271) - -___ - -### `ZoneRate` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`__typename`? | *ZoneRate* | -`shippingRates` | [*ShippingRate*](#shippingrate)[] | -`zone`? | [*Maybe*](#maybe)<[*Zone*](#zone)\> | -`zoneRef`? | [*Maybe*](#maybe)<[*Reference*](#reference)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7279](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7279) - -___ - -### `ZoneRateDraft` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`shippingRates`? | [*Maybe*](#maybe)<[*ShippingRateDraft*](#shippingratedraft)[]\> | -`zone` | [*ResourceIdentifierInput*](#resourceidentifierinput) | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7286](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7286) - -___ - -### `ZoneUpdateAction` - -#### Type declaration: - -Name | Type | -:------ | :------ | -`addLocation`? | [*Maybe*](#maybe)<[*AddZoneLocation*](#addzonelocation)\> | -`changeName`? | [*Maybe*](#maybe)<[*ChangeZoneName*](#changezonename)\> | -`removeLocation`? | [*Maybe*](#maybe)<[*RemoveZoneLocation*](#removezonelocation)\> | -`setDescription`? | [*Maybe*](#maybe)<[*SetZoneDescription*](#setzonedescription)\> | -`setKey`? | [*Maybe*](#maybe)<[*SetZoneKey*](#setzonekey)\> | - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:7291](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L7291) - - - -### `CategoryData` - -* **CategoryData** - -### `categories` - -Defined in: [packages/shopify/api-client/src/api/getCategory/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getCategory/index.ts#L9) - - - -### `GetMeParams` - -* **GetMeParams** - -### `customer` - -Defined in: [packages/shopify/api-client/src/api/getMe/index.ts:7](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getMe/index.ts#L7) - - - -### `OrdersData` - -* **OrdersData** - -### `me` - -Defined in: [packages/shopify/api-client/src/api/getMe/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getMe/index.ts#L12) - - - -### `ProductData` - -* **ProductData** - -### `products` - -Defined in: [packages/shopify/api-client/src/api/getProduct/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/getProduct/index.ts#L9) - - - - -### `UpdateCartParams` - -* **UpdateCartParams** - -### `actions` - -Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:11](https://github.com/vuestorefront/vue-storefront/blob/13ab3c2d64/packages/shopify/api-client/src/api/updateCart/index.ts#L11) - -___ - -### `id` - -Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:9](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L9) - -___ - -### `version` - -Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:10](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L10) - -___ - -### `versionFallback` - -Defined in: [packages/shopify/api-client/src/api/updateCart/index.ts:12](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/api/updateCart/index.ts#L12) - - - -### `BaseSearch` - -* **BaseSearch** - - ↳ [*ProductWhereSearch*](#interfacestypes_apiproductwheresearchmd) - - ↳ [*CategoryWhereSearch*](#interfacestypes_apicategorywheresearchmd) - - ↳ [*OrderWhereSearch*](#interfacestypes_apiorderwheresearchmd) - -### `limit` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) - -___ - -### `offset` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) - -___ - -### `sort` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) - - - -### `CartData` - -* *Omit*<[*CartDraft*](#cartdraft), *currency*\> - - ↳ **CartData** - -### `anonymousId` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:827](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L827) - -___ - -### `billingAddress` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:816](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L816) - -___ - -### `country` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:811](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L811) - -___ - -### `currency` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:83](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L83) - -___ - -### `custom` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:813](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L813) - -___ - -### `customLineItems` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:824](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L824) - -___ - -### `customerEmail` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:814](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L814) - -___ - -### `customerGroup` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:830](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L830) - -___ - -### `customerId` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:825](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L825) - -___ - -### `deleteDaysAfterLastModification` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:820](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L820) - -___ - -### `discountCodes` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:822](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L822) - -___ - -### `externalTaxRateForShippingMethod` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:826](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L826) - -___ - -### `inventoryMode` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:812](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L812) - -___ - -### `itemShippingAddresses` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:821](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L821) - -___ - -### `lineItems` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:823](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L823) - -___ - -### `locale` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:819](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L819) - -___ - -### `origin` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:832](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L832) - -___ - -### `shippingAddress` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:815](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L815) - -___ - -### `shippingMethod` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:817](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L817) - -___ - -### `shippingRateInput` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:831](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L831) - -___ - -### `store` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:833](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L833) - -___ - -### `taxCalculationMode` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:829](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L829) - -___ - -### `taxMode` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:818](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L818) - -___ - -### `taxRoundingMode` - -Defined in: [packages/shopify/api-client/src/types/GraphQL.ts:828](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/graphQL.ts#L828) - - - -### `CategoryWhereSearch` - -* [*BaseSearch*](#interfacestypes_apibasesearchmd) - - ↳ **CategoryWhereSearch** - -### `catId` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:68](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L68) - -___ - -### `limit` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) - -___ - -### `offset` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) - -___ - -### `slug` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:69](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L69) - -___ - -### `sort` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) - - - -### `Filter` - -* **Filter** - -### `name` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:49](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L49) - -___ - -### `type` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:48](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L48) - -___ - -### `value` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:50](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L50) - - - -### `FilterOption` - -* **FilterOption** - -### `label` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:62](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L62) - -___ - -### `selected` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:64](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L64) - -___ - -### `value` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:63](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L63) - - - -### `FlowOptions` - -* **FlowOptions** - -### `currentToken` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:77](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L77) - -___ - -### `customerCredentials` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:78](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L78) - -___ - -### `requireUserSession` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:79](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L79) - - - -### `OrderWhereSearch` - -* [*BaseSearch*](#interfacestypes_apibasesearchmd) - - ↳ **OrderWhereSearch** - -### `id` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:73](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L73) - -___ - -### `limit` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) - -___ - -### `offset` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) - -___ - -### `sort` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) - - - -### `ProductWhereSearch` - -* [*BaseSearch*](#interfacestypes_apibasesearchmd) - - ↳ **ProductWhereSearch** - -### `catId` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:54](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L54) - -___ - -### `filters` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:58](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L58) - -___ - -### `id` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:57](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L57) - -___ - -### `limit` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[limit](#limit) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:29](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L29) - -___ - -### `offset` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[offset](#offset) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:30](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L30) - -___ - -### `skus` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:55](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L55) - -___ - -### `slug` - -Defined in: [packages/shopify/api-client/src/types/Api.ts:56](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L56) - -___ - -### `sort` - -Inherited from: [BaseSearch](#interfacestypes_apibasesearchmd).[sort](#sort) - -Defined in: [packages/shopify/api-client/src/types/Api.ts:31](https://github.com/vuestorefront/shopify/blob/master/packages/api-client/src/types/Api.ts#L31) - - - - -### `ClientInstance` - -* *ShopifyBuy* - - ↳ **ClientInstance** - -### `fetchProducts` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js - -___ - -### `fetchSingleProductByID` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:39 - -___ - -### `fetchSingleProductByHandle` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:36 - -___ - -### `fetchAllCollectonsWithAllProducts` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:32 - -___ - -### `fetchCollectonWithProducts` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:38 - -___ - -### `InitializeCart` - -Defined in: node_modules/shopify-buy/index.unoptimized.umd.min.js:35 - -___ diff --git a/packages/core/docs/shopify/auth-middleware.md b/packages/core/docs/shopify/auth-middleware.md deleted file mode 100644 index 8b29e04101..0000000000 --- a/packages/core/docs/shopify/auth-middleware.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/core/docs/shopify/authorization-strategy.md b/packages/core/docs/shopify/authorization-strategy.md deleted file mode 100644 index 07dc81b7d9..0000000000 --- a/packages/core/docs/shopify/authorization-strategy.md +++ /dev/null @@ -1,5 +0,0 @@ -# Authorization - -We are following [HTTP Authorization guide](https://shopify.dev/apps/auth) from Shopify documentation and using their library - [JS buy SDK](https://github.com/Shopify/js-buy-sdk). A token is stored in the cookie as we access it on both the client and server-side. - -You can read more about Authentication in Vue Storefront [here](/guide/authentication.html). \ No newline at end of file diff --git a/packages/core/docs/shopify/checkout.md b/packages/core/docs/shopify/checkout.md deleted file mode 100644 index 70bde9cd7f..0000000000 --- a/packages/core/docs/shopify/checkout.md +++ /dev/null @@ -1,171 +0,0 @@ -# Checkout Flow -This tutorial shows a Shopify integrator how Storefront API is used in the lifecycle of an order, including creating - cart, preparing for checkout, and more order-related tasks. - -#### Before you begin -Let's get to know more about the Shopify Storefront API. Storefront API gives you full creative control to add Shopify -buying experiences anywhere your customers are, including websites, apps, and video games. Access product information, create customers' orders, and check out purchases programmatically. - -The Storefront API is composed of the following: - -**Customers** - Information about customers in Shopify, such as their shipping address and display name. - -**Nodes** - Set of Shopify Storefront API root nodes, including Checkouts, Collections, Orders, Payments, etc. See a -complete list of nodes [here.](https://shopify.dev/docs/storefront-api/reference/object) - -**Shops** - Shop information such as billing address, currency code, and domain. - -Using the Storefront API, you can: - -* Fetch data about a single product or a collection of products to display on any website or device. -* Create unique checkout experiences with full control over the shopping cart. -* Create new customers or modify existing ones, including address information. -* Allow customers to select unique product options. - -This **5-step** tutorial generally takes 30 minutes to understand the complete lifecycle of checkout. - -### Step 1: Get Product -Retrieve the product information from Shopify store. Use the `useProduct` composable method to retrieve products by -handle (URL key) or product id. - -This example fetch a single product by handle. -```typescript -import { computed } from '@vue/composition-api'; -import { onSSR } from '@vue-storefront/core'; -import { useProduct, productGetters } from '@vue-storefront/shopify'; - -export default { - setup(props, context) { - const { products, search } = useProduct('products'); - const { slug } = context.root.$route.params; - - const product = computed(() => productGetters.getFiltered(products.value)); - - onSSR(async () => { - await search({ slug }); - }); - - return { - product - }; - } -}; -``` - -* [useProduct](/shopify/use-product) provides additional information about the product. - -### Step 2: Add to cart -This step shows how to add a product to the cart. To add a product to a cart, you must provide product object and the - quantity to `addToCart` method of `useCart` composable. - -```typescript -import { useCart } from '@vue-storefront/shopify'; -import { ref } from '@vue/composition-api'; - -export default { - setup() { - - const qty = ref(1); - const { addItem } = useCart(); - - return { - addItem, - qty - }; - } -}; -``` -Now, add the following line on your "Add to cart" button to trigger the `addToCart` event. - -``` -@click="addItem(product, parseInt(qty))" -``` - -### Step 3: List cart item -Now that all the items have been added to the cart, then retrieve the cart to review all cart items and summary. -Use `loadCart` method of `useCart` to get the cart from Shop. - -```javascript -import { onSSR } from '@vue-storefront/core'; -import { useCart } from '@vue-storefront/shopify'; - -export default { - setup() { - const { cart, loadCart } = useCart(); - - onSSR(async () => { - await loadCart(); - }); - - return { - cart - }; - } -}; -``` - -* [useCart](/shopify/use-cart) provides additional information about the cart. - -### Step 4: Go to Checkout -In this step, redirect the customer to Shopify checkout page to complete the order. - -First, obtain the checkout URL from the cart object. - -```javascript - const { cart, loadCart } = useCart(); - - const checkoutUrl = computed(() => cartGetters.getCheckoutUrl(cart.value)); - - onSSR(async () => { - await loadCart(); - }); - - return { - cart, - checkoutUrl - }; -``` - -The checkout URL looks like the following: -```javascript -const checkoutUrl = 'https://shopify-pwa.aureatelabs.com/40719024288/checkouts/9882505fd32f9432c5b72e213ed0d7b8'; -``` - -Now, add the following link to the cart page. - -```Vue - -``` - -When you submit payment information, Shopify creates an order and sends an order confirmation to the customer. - -### Step 5: Thank you page -Thank you page appears on placed order successfully but the customer still on Shopify website. -You've to edit the thank you page and following code to redirect them back to the frontend. -```javascript -const wrapper = document.querySelectorAll("header.main__header")[0].querySelectorAll(".logo"); -if (wrapper) { - const a = document.createElement('a'); - a.appendChild(document.createTextNode("Back To Home")); - a.title = "Back To Home"; - a.classList.add('btn'); - a.classList.add('back-btn'); - a.href = "https://shopify-pwa.aureatelabs.com/"; - wrapper[0].appendChild(a); -} - -setTimeout(function(){ - window.location.href="https://shopify-pwa.aureatelabs.com/"; -}, 5000); -``` -You can edit the above code as per your needs. - -Shopify has a special section in the admin where you can enter that code so that it'll apply to the Thank You page. -It's called **"Additional Scripts."** - -If you navigate to **Settings > Checkout** and scroll to the bottom of the Order Processing section, you'll find a -text box where you can paste code into. diff --git a/packages/core/docs/shopify/composables.md b/packages/core/docs/shopify/composables.md deleted file mode 100755 index c6ac3da0d7..0000000000 --- a/packages/core/docs/shopify/composables.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -platform: Shopify -platform_pkg: shopify ---- - - - - -::: slot example-product-search -```js -import { useProduct } from '@vue-storefront/shopify' - -const { products, search, loading } = useProduct() - -search({ id: '12345' }) -``` -::: - -::: slot example-product-search-getters -```js -import { useProduct, productGetters } from '@vue-storefront/shopify' - -const { products, search } = useProduct() - -search({ id: '12345' }) - -const attributes = computed(() => productGetters.getAttributes(product.value[0])) -``` -::: diff --git a/packages/core/docs/shopify/configuration.md b/packages/core/docs/shopify/configuration.md deleted file mode 100644 index 2b4f99a1b1..0000000000 --- a/packages/core/docs/shopify/configuration.md +++ /dev/null @@ -1,69 +0,0 @@ -# Configuration - - -Shopify configuration is located in two places: - -- nuxt.config.js is a place where you're configuring properties related only to the frontend part of your application. - -- middleware.config.js is a place where you're configuring the Shopify SDK and extensions. You will put there API keys, integration configurations, custom GraphQL queries, and new API endpoints. - -## Nuxt Shopify configuration - -```js -// nuxt.config.js -['@vue-storefront/shopify/nuxt', { - i18n: { - useNuxtI18nConfig: true - } -}] -``` - -- `useNuxtI18nConfig` - when enabled, `@vue-storefront/shopify/nuxt` package will use `i18n` config object provided in `nuxt.config.js`. Otherwise, the `i18n` config should be declared directly inside this package configuration. You can read more about it on [Internationalization](https://docs.vuestorefront.io/v2/advanced/internationalization.html) page - -## Middleware Shopify configuration - -You can read more about middleware configuration in Vue Storefront [here](../advanced/server-middleware.md#configuration) - -```js -// middleware.config.js -module.exports = { - integrations: { - shopify: { - location: '@vue-storefront/shopify-api/server', - configuration: { - api: { - domain: 'YOUR SHOPIFY STORE DOMAIN', - storefrontAccessToken: 'SHOPIFY STORE API KEY' - }, - currency: 'USD', - country: 'US' - } - } - } -}; - -``` - -### `api` - -- `domain` - link to your Shopify storefront. -- `storefrontAccessToken` - Shopify private app API key. Visit [Shopify documentation](https://shopify.dev/tutorials/generate-api-credentials) for more details about creating an API key - -### `acceptLanguage` - -An array of possible locales Shopify will use. You can read more about Shopify internationalization configuration [here](https://shopify.dev/tutorials/review-theme-store-requirements-internationalization) - -```js -acceptLanguage: ['en-gb', 'en-us'] -``` - -### `languageMap` - -If you supply a `languageMap` during setup, this will be used to map a locale to the accepted languages. - -```js -languageMap: { - 'en-gb': ['en-gb', 'en-us'], - 'en-us': ['en-us', 'en-gb'], -} -``` diff --git a/packages/core/docs/shopify/feature-list.md b/packages/core/docs/shopify/feature-list.md deleted file mode 100644 index 993a6dc8cc..0000000000 --- a/packages/core/docs/shopify/feature-list.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -sidebar: false ---- -# Ecommerce and theme features - -The following document lists the most important (but not all!) features of [Shopify integration with Vue Storefront 2](https://www.vuestorefront.io/shopify) offering. - - -## eCommerce integration and theme - -### Product Tile - - - -1. Display product image -2. Display product regular/sale price -3. Display product name -4. Display product catalog discounts -5. Quick Add to Cart (with default variant) - - -### Product Listing Page - - - - -1. Products - 1. Display a list of products for a specific collection - 2. Display number of total products found - 3. Display Breadcrumbs -2. Pagination - 1. Display pagination - 2. Change the number of items per page -3. Sorting - 1. Sort latest - 2. Sort by Title: A to Z - 3. Sort by Title: Z to A - 4. Sort by Price: Low to high - 5. Sort by Price: High to low - 6. Sorting is reflected in the URL -4. UI - 1. Horizontal/Vertical product list switch - -### Product Details Page - - - -1. Product - 1. Display master variant - 2. Display product name - 3. Display product price - 4. Display discounted price - 5. Display product description -2. Product Variants - 1. Display product variants - 2. Change variant - 3. Variant change is reflected in the URL -3. Product Gallery - 1. Show all product images as thumbnails - 2. Show one big product image - 3. Change big product image with one of thumbnails - 4. Change active variant image on variant selection -4. Add to cart - 1. Add product variant to cart - 2. Change quantity -5. Suggested products - 1. Display a list of suggested products from the same collection - -### Cart drawer - - - - - -- Product - - Display product name - - Display product price - - Add product to cart - - Remove product from cart - - Confirmation on remove from cart - - Change product Quantity - - Empty cart -- Summary - - Show total price - -### User Authentication - - - -- Log in with email and password -- Create a new account -- Reset password - -### User Profile - - - - - - - -- My Profile (Personal Details) - - Change firstname - - Change lastname - - Change password with adding confirm password -- Address book - - Delete address - - Change address - - View all address -- Order History - - See Order Status - - See Order Id - - See Order Price - - Download Orders - - Order tracking - - Order address -- Log Out - -### Error page - - - -- Error Page for 404/server errors - -## Content Management System -1. Out of the box components available in the CMS - - Accordion - - Alert - - Banner - - Call to action - - Carousel - - Editorial (renders HTML) - - Footer - - Gallery - - Grid - - Heading - - Hero - - Link - - List - - Navigation list - - Product Card - - Product Slider - - Steps - - Tabs -## Internationalization -1. Frontend translations based on `nuxt-i18n` - 1. String translations based on keys - 2. Currencies translation - 3. Automatic routes generation and custom paths - 4. Search Engine Optimization - 5. Lazy-loading of translation messages - 6. Redirection based on auto-detected language - 7. Different domain names for different languages -2. eCommerce platform internationalization connected with `nuxt-i18n` -3. CMS platform internationalization connected with `nuxt-i18n` - -## Progressive Web App -1. Automatic Web Manifest generation -2. Automatic icons scaling -3. Static Assets Caching (partial offline support) -4. Add to Home Screen - -## Performance -- Two output modes - - Modern mode without polyfills for modern browsers (20-30% smaller) - - Legacy mode for old browsers (minority) -- Server-Side Rendering -- Server-Side Tag-based Cache -- Majority of JS code is executed on the server side to keep small bundles -- Automatic route-based code splitting (incl. CSS) -- Static assets client-side caching via Service Worker -- CSS Purging -- Preconnects to CDNs/Google Fonts -- HTTP/2 Push -- Lazy Hydration of below-the-fold elements - -## Middleware -- Server-side Express API middleware diff --git a/packages/core/docs/shopify/getting-started.md b/packages/core/docs/shopify/getting-started.md deleted file mode 100755 index 7a3ee3a60f..0000000000 --- a/packages/core/docs/shopify/getting-started.md +++ /dev/null @@ -1,30 +0,0 @@ -# Getting started - -## Before dive into the Shopify integration with Vue Storefront 2 - -If you [generated your project from our CLI](/general/installation.html), your shop will be connected to our [demo store](https://shopify-pwa.aureatelabs.com/). - -If you haven't yet generated your project and just to play with Vue Storefront integration with Shopify and understand its capabilities, the first thing you should do after setting it up is changing the credentials to connect to your Shopify store. - -First, you need to initiate the fresh project copy from [Vue Storefront CLI](https://docs.vuestorefront.io/v2/general/installation.html). - -Then set up your credentials in `middleware.config.js`. Replace ```SHOPIFY STORE DOMAIN``` and ```SHOPIFY STORE ACCESS TOKEN``` with yours - -```js -// middleware.config.js -module.exports = { - integrations: { - shopify: { - location: '@vue-storefront/shopify-api/server', - configuration: { - api: { - domain: '', - storefrontAccessToken: '' - }, - currency: 'USD', - country: 'US' - } - } - } -}; -``` diff --git a/packages/core/docs/shopify/maintainers.md b/packages/core/docs/shopify/maintainers.md deleted file mode 100644 index d084196126..0000000000 --- a/packages/core/docs/shopify/maintainers.md +++ /dev/null @@ -1,22 +0,0 @@ -# Maintainers and support - -The Shopify integration is developed and maintained by the core partner **[Aureate Labs](https://aureatelabs.com/)** and **Vue Storefront core team**. - -           - -## Support - -In case of any questions don't hesitate reaching out to the maintainers on [Discord](https://discord.vuestorefront.io) and visiting `#shopify` channel. You can also [hire the core team](https://www.vuestorefront.io/support) to support you in delivering your project. - - - diff --git a/packages/core/docs/shopify/use-cart.md b/packages/core/docs/shopify/use-cart.md deleted file mode 100644 index 6fbfa3cc10..0000000000 --- a/packages/core/docs/shopify/use-cart.md +++ /dev/null @@ -1,132 +0,0 @@ -# `useCart` - -`useCart` composition API function is responsible, as its name suggests, for interactions with cart in your eCommerce. This function returns following values: - -## Features - -`useCart` composable can be used to: - -* load cart information, -* add, update and remove items in the cart, -* applying and removing coupons, -* checking if product is already added to the cart. - -## API - -- `cart` - the main data object that holds the cart structure in platform specific structure - -```ts -export type Maybe = T | null; - -export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Json: any; - Array: any; -}; - -export type Cart = { - __typename?: 'Cart'; - id: Maybe; - ready?: Maybe; - requiresShipping?: Maybe; - note?: Maybe; - paymentDueV2?: Maybe; - webUrl?: Maybe; - orderStatusUrl?: Maybe; - taxExempt?: Maybe; - taxesIncluded?: Maybe; - currencyCode: Maybe; - paymentDueV2?: Maybe; - totalTaxV2?: Maybe; - lineItemsSubtotalPrice?: Maybe; - subtotalPriceV2?: Maybe; - totalPriceV2?: Maybe; - completedAt: Maybe; - createdAt: Maybe; - updatedAt?: Maybe; - email: Maybe; - discountApplications: Maybe; - appliedGiftCards: Maybe; - shippingAddress?: Maybe; - shippingLine?: Maybe; - customAttributes: Maybe; - order?: Maybe; - lineItems?: Maybe; - refetchQuery: Maybe; - errors: Maybe; - userErrors?: Maybe; -} -``` -- `load` - function required to fetch cart from a server or create a brand new if it doesn't exist. -- `addItem` - Adds cart items to an existing checkout. - - It takes two parameters: - - `product` (Object) The identifier of the product variant for the cart item. - - `quantity` (Int) The quantity of the cart item. -- `updateItemQty` - Updates line items on an existing checkout. - - It takes two parameters: - - `product` (Object) The identifier of the product variant for the cart item. - - `quantity` (Int) The quantity of the cart item. -- `removeItem` - function for removing a product that currently is in the cart. - - It takes one parameter: - - `product` (Object) The identifier of the product variant for the cart item. -- `isInCart` - function for checking if a product is currently in the cart. -- `clear` - function for removing all items currently stored in the cart. -- `coupon` - reactive data object containing coupon details -- `applyCoupon` - function for applying the coupon to cart - - It takes one parameter: - - `coupon` (String) The coupon string. -- `removeCoupon` - function for removing coupon applied to the cart. -- `loading` - a reactive object containing information about loading state of the cart. - -## cartGetters - -- `getTotals` - Return an object cart totals - - `total` (float) - The value of cart total - - `subtotal` (float) - The value of cart subtotal. -- `getShippingPrice` - To retrieve shipping price. -- `getItems` - Return list of cart items. -- `getItemName` - Accept one parameter `product` and return the name of product. -- `getItemImage` - Accept one parameter `product` and return the image source URL of product. -- `getItemPrice` - Accept one parameter `product` and return the price of the product. -- `getItemQty` - Accept one parameter `product` and return the quantity of product. -- `getItemAttributes` - Accept two parameter, `product` and `filterByAttributeName` (Optional). -- `getItemSku` - Accept one parameter `product` and return the sku of product. -- `getFormattedPrice` Accept one parameter `product` and return the product's price with a currency symbol. -- `getTotalItems` - To get the total numbers of cart items -- `getCheckoutUrl`- To retrieve the Shopify checkout URL. i.e. `https://shopify-pwa.aureatelabs.com/40719024288/checkouts/9882505fd32f9432c5b72e213ed0d7b8` -- `hasItemAttributes` - Check if product contains variant or not. -- `getCoupons` - Yet to be implement. Will get applied coupons array. -- `getDiscounts` - Yet to be implement. Will get applied coupons discounts array. - -## Examples -Cart composable is a service designed for supporting a single cart and access it everywhere with ease. - -Initialization of a cart requires using `load()` when calling `useCart()` for the first time. - -Keep in mind that upon execution of `load`, the cart will get loaded only once. Note that all the composables uses same load method, so you need to use it using alias. load: loadCart. - -```javascript -import { useCart, cartGetters } from '@vue-storefront/shopify'; -import { onSSR } from '@vue-storefront/core' - -export default { - setup() { - const { cart, removeItem, updateItemQty, load } = useCart(); - - onSSR(async () => { - await load(); - }) - - return { - removeItem, - updateItemQty, - products: computed(() => cartGetters.getItems(cart.value)), - totals: computed(() => cartGetters.getTotals(cart.value)), - totalItems: computed(() => cartGetters.getTotalItems(cart.value)) - } - } -} -``` diff --git a/packages/core/docs/shopify/use-category.md b/packages/core/docs/shopify/use-category.md deleted file mode 100644 index e59d0f00db..0000000000 --- a/packages/core/docs/shopify/use-category.md +++ /dev/null @@ -1,71 +0,0 @@ -# useCategory composable - -`useCategory` composition API function allows loading the categories. This function returns the following values: - -- `search` - a primary querying function that is used to query products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. - - - The `params` has the following options: - - `id` (String) The id of the collection to fetch. - - `slug` (String) The handle of the collection to fetch. - - `customQuery` (Object) An object specifying the query data containing zero or more of: - - `first` (Int) The relay `first` param. This specifies page size. - - `sortKey` (String) The key to sorting results by. Available values are ID, TITLE, UPDATED_AT - - `query` (String) A query string. - - `reverse` (Boolean) Whether or not to reverse the sort order of the results - - `withProducts` (Boolean) Fetch collections, including products. -- `categories: Category[]` - a main data object that contains an array of categories fetched by `search` method -```typescript -export type Category = { - __typename?: 'Category'; - id: string; - handle: string; - title: string; - image: string; - description: string; - descriptionHtml: string; - updatedAt: string; - products: array; -} -``` -- `loading` - a reactive object containing information about the loading state of your `search` method - - -## Examples - -Fetch all collections in the shop, including products. - -```javascript -import { useCategory } from '@vue-storefront/shopify'; -import { onSSR } from '@vue-storefront/core' - -export default { - setup() { - const { categories, search, loading } = useCategory('menu-categories'); - - onSSR(async () => { - await search({}); - }); - - return { - categories, - loading - } - } -} -``` - -Fetch a single collection by slug on the shop, including products. - -```javascript - - const { categories, search } = useCategory('categories'); - - onSSR(async () => { - await search({ slug: 'sale' }); - }); - - return { - categories - }; - -``` diff --git a/packages/core/docs/shopify/use-content.md b/packages/core/docs/shopify/use-content.md deleted file mode 100644 index 2219edbdf2..0000000000 --- a/packages/core/docs/shopify/use-content.md +++ /dev/null @@ -1,63 +0,0 @@ -# useContent composable - -`useContent` composition API function allows loading of the CMS pages. This function returns the following values: - -- `search` - the main function that is used to fetch a cms page from the eCommerce platform and populate the `content` object with the result. Every time you invoke this function API request is made. This method accepts a single `slug` string. -- `content: Content[]` - a main data object that contains an array of page data fetched by `loadPage` method. -```typescript -export type Content = { - id: string; - name: string; - body: string; - handle: string; -} -``` -- `loading` - a reactive object containing information about the loading state of your `loadPage` method. - -## contentGetters - -- `getFiltered` - Retrieve the single page fetch by handle from Shopify store -- `getContents` - Return the list of pages of the Shopify store. - -## Examples - -Fetch a single page by the handle of the shop. - -```javascript -import { onSSR } from '@vue-storefront/core'; -import { useContent, contentGetters } from '@vue-storefront/shopify'; - -export default { - setup(props, context) { - const { search, content } = useContent(); - const { slug } = context.root.$route.params; - - onSSR(async () => { - await search(slug); - }); - - const page = computed(() => contentGetters.getFiltered(content.value)); - - return { - page - }; - } -}; -``` - -List of the shop's pages. - -```javascript - - const { pages, content } = useContent(); - - onSSR(async () => { - await pages(); - }); - - const cmsPages = computed(() => contentGetters.getContents(content.value)); - return { - cmsPages - }; - -``` diff --git a/packages/core/docs/shopify/use-product.md b/packages/core/docs/shopify/use-product.md deleted file mode 100644 index 70d437b315..0000000000 --- a/packages/core/docs/shopify/use-product.md +++ /dev/null @@ -1,165 +0,0 @@ -# useProduct composable - -`useProduct` composition API function allows for loading the products. This function returns the following values: - -- `search` - the main querying function that is used to query products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. - - The `params` has the following options: - - `id` (String) The id of the product to fetch. - ```javascript - const id = 'Xk9lM2JkNzFmNzIQ4NTIY4ZDFi9DaGVja291dC9lM2JkN=='; - ``` - - `ids` (String[]) The ids of the products to fetch. - ```javascript - const ids = [ - 'Xk9lM2JkNzFmNzIQ4NTIY4ZDFi9DaGVja291dC9lM2JkN==', - 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzc4NTc5ODkzODQ=' - ]; - ``` - - `slug` (String) The handle of the product to fetch. - ```javascript - const slug = 'my-product'; - ``` - - `customQuery` (Object) An object specifying the query data containing zero or more of: - - `first` (Int) The relay `first` param. This specifies page size. - - `sortKey` (String) The key to sorting results by. Available values are ID, TITLE, UPDATED_AT - - `query` (String) A query string. - - `reverse` (Boolean) Whether or not to reverse the sort order of the results -- `products: Product[]` - the main data object that contains an array of products fetched by `search` method -```typescript -export type Maybe = T | null; - -export type Image = { - id: Maybe; - src: Maybe; - altText: Maybe; -} - -export type Price = { - amount: Maybe; - currencyCode: Maybe; -} - -export type Option = { - name: Maybe; - value: Maybe; -} - -export type ProductVariant = { - __typename?: 'ProductVariant'; - _id?: Maybe; - _description: Maybe; - _descriptionHtml: Maybe; - _slug: Maybe; - _categoriesRef: string[]; - name: Maybe; - images: Maybe; - product?: Maybe; - options: Maybe; - variantBySelectedOptions?: Maybe; - _coverImage: Maybe; - price: { - original: number; - current: number; - }; - variants?: Maybe; - available?: Maybe; - productType: Maybe; - _availableForSale?: Maybe; -} - -export type Product = { - id: Maybe; - handle: Maybe; - images: Maybe; - options: Maybe; - productType: Maybe; - publishedAt: Maybe; - title: Maybe; - description: Maybe; - descriptionHtml: Maybe; - updatedAt: Maybe; - createdAt: Maybe; - availableForSale: Maybe; - variants: Maybe; - vendor: Maybe; -} - -``` -- `loading` - a reactive object containing information about the loading state of your `search` method - -## productGetters -- `getName` - Get product name -- `getSlug` - Get product URL key -- `getPrice` - Return an object `checkSpecialPrice`, it will contains two parameters: - - `regular` (float) regular price - - `special` (float) special price -- `getGallery` - Return an array of object `AgnosticMediaGalleryItem[]`, which contains the following parameters: - - `small` (string) image source URL - - `normal` (string) image source URL - - `big` (string) image source URL -- `getCoverImage` - Get product's mail image. -- `getFiltered` - Return the array of products. -- `getAttributes` - Return the product variants. -- `getOptions` - Get product custom options -- `getDescription` - Retrieve product description -- `getCategoryIds` - Get category ids -- `getId` - Get product id -- `getFormattedPrice` - Return product price with currency sign -- `getStatus` - Return true if product is available -- `hasSpecialPrice` - Return true if product product has discounted price -- `isInWishlist` - Return true if product was added to wishlist -- `getBreadcrumbs` - Prepared bread crumbs for the product. -- `getVendor` - Get vendor name of product. - -## Examples - -Fetch a single product by handle of the product. -```typescript -import { computed } from '@vue/composition-api'; -import { onSSR } from '@vue-storefront/core'; -import { useProduct, productGetters } from '@vue-storefront/shopify'; - -export default { - setup(props, context) { - const { products, search } = useProduct('products'); - const { slug } = context.root.$route.params; - - const product = computed(() => productGetters.getFiltered(products.value)); - - onSSR(async () => { - await search({ slug }); - }); - - return { - product - }; - } -}; -``` - -Fetch best selling products. -```typescript -import { useProduct } from '@vue-storefront/shopify'; -import { onSSR } from '@vue-storefront/core'; -export default { - setup() { - const { products, search: productsSearch } = useProduct('categoryProducts'); - - const productsSearchParams = { - customQuery: { - first: 8, - sortKey: 'bestSelling', - reverse: false - } - }; - - onSSR(async () => { - await productsSearch(productsSearchParams); - }); - - return { - products, - } - } -} -``` diff --git a/packages/core/docs/shopify/use-search.md b/packages/core/docs/shopify/use-search.md deleted file mode 100644 index d0653f33c6..0000000000 --- a/packages/core/docs/shopify/use-search.md +++ /dev/null @@ -1,106 +0,0 @@ -# useSearch composable - -`useSearch` composition API function allows searching for products. This function returns the following values: - -- `search` - the main querying function that is used to search products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object - - The `params` has the following options: - - `first` (Int) Returns up to the first `n` elements from the list. - - `sortKey` (String) The key to sorting results by. Available values are VENDOR, CREATED_AT, ID, PRICE, PRODUCT_TYPE, RELEVANCE, TITLE, UPDATED_AT, BEST_SELLING. - - `reverse` (Boolean) Whether or not to reverse the sort order of the results. - - `query` (String) A query string. -- `searchResults: Product[]` - the main data object that contains an array of categories fetched by `search` method - -```typescript -export type Maybe = T | null; - -export type Image = { - id: Maybe; - src: Maybe; - altText: Maybe; -} - -export type Price = { - amount: Maybe; - currencyCode: Maybe; -} - -export type Option = { - name: Maybe; - value: Maybe; -} - -export type ProductVariant = { - __typename?: 'ProductVariant'; - _id?: Maybe; - _description: Maybe; - _descriptionHtml: Maybe; - _slug: Maybe; - _categoriesRef: string[]; - name: Maybe; - images: Maybe; - product?: Maybe; - options: Maybe; - variantBySelectedOptions?: Maybe; - _coverImage: Maybe; - price: { - original: number; - current: number; - }; - variants?: Maybe; - available?: Maybe; - productType: Maybe; - _availableForSale?: Maybe; -} - -export type Product = { - id: Maybe; - handle: Maybe; - images: Maybe; - options: Maybe; - productType: Maybe; - publishedAt: Maybe; - title: Maybe; - description: Maybe; - descriptionHtml: Maybe; - updatedAt: Maybe; - createdAt: Maybe; - availableForSale: Maybe; - variants: Maybe; - vendor: Maybe; -} -``` -- `loading` - a reactive object containing information about the loading state of your `search` method - -## Examples - -```javascript -import { onSSR } from '@vue-storefront/core'; -import { useSearch } from '@vue-storefront/shopify'; - -export default { - setup(props, context) { - const { search, searchResults } = useSearch(); - - const searchQuery = ref(""); - const productsFound = computed(() => searchResults.value?.products); - - const onSearchQueryChanged = value => { - searchQuery.value = value; - if (value.length > 2) { - search({ term: searchQuery.value }); - } - }; - - onSSR(async () => { - await search({ term: "" }); - }); - - return { - productsFound, - searchQuery, - searchResults, - onSearchQueryChanged - }; - } -}; -``` diff --git a/packages/core/docs/shopify/use-user-order.md b/packages/core/docs/shopify/use-user-order.md deleted file mode 100644 index e751c37f37..0000000000 --- a/packages/core/docs/shopify/use-user-order.md +++ /dev/null @@ -1,54 +0,0 @@ -# useUserOrder composable - -`useUserOrder` composition API function allows interactions with the customer's order history. This function returns the following values: - -- `searchOrders` - the main querying function that is used to query a user's order history from the eCommerce platform and populate the `orders` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. -- `orders` - the main data object that contains an array of orders fetched by `searchOrders` method -```typescript -export type Maybe = T | null; - -export type Price = { - amount: Maybe; - currencyCode: Maybe; -} - -export type Order = { - name?: Maybe; - totalPriceV2?: Maybe; - processedAt?: Maybe; - financialStatus?: Maybe; - lineItems?: Maybe; -} - -export type OrderItem = { - sku?: Maybe; - originalTotalPrice?: Maybe; - quantity?: Maybe; - title?: Maybe; -} -``` -- `loading` - a reactive object containing information about the loading state of your `searchOrders` method - -## Example - -Fetch a list of orders associated with the customer. - -```javascript -import { onSSR } from '@vue-storefront/core'; -import { computed } from '@vue/composition-api'; -import { useUserOrders } from '@vue-storefront/shopify'; - -export default { - setup() { - const { orders, searchOrders } = useUserOrders(); - - onSSR(async () => { - await searchOrders(); - }); - - return { - orders: computed(() => orders ? orders.value : []) - }; - } -}; -``` diff --git a/packages/core/docs/shopify/use-user.md b/packages/core/docs/shopify/use-user.md deleted file mode 100644 index c596301359..0000000000 --- a/packages/core/docs/shopify/use-user.md +++ /dev/null @@ -1,108 +0,0 @@ -# useUser composable - -`useUser` composition API function allows loading the customer data. This function returns the following values: - -- `user` - the main data object that contains user structure in the platform-specific structure -```typescript -export type Maybe = T | null; - -export type Customer = { - id: Maybe; - firstName: Maybe; - lastName: Maybe; - displayName: Maybe; - email: Maybe; - phone: Maybe; -} -``` -- `updateUser` - function required to update user information like email, first and last name. - - This method accepts the following parameters. - - `email` (String) - The customer’s email. - - `firstName` (String) - The customer’s first name. - - `lastName` (String) - The customer’s last name. -- `register` - function for registering a user with email, name, and password. - - This method accepts the following parameters. - - `email` (String) - The customer’s email. - - `password` (String) - The login password used by the customer. - - `firstName` (String) - The customer’s first name. - - `lastName` (String) - The customer’s last name. -- `login` - function for authenticating the user with email and password and retrieve the token. - - This method accepts the following parameters. - - `username` (String) - The email associated with the customer. - - `password` (String) - The login password to be used by the customer. -- `logout` - function for removing user's token. -- `changePassword` - function for change user's password. - - This method accept the following parameters. - - `currentPassword` (String) - The existing password - - `newPassword` (String) - The login password used by the customer. -- `refreshUser` - function for retrieve user details by the token. -- `loading` - a reactive object containing information about the loading state of the user - -## Example -Create customer's access token. The access token is used to identify the customer and is required to modify the customer object in any way. -This method accepts two parameters, username, and password, and on the success, it will return a token. The token is required and mandatory to call other APIs like `updateUser`, `changePassword`, `refreshUser`, and `logout`. - -```vue - - - -``` diff --git a/packages/core/jest.config.js b/packages/core/jest.config.js deleted file mode 100644 index a3a5747d49..0000000000 --- a/packages/core/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = { - preset: 'ts-jest', - transform: { - '^.+\\.[jt]s$': 'ts-jest' - }, - collectCoverage: true, - coverageDirectory: 'coverage', - coverageReporters: ['html', 'lcov', 'text'], - collectCoverageFrom: [ - './**/*.ts', - '!./**/*.d.ts', - '!**/__tests__/**/*.ts', - '!nuxt-theme-module/**/*' - ], - watchPathIgnorePatterns: ['/node_modules/'], - moduleFileExtensions: ['ts', 'js', 'json'], - moduleNameMapper: { - '^@vue-storefront/cli/(.*?)$': '/cli/$1', - '^@vue-storefront/nuxt-theme/(.*?)$': '/nuxt-theme-module/$1' - }, - rootDir: __dirname, - setupFilesAfterEnv: [ - './core/__tests__/setup.ts' - ], - testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'] -}; diff --git a/packages/core/middleware/package.json b/packages/core/middleware/package.json index 378110663a..b0448d03dd 100644 --- a/packages/core/middleware/package.json +++ b/packages/core/middleware/package.json @@ -1,12 +1,13 @@ { "name": "@vue-storefront/middleware", - "version": "2.4.2", + "version": "2.4.1", "description": "", "main": "lib/index.cjs.js", "module": "lib/index.es.js", "types": "lib/index.d.ts", "scripts": { "build": "rimraf lib && rollup -c", + "test": "jest", "prepublish": "yarn build" }, "author": "Vue Storefront", diff --git a/packages/core/middleware/src/createServer.ts b/packages/core/middleware/src/createServer.ts index aa68b39c2d..8a6cde7ca5 100644 --- a/packages/core/middleware/src/createServer.ts +++ b/packages/core/middleware/src/createServer.ts @@ -25,7 +25,7 @@ interface RequestParams { function createServer (config: MiddlewareConfig): Express { consola.info('Middleware starting....'); - consola.info('Loading integartions...'); + consola.info('Loading integrations...'); const integrations = registerIntegrations(app, config.integrations); diff --git a/packages/core/nuxt-module/package.json b/packages/core/nuxt-module/package.json index b24fb102b3..856b637cac 100644 --- a/packages/core/nuxt-module/package.json +++ b/packages/core/nuxt-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt", - "version": "2.4.2", + "version": "2.4.1", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/nuxt-theme-module/index.js b/packages/core/nuxt-theme-module/index.js index 365a61dd92..be520314d4 100644 --- a/packages/core/nuxt-theme-module/index.js +++ b/packages/core/nuxt-theme-module/index.js @@ -8,7 +8,7 @@ const chalk = require('chalk'); const log = { info: (message) => consola.info(chalk.bold('VSF'), message), success: (message) => consola.success(chalk.bold('VSF'), message), - warning: (message) => consola.warning(chalk.bold('VSF'), message), + warning: (message) => consola.warn(chalk.bold('VSF'), message), error: (message) => consola.error(chalk.bold('VSF'), message) }; diff --git a/packages/core/nuxt-theme-module/package.json b/packages/core/nuxt-theme-module/package.json index 1d2ff73b25..e5aa419ddb 100644 --- a/packages/core/nuxt-theme-module/package.json +++ b/packages/core/nuxt-theme-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt-theme", - "version": "2.4.2", + "version": "2.4.1", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue index 03de891978..4c3edf744d 100644 --- a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue +++ b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue @@ -47,7 +47,7 @@ :disabled="loading" :qty="cartGetters.getItemQty(product)" class="sf-collected-product__quantity-selector" - @input="updateItemQty({ product, quantity: $event })" + @input="updateQuantity({ product, quantity: $event })" /> @@ -121,9 +121,9 @@ import { SfQuantitySelector } from '@storefront-ui/vue'; import { computed } from '@vue/composition-api'; -import { onSSR } from '@vue-storefront/core'; import { useCart, useUser, cartGetters } from '<%= options.generate.replace.composables %>'; import { useUiState } from '~/composables'; +import debounce from 'lodash.debounce'; export default { name: 'Cart', @@ -145,17 +145,18 @@ export default { const products = computed(() => cartGetters.getItems(cart.value)); const totals = computed(() => cartGetters.getTotals(cart.value)); const totalItems = computed(() => cartGetters.getTotalItems(cart.value)); + loadCart(); - onSSR(async () => { - await loadCart(); - }); + const updateQuantity = debounce(async ({ product, quantity }) => { + await updateItemQty({ product, quantity }); + }, 500); return { + updateQuantity, loading, isAuthenticated, products, removeItem, - updateItemQty, isCartSidebarOpen, toggleCartSidebar, totals, diff --git a/packages/core/nuxt-theme-module/theme/composables/useUiState.ts b/packages/core/nuxt-theme-module/theme/composables/useUiState.ts index 617e6a1da2..37bbb5e151 100644 --- a/packages/core/nuxt-theme-module/theme/composables/useUiState.ts +++ b/packages/core/nuxt-theme-module/theme/composables/useUiState.ts @@ -8,6 +8,7 @@ const state = reactive({ isCartSidebarOpen: false, isWishlistSidebarOpen: false, isLoginModalOpen: false, + isNewsletterModalOpen: false, isCategoryGridView: true, isFilterSidebarOpen: false, isMobileMenuOpen: false @@ -37,6 +38,11 @@ const useUiState = () => { state.isLoginModalOpen = !state.isLoginModalOpen; }; + const isNewsletterModalOpen = computed(() => state.isNewsletterModalOpen); + const toggleNewsletterModal = () => { + state.isNewsletterModalOpen = !state.isNewsletterModalOpen; + }; + const isCategoryGridView = computed(() => state.isCategoryGridView); const changeToCategoryGridView = () => { state.isCategoryGridView = true; @@ -54,12 +60,14 @@ const useUiState = () => { isCartSidebarOpen, isWishlistSidebarOpen, isLoginModalOpen, + isNewsletterModalOpen, isCategoryGridView, isFilterSidebarOpen, isMobileMenuOpen, toggleCartSidebar, toggleWishlistSidebar, toggleLoginModal, + toggleNewsletterModal, changeToCategoryGridView, changeToCategoryListView, toggleFilterSidebar, diff --git a/packages/core/nuxt-theme-module/theme/lang/de.js b/packages/core/nuxt-theme-module/theme/lang/de.js index b1c7ea702d..8d83e80a01 100644 --- a/packages/core/nuxt-theme-module/theme/lang/de.js +++ b/packages/core/nuxt-theme-module/theme/lang/de.js @@ -142,5 +142,14 @@ export default { 'Password': 'Passwort', 'Repeat Password': 'Wiederhole das Passwort', 'Forgot Password Modal Email': 'E-Mail, mit der Sie sich anmelden:', - forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.' + forgotPasswordConfirmation: 'Vielen Dank! Wenn ein Konto mit der E-Mail-Adresse {0} registriert ist, finden Sie in Ihrem Posteingang eine Nachricht mit einem Link zum Zurücksetzen des Passworts.', + subscribeToNewsletterModalContent: + 'Wenn Sie sich für den Newsletter angemeldet haben, erhalten Sie spezielle Angebote und Nachrichten von VSF per E-Mail. Wir werden Ihre E-Mail zu keinem Zeitpunkt an Dritte verkaufen oder weitergeben. Bitte beachten Sie unsere {0}.', + 'Subscribe': 'Abonnieren', + 'Subscribe to newsletter': 'Anmeldung zum Newsletter', + 'Email address': 'E-Mail Adresse', + 'I confirm subscription': 'Ich bestätige das Abonnement', + 'You can unsubscribe at any time': 'Sie können sich jederzeit abmelden', + 'show more': 'mehr anzeigen', + 'hide': 'ausblenden' }; diff --git a/packages/core/nuxt-theme-module/theme/lang/en.js b/packages/core/nuxt-theme-module/theme/lang/en.js index 489d52df67..482677f5a8 100644 --- a/packages/core/nuxt-theme-module/theme/lang/en.js +++ b/packages/core/nuxt-theme-module/theme/lang/en.js @@ -142,5 +142,14 @@ export default { 'Password': 'Password', 'Repeat Password': 'Repeat Password', 'Forgot Password Modal Email': 'Email you are using to sign in:', - forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.' + forgotPasswordConfirmation: 'Thanks! If there is an account registered with the {0} email, you will find message with a password reset link in your inbox.', + subscribeToNewsletterModalContent: + 'After signing up for the newsletter, you will receive special offers and messages from VSF via email. We will not sell or distribute your email to any third party at any time. Please see our {0}.', + 'Subscribe': 'Subscribe', + 'Subscribe to newsletter': 'Subscribe to newsletter', + 'Email address': 'Email address', + 'I confirm subscription': 'I confirm subscription', + 'You can unsubscribe at any time': 'You can unsubscribe at any time', + 'show more': 'show more', + 'hide': 'hide' }; diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index c5ea357750..9511628c32 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -236,7 +236,7 @@ {{ $t('Show on page') }} @@ -372,7 +372,7 @@ export default { const uiState = useUiState(); const { addItem: addItemToCart, isInCart } = useCart(); const { addItem: addItemToWishlist, isInWishlist, removeItem: removeItemFromWishlist } = useWishlist(); - const { result, search, loading } = useFacet(); + const { result, search, loading, error } = useFacet(); const products = computed(() => facetGetters.getProducts(result.value)); const categoryTree = computed(() => facetGetters.getCategoryTree(result.value)); @@ -405,6 +405,7 @@ export default { onSSR(async () => { await search(th.getFacetsFromURL()); + if (error?.value?.search) context.root.$nuxt.error({ statusCode: 404 }); setSelectedFilters(); }); diff --git a/packages/core/nuxt-theme-module/theme/pages/Home.vue b/packages/core/nuxt-theme-module/theme/pages/Home.vue index 27a515a034..c5acca7149 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Home.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Home.vue @@ -78,7 +78,21 @@ description="Be aware of upcoming sales and events. Receive gifts and special offers!" image="/homepage/newsletter.webp" class="call-to-action" - /> + > + + + + + + @@ -102,8 +116,11 @@ import { SfButton } from '@storefront-ui/vue'; import InstagramFeed from '~/components/InstagramFeed.vue'; +import NewsletterModal from '~/components/NewsletterModal.vue'; import LazyHydrate from 'vue-lazy-hydration'; +import { useUiState } from '../composables'; import cacheControl from './../helpers/cacheControl'; +const { toggleNewsletterModal } = useUiState(); export default { name: 'Home', @@ -124,6 +141,7 @@ export default { SfHeading, SfArrow, SfButton, + NewsletterModal, LazyHydrate }, data() { @@ -256,6 +274,13 @@ export default { methods: { toggleWishlist(index) { this.products[index].isInWishlist = !this.products[index].isInWishlist; + }, + handleNewsletterClick() { + toggleNewsletterModal(); + }, + onSubscribe(emailAddress) { + console.log(`Email ${emailAddress} was added to newsletter.`); + toggleNewsletterModal(); } } }; diff --git a/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue b/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue index 26ad806ed1..e6607d63e9 100644 --- a/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue +++ b/packages/core/nuxt-theme-module/theme/pages/MyAccount/OrderHistory.vue @@ -56,27 +56,16 @@ v-for="tableHeader in tableHeaders" :key="tableHeader" >{{ tableHeader }}
- - {{ $t('Download') }} - - {{ $t('Download all') }} - - + - {{ orderGetters.getId(order) }} + {{ orderGetters.getId(order) }} {{ orderGetters.getDate(order) }} {{ $n(orderGetters.getPrice(order), 'currency') }} {{ orderGetters.getStatus(order) }} - - {{ $t('Download') }} - {{ $t('View details') }} @@ -102,7 +91,8 @@ import { SfTabs, SfTable, SfButton, - SfProperty + SfProperty, + SfLink } from '@storefront-ui/vue'; import { computed, ref } from '@vue/composition-api'; import { useUserOrder, orderGetters } from '<%= options.generate.replace.composables %>'; @@ -115,7 +105,8 @@ export default { SfTabs, SfTable, SfButton, - SfProperty + SfProperty, + SfLink }, setup() { const { orders, search } = useUserOrder(); @@ -195,7 +186,7 @@ export default { @include for-desktop { &__element { &--right { - --table-column-flex: 0; + --table-column-flex: 1; text-align: right; } } diff --git a/packages/jest.base.config.js b/packages/jest.base.config.js index cfcd206ebb..a79e60212e 100644 --- a/packages/jest.base.config.js +++ b/packages/jest.base.config.js @@ -6,8 +6,11 @@ module.exports = { '^.+\\.[jt]s$': 'ts-jest' }, coverageDirectory: './coverage/', + coverageReporters: ['html', 'lcov', 'text'], collectCoverageFrom: [ 'src/**/*.ts' ], + moduleFileExtensions: ['ts', 'js', 'json'], + watchPathIgnorePatterns: ['**/node_modules'], testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'] }; diff --git a/scripts/package.json b/scripts/package.json deleted file mode 100644 index 1f36ece1d1..0000000000 --- a/scripts/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "scripts", - "version": "1.0.0", - "description": "", - "main": "index.js", - "private": true, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "release": "ts-node ./release/index.ts" - }, - "author": "", - "license": "MIT" -} diff --git a/scripts/release/constants.ts b/scripts/release/constants.ts deleted file mode 100644 index 9c35bbcef8..0000000000 --- a/scripts/release/constants.ts +++ /dev/null @@ -1,33 +0,0 @@ -import path from 'path'; - -enum PACKAGE_TYPES { - NotPackage = 0, - Wrapper, - IntegrationWrapper, - Package -} - -enum PACKAGE_SUBTYPE { - INDEPENDENT = 0, - API, - COMPOSABLE, - THEME, - CLI -} - -enum RELEASE_GRADATIONS { - path = 1, - minor, - major -} - -interface OperationsData { - pathsToRun: Array; - freshVersions: Record; - oldFiles: Record; -} - -const BASE = path.resolve('../packages/'); -const REGISTRY = 'https://registry.npmjs.org'; - -export { BASE, REGISTRY, PACKAGE_TYPES, PACKAGE_SUBTYPE, RELEASE_GRADATIONS, OperationsData }; diff --git a/scripts/release/index.ts b/scripts/release/index.ts deleted file mode 100644 index 896809969b..0000000000 --- a/scripts/release/index.ts +++ /dev/null @@ -1,147 +0,0 @@ -import fs from 'fs'; -import { getPackageType, getCustomPackagesInIntegrationWrapper } from './packageTypes'; -import updatePackageVersion from './updatePackageVersion'; -import { execSync } from 'child_process'; -import { RELEASE_GRADATIONS, PACKAGE_SUBTYPE, PACKAGE_TYPES, REGISTRY } from './constants'; - -const publishPackage = (path: string) => execSync(`cd ${path} && npm publish --registry ${REGISTRY} --tag next`); -const isProperGradation = (gradation: string) => Object.keys(RELEASE_GRADATIONS).filter(key => isNaN(Number(key))).includes(gradation); -const sliceAbsolutePathPart = (path: string) => path.replace(/(.*?)packages/, 'packages'); - -// CLI depends on THEME -// THEME depends on COMPOSABLE -// COMPOSABLE depends on API - -const getPackageSubtype = (pckg: string): PACKAGE_SUBTYPE => { - switch (pckg.split('/').pop()) { - case 'api-client': - return PACKAGE_SUBTYPE.API; - case 'composables': - return PACKAGE_SUBTYPE.COMPOSABLE; - case 'theme': - return PACKAGE_SUBTYPE.THEME; - case 'cli': - return PACKAGE_SUBTYPE.CLI; - default: - return PACKAGE_SUBTYPE.INDEPENDENT; - } -}; - -const getSubtypeName = (subtype: PACKAGE_SUBTYPE): string => { - switch (subtype) { - case PACKAGE_SUBTYPE.API: - return 'api-client'; - case PACKAGE_SUBTYPE.COMPOSABLE: - return 'composables'; - case PACKAGE_SUBTYPE.THEME: - return 'theme'; - case PACKAGE_SUBTYPE.CLI: - return 'cli'; - default: - - } -}; - -const pckgSubtypeToPath = (pckg: string, subtype: PACKAGE_SUBTYPE): string => { - if (subtype === PACKAGE_SUBTYPE.CLI) { - return 'core/cli'; - } - const base = pckg.split('/'); - base[base.length - 1] = getSubtypeName(subtype); - return base.join('/'); -}; - -const pckgCustomSubpackageToPath = (pckg: string, subpackage: string): string => { - const base = pckg.split('/'); - base[base.length - 1] = subpackage; - return base.join('/'); -}; - -const buildPackageDependencyList = (pckg: string): PACKAGE_SUBTYPE[] => { - const packageSubtype = getPackageSubtype(pckg); - if (packageSubtype === PACKAGE_SUBTYPE.INDEPENDENT) { - return []; - } - - const enumKeys = Object.keys(PACKAGE_SUBTYPE) - .filter(key => isNaN(Number(key))) - .keys(); - - return Array.from(enumKeys).slice(packageSubtype + 1); -}; - -const program = () => { - const args = process.argv.slice(2); - let pckg = args[0]; - const gradation = args[2]; - - if (!pckg || !gradation) { - console.log('Provide package and gradation. Pattern is: {package} - {gradation}'); - return; - } - if (!isProperGradation(gradation)) { - console.log(`${gradation} is bad gradation. Use 'path', 'minor' or 'major'`); - return; - } - - const packageType = getPackageType(pckg); - if (!packageType) { - console.log('Bad package\'s type'); - return; - } - - let operationList = { - pathsToRun: [], - freshVersions: {}, - oldFiles: {} - }; - let customPackagesInIntegrationWrapper = []; - - if (packageType === PACKAGE_TYPES.Package || packageType === PACKAGE_TYPES.IntegrationWrapper) { - if (packageType === PACKAGE_TYPES.IntegrationWrapper) { - customPackagesInIntegrationWrapper = getCustomPackagesInIntegrationWrapper(pckg); - pckg = `${pckg}/api-client`; - } - const dependencyList: PACKAGE_SUBTYPE[] = buildPackageDependencyList(pckg); - try { - operationList = updatePackageVersion(pckg, RELEASE_GRADATIONS[gradation]); - for (const subtype of dependencyList) { - operationList = updatePackageVersion(pckgSubtypeToPath(pckg, subtype), RELEASE_GRADATIONS[gradation], operationList); - } - for (const customPackage of customPackagesInIntegrationWrapper) { - operationList = updatePackageVersion(pckgCustomSubpackageToPath(pckg, customPackage), RELEASE_GRADATIONS[gradation], operationList); - } - } catch (err) { - console.log(err); - } - - const statusLog = []; - - try { - while (operationList.pathsToRun.length) { - publishPackage(operationList.pathsToRun[0]); - statusLog.push('Succesfully published ' + sliceAbsolutePathPart(operationList.pathsToRun[0]) + ` new ${gradation} version`); - operationList.pathsToRun.shift(); - } - } catch (err) { - for (const pathToRun of operationList.pathsToRun) { - statusLog.push('Failed publishing ' + sliceAbsolutePathPart(pathToRun)); - const pathWithFile = `${pathToRun}/package.json`; - fs.writeFileSync(pathWithFile, JSON.stringify(operationList.oldFiles[pathWithFile], null, 2)); - statusLog.push('Rolled back to old version'); - } - } - - console.log('\n'); - for (const log of statusLog) { - console.log(log); - } - - } else if (packageType === PACKAGE_TYPES.Wrapper && pckg === 'core') { - console.log('Pick specific core\'s package'); - } else { - console.log('Bad package\'s type'); - } -}; - -program(); diff --git a/scripts/release/packageTypes.ts b/scripts/release/packageTypes.ts deleted file mode 100644 index 1e4f66ae98..0000000000 --- a/scripts/release/packageTypes.ts +++ /dev/null @@ -1,53 +0,0 @@ -import fs from 'fs'; -import { BASE, PACKAGE_TYPES } from './constants'; - -const integrationWrapperPackages = [ - 'api-client', - 'composables', - 'theme' -]; - -const getDirectories = (source: string) => - fs.readdirSync(`${BASE}/${source}`, { withFileTypes: true }) - .filter(dirent => dirent.isDirectory()) - .map(dirent => dirent.name); - -const isPackage = (pckg: string) => fs.existsSync(`${BASE}/${pckg}/package.json`); -const hasIntegrationWrapperPackages = (pckg: string): boolean => integrationWrapperPackages.every(directory => isPackage(`${pckg}/${directory}`)); - -const isIntegrationWrapper = (pckg: string) => { - try { - const directories = getDirectories(pckg); - return integrationWrapperPackages.length <= directories.length && hasIntegrationWrapperPackages(pckg); - } catch (err) { - return false; - } -}; - -const isWrapper = (pckg: string) => { - try { - return getDirectories(pckg).some(directory => isPackage(`${pckg}/${directory}`)); - } catch (err) { - return false; - } -}; - -const getPackageType = (pckg: string): PACKAGE_TYPES => { - if (isPackage(pckg)) { - return PACKAGE_TYPES.Package; - } - if (isIntegrationWrapper(pckg)) { - return PACKAGE_TYPES.IntegrationWrapper; - } - if (isWrapper(pckg)) { - return PACKAGE_TYPES.Wrapper; - } - return PACKAGE_TYPES.NotPackage; -}; - -const getCustomPackagesInIntegrationWrapper = (integration: string): string[] => { - const directories = getDirectories(integration); - return directories.filter(directory => !integrationWrapperPackages.includes(directory)); -}; - -export { getPackageType, getCustomPackagesInIntegrationWrapper }; diff --git a/scripts/release/updatePackageVersion.ts b/scripts/release/updatePackageVersion.ts deleted file mode 100644 index e84e126a9c..0000000000 --- a/scripts/release/updatePackageVersion.ts +++ /dev/null @@ -1,64 +0,0 @@ -import fs from 'fs'; -import { OperationsData, RELEASE_GRADATIONS, BASE } from './constants'; - -const updateVersion = (version: string, gradation: RELEASE_GRADATIONS): string => { - return version.replace(/([\^~]?)(\d+)\.(\d+)\.(\d+)$/, (_, special, major, minor, path) => { - switch (gradation) { - case RELEASE_GRADATIONS.path: - path++; - break; - case RELEASE_GRADATIONS.minor: - minor++; - break; - case RELEASE_GRADATIONS.major: - major++; - break; - } - return `${special}${major}.${minor}.${path}`; - }); -}; - -const updatePackageVersion = (pckg: string, gradation: RELEASE_GRADATIONS, operationsData: OperationsData = { - pathsToRun: [], - freshVersions: {}, - oldFiles: {} -}): OperationsData => { - const filePath = `${BASE}/${pckg}/package.json`; - // eslint-disable-next-line global-require - const packageJson = require(filePath); - if (!packageJson) { - return operationsData; - } - - const modifiedFile = { - ...packageJson, - version: updateVersion(packageJson.version, gradation) - }; - - for (const [dependency, version] of Object.entries(operationsData.freshVersions)) { - if (modifiedFile.dependencies && modifiedFile.dependencies[dependency]) { - modifiedFile.dependencies[dependency] = modifiedFile.dependencies[dependency].replace(/([\^~]?)(.*)/, (_, specialChar) => { - return `${specialChar}${version}`; - }); - } - } - - fs.writeFileSync(filePath, JSON.stringify(modifiedFile, null, 2)); - - return { - freshVersions: { - ...operationsData.freshVersions, - [packageJson.name]: modifiedFile.version - }, - pathsToRun: [ - ...operationsData.pathsToRun, - filePath.replace('/package.json', '') - ], - oldFiles: { - ...operationsData.oldFiles, - [filePath]: packageJson - } - }; -}; - -export default updatePackageVersion; diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json deleted file mode 100644 index 1c60feb2d7..0000000000 --- a/scripts/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "extends": "../packages/tsconfig.base.json", - "include": ["./release"], - "exclude": ["node_modules", "lib"], - "compilerOptions": { - "target": "ES2017", - "module": "commonjs", - "moduleResolution": "node", - "esModuleInterop": true, - "importHelpers": true, - "noEmitHelpers": true, - "sourceMap": true, - "declaration": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "baseUrl": "./", - "lib": ["es6", "es7", "ES2017", "ES2018", "ES2019"], - "strict": false, - "preserveSymlinks": true, - }, -} diff --git a/tsconfig.json b/tsconfig.json index 1791b7c36e..5f1dcbc1dc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,10 @@ { "extends": "./packages/tsconfig.base.json", - "include": ["src"], - "exclude": ["node_modules", "lib"] + "include": [ + "packages" + ], + "exclude": [ + "dev", + "node_modules" + ] } diff --git a/yarn.lock b/yarn.lock index 8120cc68de..5ec5077b00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,25 @@ # yarn lockfile v1 -"@apollo/client@^3.2.5", "@apollo/client@^3.3.21", "@apollo/client@~3.2.5 || ~3.3.0": +"@apollo/client@^3.2.5", "@apollo/client@^3.2.9", "@apollo/client@^3.3.21": + version "3.4.9" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.4.9.tgz#78d0decf8371b768f97c721d1b71c96260bac4db" + integrity sha512-1AlYjRJ/ktDApEUEP2DqHI38tqSyhSlsF/Q3fFb/aCbLHQfcSZ1dCv7ZlC9UXRyDwQYc0w23gYJ7wZde6W8P4A== + dependencies: + "@graphql-typed-document-node/core" "^3.0.0" + "@wry/context" "^0.6.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.3" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.9.0" + tslib "^2.3.0" + zen-observable-ts "^1.1.0" + +"@apollo/client@~3.2.5 || ~3.3.0": version "3.3.21" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.21.tgz#2862baa4e1ced8c5e89ebe6fc52877fc64a726aa" integrity sha512-RAmZReFuKCKx0Rs5C0nVJwKomAHUHn+gGP/YvbEsXQWu0sXoncEUZa71UqlfCPVXa/0MkYOIbCXSQdOcuRrHgw== @@ -21,24 +39,6 @@ tslib "^1.10.0" zen-observable "^0.8.14" -"@apollo/client@^3.2.9": - version "3.4.8" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.4.8.tgz#66d06dc1784d07d46731b3bda546046f8c280b74" - integrity sha512-/cNqTSwc2Dw8q6FDDjdd30+yvhP7rI0Fvl3Hbro0lTtFuhzkevfNyQaI2jAiOrjU6Jc0RbanxULaNrX7UmvjSQ== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.3" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.9.0" - tslib "^2.3.0" - zen-observable-ts "^1.1.0" - "@ardatan/aggregate-error@0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz#fe6924771ea40fc98dc7a7045c2e872dc8527609" @@ -53,29 +53,17 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== - -"@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" - integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.0", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== "@babel/core@7.4.5": version "7.4.5" @@ -97,20 +85,20 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.0": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" - integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== +"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.11.0", "@babel/core@^7.14.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helpers" "^7.14.6" - "@babel/parser" "^7.14.6" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -118,52 +106,15 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.11.0", "@babel/core@^7.13.14", "@babel/core@^7.8.4": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0" - integrity sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ== +"@babel/generator@^7.12.13", "@babel/generator@^7.15.0", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.13" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.15" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.14" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.12.13", "@babel/generator@^7.14.5", "@babel/generator@^7.5.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" - integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== - dependencies: - "@babel/types" "^7.14.5" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.13.9", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== - dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.15.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -171,69 +122,48 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8", "@babel/helper-compilation-targets@^7.9.6": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" - integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" - integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0", "@babel/helper-compilation-targets@^7.9.6": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== dependencies: - "@babel/compat-data" "^7.14.5" + "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11", "@babel/helper-create-class-features-plugin@^7.3.0": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" - integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-class-features-plugin@^7.14.5": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" - integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== +"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.3.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" "@babel/helper-split-export-declaration" "^7.14.5" -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -244,23 +174,14 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.5" -"@babel/helper-function-name@^7.14.5": +"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== @@ -269,13 +190,6 @@ "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -283,14 +197,6 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== - dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - "@babel/helper-hoist-variables@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" @@ -298,68 +204,33 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-member-expression-to-functions@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" - integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.8.3": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== dependencies: - "@babel/types" "^7.13.12" + "@babel/types" "^7.15.0" -"@babel/helper-module-imports@^7.14.5": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" - integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" - -"@babel/helper-module-transforms@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" - integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== dependencies: "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -368,65 +239,36 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-plugin-utils@^7.14.5": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-replace-supers@^7.14.5": +"@babel/helper-remap-async-to-generator@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" - integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== dependencies: - "@babel/helper-member-expression-to-functions" "^7.14.5" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-simple-access@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" - integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== dependencies: - "@babel/types" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.14.8" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": version "7.14.5" @@ -435,78 +277,43 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-split-export-declaration@^7.14.5": +"@babel/helper-split-export-declaration@^7.12.13", "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.13.10", "@babel/helpers@^7.4.4": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" - integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" - integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== dependencies: + "@babel/helper-function-name" "^7.14.5" "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== +"@babel/helpers@^7.14.8", "@babel/helpers@^7.4.4": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" -"@babel/highlight@^7.14.5": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -520,32 +327,27 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4" integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw== -"@babel/parser@^7.0.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== - -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.4.3", "@babel/parser@^7.4.5", "@babel/parser@^7.9.6": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" - integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.5", "@babel/parser@^7.14.9", "@babel/parser@^7.15.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.5", "@babel/parser@^7.7.2", "@babel/parser@^7.9.6": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-proposal-async-generator-functions@^7.13.15", "@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" - integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== +"@babel/plugin-proposal-async-generator-functions@^7.14.9", "@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@7.3.0": @@ -556,7 +358,7 @@ "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-class-properties@^7.0.0": +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== @@ -564,69 +366,70 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.13.5", "@babel/plugin-proposal-decorators@^7.8.3": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz#e91ccfef2dc24dd5bd5dcc9fc9e2557c684ecfb8" - integrity sha512-ibAMAqUm97yzi+LPgdr5Nqb9CMkeieGHvwPg1ywSGjZrZHQEGqE01HmOio8kxRpA/+VtOHouIVy2FMpBbtltjA== +"@babel/plugin-proposal-decorators@^7.13.15", "@babel/plugin-proposal-decorators@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" + integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.11" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-decorators" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.13.8", "@babel/plugin-proposal-json-strings@^7.2.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== +"@babel/plugin-proposal-json-strings@^7.14.5", "@babel/plugin-proposal-json-strings@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@7.3.2": @@ -637,7 +440,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.0.0": +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.4.4": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== @@ -648,49 +451,48 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-object-rest-spread@^7.13.8", "@babel/plugin-proposal-object-rest-spread@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.13.8", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== +"@babel/plugin-proposal-optional-catch-binding@^7.14.5", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== +"@babel/plugin-proposal-private-methods@^7.13.0", "@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -699,19 +501,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-decorators@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" - integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -734,6 +550,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -741,14 +564,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.14.5", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -762,7 +585,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -790,68 +613,61 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-arrow-functions@^7.0.0": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.13.0", "@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.13.0", "@babel/plugin-transform-async-to-generator@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.0.0": +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.14.5", "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.12.13", "@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== +"@babel/plugin-transform-async-to-generator@^7.14.5", "@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.0.0": +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.14.5", "@babel/plugin-transform-block-scoped-functions@^7.2.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" - integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.12.13", "@babel/plugin-transform-block-scoping@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.14.5", "@babel/plugin-transform-block-scoping@^7.4.4": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-classes@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" - integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.14.9", "@babel/plugin-transform-classes@^7.4.4": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" @@ -861,69 +677,42 @@ "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.13.0", "@babel/plugin-transform-classes@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0": +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.14.5", "@babel/plugin-transform-computed-properties@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-computed-properties@^7.13.0", "@babel/plugin-transform-computed-properties@^7.2.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-destructuring@^7.0.0": +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.4.4": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.13.0", "@babel/plugin-transform-destructuring@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-duplicate-keys@^7.12.13", "@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== +"@babel/plugin-transform-duplicate-keys@^7.14.5", "@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-exponentiation-operator@^7.12.13", "@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== +"@babel/plugin-transform-exponentiation-operator@^7.14.5", "@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-flow-strip-types@^7.0.0": version "7.14.5" @@ -933,21 +722,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-flow" "^7.14.5" -"@babel/plugin-transform-for-of@^7.0.0": +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.14.5", "@babel/plugin-transform-for-of@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-for-of@^7.13.0", "@babel/plugin-transform-for-of@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-function-name@^7.0.0": +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.14.5", "@babel/plugin-transform-function-name@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== @@ -955,105 +737,73 @@ "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.12.13", "@babel/plugin-transform-function-name@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-literals@^7.0.0": +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.14.5", "@babel/plugin-transform-literals@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.12.13", "@babel/plugin-transform-literals@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-member-expression-literals@^7.0.0": +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.14.5", "@babel/plugin-transform-member-expression-literals@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.12.13", "@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.2.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== - dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.0.0": +"@babel/plugin-transform-modules-amd@^7.14.5", "@babel/plugin-transform-modules-amd@^7.2.0": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" - integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.15.0", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.13.8", "@babel/plugin-transform-modules-systemjs@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== +"@babel/plugin-transform-modules-systemjs@^7.14.5", "@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.13.0", "@babel/plugin-transform-modules-umd@^7.2.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== +"@babel/plugin-transform-modules-umd@^7.14.5", "@babel/plugin-transform-modules-umd@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-new-target@^7.12.13", "@babel/plugin-transform-new-target@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== +"@babel/plugin-transform-new-target@^7.14.5", "@babel/plugin-transform-new-target@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-object-super@^7.0.0": +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.14.5", "@babel/plugin-transform-object-super@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== @@ -1061,87 +811,65 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-object-super@^7.12.13", "@babel/plugin-transform-object-super@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.14.5": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-parameters@^7.13.0", "@babel/plugin-transform-parameters@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-property-literals@^7.0.0": +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.14.5", "@babel/plugin-transform-property-literals@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.12.13", "@babel/plugin-transform-property-literals@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-transform-react-display-name@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + version "7.15.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" + integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" - integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz#33041e665453391eb6ee54a2ecf3ba1d46bd30f4" + integrity sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" - integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz#79f728e60e6dbd31a2b860b0bf6c9765918acf1d" + integrity sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" - integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" + integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.13.12" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.9" -"@babel/plugin-transform-regenerator@^7.13.15", "@babel/plugin-transform-regenerator@^7.4.5": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" - integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.4.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.12.13", "@babel/plugin-transform-reserved-words@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== +"@babel/plugin-transform-reserved-words@^7.14.5", "@babel/plugin-transform-reserved-words@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-runtime@7.2.0": version "7.2.0" @@ -1153,33 +881,26 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.13.10": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz#2eddf585dd066b84102517e10a577f24f76a9cd7" - integrity sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA== +"@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.13.15": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.0.0": +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.14.5", "@babel/plugin-transform-shorthand-properties@^7.2.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-shorthand-properties@^7.12.13", "@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.0.0": +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.14.6", "@babel/plugin-transform-spread@^7.2.0": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== @@ -1187,56 +908,41 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" -"@babel/plugin-transform-spread@^7.13.0", "@babel/plugin-transform-spread@^7.2.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13", "@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== +"@babel/plugin-transform-sticky-regex@^7.14.5", "@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-template-literals@^7.0.0": +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.14.5", "@babel/plugin-transform-template-literals@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-template-literals@^7.13.0", "@babel/plugin-transform-template-literals@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13", "@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== +"@babel/plugin-transform-typeof-symbol@^7.14.5", "@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-unicode-regex@^7.12.13", "@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== +"@babel/plugin-transform-unicode-regex@^7.14.5", "@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@7.4.5": version "7.4.5" @@ -1292,31 +998,34 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.13.12": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" - integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.14.1": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-compilation-targets" "^7.13.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.15" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -1326,45 +1035,46 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.13.0" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.0" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.14" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - core-js-compat "^3.9.0" + "@babel/types" "^7.15.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" semver "^6.3.0" "@babel/preset-modules@^0.1.4": @@ -1396,30 +1106,14 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" - integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.12.13", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/template@^7.14.5": +"@babel/template@^7.0.0", "@babel/template@^7.14.5", "@babel/template@^7.3.3", "@babel/template@^7.4.0", "@babel/template@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== @@ -1443,32 +1137,18 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" - integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.15" - "@babel/types" "^7.13.14" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" - integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.9", "@babel/traverse@^7.15.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" + "@babel/generator" "^7.15.0" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.7" - "@babel/types" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" debug "^4.1.0" globals "^11.1.0" @@ -1481,22 +1161,18 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" - integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== +"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@cld-apis/utils@^0.1.0": version "0.1.3" @@ -1527,6 +1203,154 @@ resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-http/-/sdk-middleware-http-6.0.11.tgz#0ca16cefe881b68c1d2b77ddbd3a48733a5ee062" integrity sha512-9Keb5rv6fvdA9qdehBEjk/JMrAzlBbg76TodsvhCZZZteaO0+ybjFgtV0ekdGyI4awxOxgsiPDZrTmQNvnI5Wg== +"@commitlint/cli@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-13.1.0.tgz#3608bb24dbef41aaa0729ffe65c7f9b57409626a" + integrity sha512-xN/uNYWtGTva5OMSd+xA6e6/c2jk8av7MUbdd6w2cw89u6z3fAWoyiH87X0ewdSMNYmW/6B3L/2dIVGHRDID5w== + dependencies: + "@commitlint/format" "^13.1.0" + "@commitlint/lint" "^13.1.0" + "@commitlint/load" "^13.1.0" + "@commitlint/read" "^13.1.0" + "@commitlint/types" "^13.1.0" + lodash "^4.17.19" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-13.1.0.tgz#f02871d50c73db0a31b777231f49203b964d9d59" + integrity sha512-zukJXqdr6jtMiVRy3tTHmwgKcUMGfqKDEskRigc5W3k2aYF4gBAtCEjMAJGZgSQE4DMcHeok0pEV2ANmTpb0cw== + dependencies: + conventional-changelog-conventionalcommits "^4.3.1" + +"@commitlint/config-lerna-scopes@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-lerna-scopes/-/config-lerna-scopes-13.1.0.tgz#c30006ff60a2a625184b9c37bc2ba8ce44ff0d60" + integrity sha512-/OTFM75GYHFRm5m1TKOpHsLvAUuGL6GYnA5xJDT4fe2vPIGqgBYVL9hEolKYTJfDtviBq4fEkEWZQjQF5e4KgA== + dependencies: + globby "^11.0.1" + import-from "4.0.0" + resolve-pkg "2.0.0" + semver "7.3.5" + +"@commitlint/ensure@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-13.1.0.tgz#057a325b54f104cbeed2a26bacb5eec29298e7d5" + integrity sha512-NRGyjOdZQnlYwm9it//BZJ2Vm+4x7G9rEnHpLCvNKYY0c6RA8Qf7hamLAB8dWO12RLuFt06JaOpHZoTt/gHutA== + dependencies: + "@commitlint/types" "^13.1.0" + lodash "^4.17.19" + +"@commitlint/execute-rule@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-13.0.0.tgz#7823303b82b5d86dac46e67cfa005f4433476981" + integrity sha512-lBz2bJhNAgkkU/rFMAw3XBNujbxhxlaFHY3lfKB/MxpAa+pIfmWB3ig9i1VKe0wCvujk02O0WiMleNaRn2KJqw== + +"@commitlint/format@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-13.1.0.tgz#915570d958d83bae5fa645de6b1e6c9dd1362ec0" + integrity sha512-n46rYvzf+6Sm99TJjTLjJBkjm6JVcklt31lDO5Q+pCIV0NnJ4qIUcwa6wIL9a9Vqb1XzlMgtp27E0zyYArkvSg== + dependencies: + "@commitlint/types" "^13.1.0" + chalk "^4.0.0" + +"@commitlint/is-ignored@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-13.1.0.tgz#88a5dfbc8f9ea91e860323af6681aa131322b0c4" + integrity sha512-P6zenLE5Tn3FTNjRzmL9+/KooTXEI0khA2TmUbuei9KiycemeO4q7Xk7w7aXwFPNAbN0O9oI7z3z7cFpzKJWmQ== + dependencies: + "@commitlint/types" "^13.1.0" + semver "7.3.5" + +"@commitlint/lint@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-13.1.0.tgz#ea56ce0970f9b75ffe7bd2c9968f4f1d4461ba3a" + integrity sha512-qH9AYSQDDTaSWSdtOvB3G1RdPpcYSgddAdFYqpFewlKQ1GJj/L+sM7vwqCG7/ip6AiM04Sry1sgmFzaEoFREUA== + dependencies: + "@commitlint/is-ignored" "^13.1.0" + "@commitlint/parse" "^13.1.0" + "@commitlint/rules" "^13.1.0" + "@commitlint/types" "^13.1.0" + +"@commitlint/load@>6.1.1", "@commitlint/load@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-13.1.0.tgz#d6c9b547551f2216586d6c1964d93f92e7b04277" + integrity sha512-zlZbjJCWnWmBOSwTXis8H7I6pYk6JbDwOCuARA6B9Y/qt2PD+NCo0E/7EuaaFoxjHl+o56QR5QttuMBrf+BJzg== + dependencies: + "@commitlint/execute-rule" "^13.0.0" + "@commitlint/resolve-extends" "^13.0.0" + "@commitlint/types" "^13.1.0" + chalk "^4.0.0" + cosmiconfig "^7.0.0" + lodash "^4.17.19" + resolve-from "^5.0.0" + +"@commitlint/message@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-13.0.0.tgz#4f8d56b59e9cee8b37b8db6b48c26d7faf33762f" + integrity sha512-W/pxhesVEk8747BEWJ+VGQ9ILHmCV27/pEwJ0hGny1wqVquUR8SxvScRCbUjHCB1YtWX4dEnOPXOS9CLH/CX7A== + +"@commitlint/parse@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-13.1.0.tgz#b88764be36527a468531e1b8dd2d95693ff9ba34" + integrity sha512-xFybZcqBiKVjt6vTStvQkySWEUYPI0AcO4QQELyy29o8EzYZqWkhUfrb7K61fWiHsplWL1iL6F3qCLoxSgTcrg== + dependencies: + "@commitlint/types" "^13.1.0" + conventional-changelog-angular "^5.0.11" + conventional-commits-parser "^3.0.0" + +"@commitlint/read@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-13.1.0.tgz#ccb65426b1228b8a598ed36966722d19756eea41" + integrity sha512-NrVe23GMKyL6i1yDJD8IpqCBzhzoS3wtLfDj8QBzc01Ov1cYBmDojzvBklypGb+MLJM1NbzmRM4PR5pNX0U/NQ== + dependencies: + "@commitlint/top-level" "^13.0.0" + "@commitlint/types" "^13.1.0" + fs-extra "^10.0.0" + git-raw-commits "^2.0.0" + +"@commitlint/resolve-extends@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-13.0.0.tgz#a38fcd2474483bf9ec6e1e901b27b8a23abe7d73" + integrity sha512-1SyaE+UOsYTkQlTPUOoj4NwxQhGFtYildVS/d0TJuK8a9uAJLw7bhCLH2PEeH5cC2D1do4Eqhx/3bLDrSLH3hg== + dependencies: + import-fresh "^3.0.0" + lodash "^4.17.19" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-13.1.0.tgz#04f5aaf952884364ebf4e899ec440e3985f0e580" + integrity sha512-b6F+vBqEXsHVghrhomG0Y6YJimHZqkzZ0n5QEpk03dpBXH2OnsezpTw5e+GvbyYCc7PutGbYVQkytuv+7xCxYA== + dependencies: + "@commitlint/ensure" "^13.1.0" + "@commitlint/message" "^13.0.0" + "@commitlint/to-lines" "^13.0.0" + "@commitlint/types" "^13.1.0" + execa "^5.0.0" + +"@commitlint/to-lines@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-13.0.0.tgz#5937dd287e3a4f984580ea94bdb994132169a780" + integrity sha512-mzxWwCio1M4/kG9/69TTYqrraQ66LmtJCYTzAZdZ2eJX3I5w52pSjyP/DJzAUVmmJCYf2Kw3s+RtNVShtnZ+Rw== + +"@commitlint/top-level@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-13.0.0.tgz#f8e1d1425240cd72c600e4da5716418c4ea0bda2" + integrity sha512-baBy3MZBF28sR93yFezd4a5TdHsbXaakeladfHK9dOcGdXo9oQe3GS5hP3BmlN680D6AiQSN7QPgEJgrNUWUCg== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-13.1.0.tgz#12cfb6e932372b1816af8900e2d10694add28191" + integrity sha512-zcVjuT+OfKt8h91vhBxt05RMcTGEx6DM7Q9QZeuMbXFk6xgbsSEDMMapbJPA1bCZ81fa/1OQBijSYPrKvtt06g== + dependencies: + chalk "^4.0.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -1566,10 +1390,15 @@ date-fns "^1.27.2" figures "^1.7.0" +"@cypress/mount-utils@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cypress/mount-utils/-/mount-utils-1.0.2.tgz#afbc4f8c350b7cd86edc5ad0db0cbe1e0181edc8" + integrity sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw== + "@cypress/request@^2.88.5": - version "2.88.5" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" - integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== + version "2.88.6" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.6.tgz#a970dd675befc6bdf8a8921576c01f51cc5798e9" + integrity sha512-z0UxBE/+qaESAHY9p9sM2h8Y4XqtsbDCt0/DPOrqA/RZgKi4PkxdpXyK4wCCnSk1xHqWHZZAE+gV6aDAR6+caQ== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1584,13 +1413,20 @@ isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" - oauth-sign "~0.9.0" performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" tough-cookie "~2.5.0" tunnel-agent "^0.6.0" - uuid "^3.3.2" + uuid "^8.3.2" + +"@cypress/vue@^2.0.1": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@cypress/vue/-/vue-2.2.3.tgz#81822914019c47b5a6011652e50c5aad6041c6cc" + integrity sha512-KgrUjiLVyoiU5xb5JAhsdFLDzyh7Njhm4TMuINFsoBZkt4PJptGCsMzdaI7lk1XX20NGvg8MPIFbbQi+L0L8qQ== + dependencies: + "@cypress/mount-utils" "1.0.2" + "@vue/test-utils" "^1.1.3" "@cypress/xvfb@^1.2.4": version "1.2.4" @@ -1600,15 +1436,15 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@eslint/eslintrc@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" - integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -1697,6 +1533,11 @@ postcss "7.0.32" purgecss "^2.3.0" +"@gar/promisify@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" + integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + "@glidejs/glide@^3.3.0": version "3.4.1" resolved "https://registry.yarnpkg.com/@glidejs/glide/-/glide-3.4.1.tgz#8ad21f3169076e32bbfd75ed0753807662c25e90" @@ -1836,13 +1677,21 @@ valid-url "1.0.9" "@graphql-tools/merge@^6.2.11", "@graphql-tools/merge@^6.2.12", "@graphql-tools/merge@^6.2.14": - version "6.2.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.14.tgz#694e2a2785ba47558e5665687feddd2935e9d94e" - integrity sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow== + version "6.2.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" + integrity sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow== dependencies: - "@graphql-tools/schema" "^7.0.0" - "@graphql-tools/utils" "^7.7.0" - tslib "~2.2.0" + "@graphql-tools/schema" "^8.0.2" + "@graphql-tools/utils" "8.0.2" + tslib "~2.3.0" + +"@graphql-tools/merge@^8.0.2": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.0.3.tgz#56c844bc5d7d833456695c8e5eda4f1a0d5be873" + integrity sha512-lVMyW9cREs+nQYbUvMaaqSl+pRCezl2RafNMFi/04akjvOtjVefdi7n3pArpSqPhLHPJDyQRlI8CK8cmOZ9jTA== + dependencies: + "@graphql-tools/utils" "^8.1.2" + tslib "~2.3.0" "@graphql-tools/mock@^7.0.0": version "7.0.0" @@ -1869,22 +1718,23 @@ tslib "~2.0.1" "@graphql-tools/relay-operation-optimizer@^6.2.5": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.0.tgz#f8c7f6c8aa4a9cf50ab151fbc5db4f4282a79532" - integrity sha512-Or3UgRvkY9Fq1AAx7q38oPqFmTepLz7kp6wDHKyR0ceG7AvHv5En22R12mAeISInbhff4Rpwgf6cE8zHRu6bCw== + version "6.3.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.7.tgz#16c874a091a1a37bc308136d87277443cebe5056" + integrity sha512-7UYnxPvIUDrdEKFAYrNF/YsoVBYMj6l3rwwuNs1jZyzAVZh8uq3TdvaFIIlcYvRychj45BEsg1jvRBvmhTaj3Q== dependencies: - "@graphql-tools/utils" "^7.1.0" - relay-compiler "10.1.0" - tslib "~2.0.1" + "@graphql-tools/utils" "^8.1.1" + relay-compiler "11.0.2" + tslib "~2.3.0" "@graphql-tools/resolvers-composition@^6.2.5": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.2.8.tgz#fa91be40ef424e88290cc101e1ab67b1201ce04f" - integrity sha512-/2xedRZYhvts88x9Rv/VWrk69wpl84M7cuYZ4aAacqxnXNm7zxT+MqeL54lsRhq2Kb2yjEhtfguEiqOn+kV8Xg== + version "6.3.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.3.5.tgz#846856247c31f73381e4e9221971c41a1e429c08" + integrity sha512-bN2ztDSkcA5MIL9pCxmBCDQDaVYSuUbs3Hi1QWEMRSor3QaMbm6I3Ir1wFNaLgXNe9XrGxugZ5jUD78a768+dQ== dependencies: - "@graphql-tools/utils" "^7.9.1" + "@graphql-tools/utils" "^8.1.1" lodash "4.17.21" - tslib "~2.2.0" + micromatch "^4.0.4" + tslib "~2.3.0" "@graphql-tools/schema@^7.0.0", "@graphql-tools/schema@^7.1.4", "@graphql-tools/schema@^7.1.5": version "7.1.5" @@ -1895,6 +1745,16 @@ tslib "~2.2.0" value-or-promise "1.0.6" +"@graphql-tools/schema@^8.0.2": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.1.2.tgz#913879da1a7889a9488e9b7dc189e7c83eff74be" + integrity sha512-rX2pg42a0w7JLVYT+f/yeEKpnoZL5PpLq68TxC3iZ8slnNBNjfVfvzzOn8Q8Q6Xw3t17KP9QespmJEDfuQe4Rg== + dependencies: + "@graphql-tools/merge" "^8.0.2" + "@graphql-tools/utils" "^8.1.1" + tslib "~2.3.0" + value-or-promise "1.0.10" + "@graphql-tools/stitch@^7.3.0": version "7.5.3" resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-7.5.3.tgz#1b339942ebb93ea4e9da248439b8cf06660688cc" @@ -1933,7 +1793,14 @@ valid-url "1.0.9" ws "7.4.5" -"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.1", "@graphql-tools/utils@^7.1.0", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0", "@graphql-tools/utils@^7.9.1": +"@graphql-tools/utils@8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.0.2.tgz#795a8383cdfdc89855707d62491c576f439f3c51" + integrity sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ== + dependencies: + tslib "~2.3.0" + +"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.1", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-7.10.0.tgz#07a4cb5d1bec1ff1dc1d47a935919ee6abd38699" integrity sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w== @@ -1942,6 +1809,13 @@ camel-case "4.1.2" tslib "~2.2.0" +"@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.1.2": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.1.2.tgz#a376259fafbca7532fda657e3abeec23b545e5d3" + integrity sha512-3G+NIBR5mHjPm78jAD0l07JRE0XH+lr9m7yL/wl69jAzK0Jr/H+/Ok4ljEolI70iglz+ZhIShVPAwyesF6rnFg== + dependencies: + tslib "~2.3.0" + "@graphql-tools/wrap@^7.0.0", "@graphql-tools/wrap@^7.0.4", "@graphql-tools/wrap@^7.0.6": version "7.0.8" resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-7.0.8.tgz#ad41e487135ca3ea1ae0ea04bb3f596177fb4f50" @@ -1958,10 +1832,24 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@intlify/shared@^9.0.0": - version "9.1.5" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.5.tgz#4e68bdaa4a3cdea6bbbff5c0d8f653890b056dbc" - integrity sha512-ZWLbwRwEyR3/Zd7QfANFraNeqMOUKgI+u/JeK+56AJqU9zfiemBHaYwF6aAh0C5aIrB4GAq3LYtGk2qsQhdyOg== + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.7.tgz#e7d8bc90cb59dc17dd7b4c85a73db16fcb7891fc" + integrity sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ== "@intlify/vue-i18n-extensions@^1.0.2": version "1.0.2" @@ -1979,6 +1867,22 @@ js-yaml "^3.13.1" json5 "^2.1.1" +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" @@ -1988,6 +1892,18 @@ chalk "^2.0.1" slash "^2.0.0" +"@jest/console@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" + integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.0.6" + jest-util "^27.0.6" + slash "^3.0.0" + "@jest/core@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" @@ -2022,6 +1938,41 @@ slash "^2.0.0" strip-ansi "^5.0.0" +"@jest/core@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" + integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== + dependencies: + "@jest/console" "^27.0.6" + "@jest/reporters" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^27.0.6" + jest-config "^27.0.6" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-resolve-dependencies "^27.0.6" + jest-runner "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + jest-watcher "^27.0.6" + micromatch "^4.0.4" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + "@jest/environment@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" @@ -2032,6 +1983,16 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" +"@jest/environment@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" + integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== + dependencies: + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + "@jest/fake-timers@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" @@ -2041,6 +2002,27 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" +"@jest/fake-timers@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" + integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== + dependencies: + "@jest/types" "^27.0.6" + "@sinonjs/fake-timers" "^7.0.2" + "@types/node" "*" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-util "^27.0.6" + +"@jest/globals@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" + integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/types" "^27.0.6" + expect "^27.0.6" + "@jest/reporters@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" @@ -2068,6 +2050,36 @@ source-map "^0.6.0" string-length "^2.0.0" +"@jest/reporters@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" + integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.0.0" + "@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" @@ -2077,6 +2089,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" + integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@jest/test-result@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" @@ -2086,6 +2107,16 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" +"@jest/test-result@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" + integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== + dependencies: + "@jest/console" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@jest/test-sequencer@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" @@ -2096,6 +2127,16 @@ jest-runner "^24.9.0" jest-runtime "^24.9.0" +"@jest/test-sequencer@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" + integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== + dependencies: + "@jest/test-result" "^27.0.6" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-runtime "^27.0.6" + "@jest/transform@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" @@ -2118,6 +2159,27 @@ source-map "^0.6.1" write-file-atomic "2.4.1" +"@jest/transform@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" + integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.0.6" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-regex-util "^27.0.6" + jest-util "^27.0.6" + micromatch "^4.0.4" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -2127,6 +2189,33 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" + integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@juggle/resize-observer@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz#b50a781709c81e10701004214340f25475a171a0" + integrity sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw== + "@lerna/add@3.21.0": version "3.21.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" @@ -2813,14 +2902,14 @@ write-file-atomic "^2.3.0" "@microsoft/api-documenter@^7.13.7": - version "7.13.39" - resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.13.39.tgz#62882d760a640336b98998ea301594b21ab6fc29" - integrity sha512-it9JJ2bz/ByQuqRw0pfrKBhYssjAqZCrQWK+IB2O4Owdid7zd3guHPK2LZoDaiExltHam4Iu9RgwyLGBAbX0tA== + version "7.13.41" + resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.13.41.tgz#91d305e5ff6890a0b8dfe548172f819ef6f10a5a" + integrity sha512-ql4ALuhITlDh9uewwiUyICRUJXjF1uo4UFNHreuI7MOlsc5WSQ9IlDMSixKn9nNaf3zFOCJ/YeS0BfqhP3G27A== dependencies: "@microsoft/api-extractor-model" "7.13.5" "@microsoft/tsdoc" "0.13.2" "@rushstack/node-core-library" "3.40.0" - "@rushstack/ts-command-line" "4.8.1" + "@rushstack/ts-command-line" "4.9.0" colors "~1.2.1" js-yaml "~3.13.1" resolve "~1.17.0" @@ -2835,16 +2924,16 @@ "@rushstack/node-core-library" "3.40.0" "@microsoft/api-extractor@^7.18.3": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.5.tgz#cc2804d7c8b9d0f1e63fd85d0448569b767db102" - integrity sha512-NUGS6WxexziEnroHUOI3KKVmMX02god7SLA8Y4a5GKCL5k7AHuHFqP2bpd5Otx2odfbdj15ObO7FU/XA3Oxh8w== + version "7.18.7" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.7.tgz#851d2413a3c5d696f7cc914eb59de7a7882b2e8b" + integrity sha512-JhtV8LoyLuIecbgCPyZQg08G1kngIRWpai2UzwNil9mGVGYiDZVeeKx8c2phmlPcogmMDm4oQROxyuiYt5sJiw== dependencies: "@microsoft/api-extractor-model" "7.13.5" "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" "@rushstack/node-core-library" "3.40.0" - "@rushstack/rig-package" "0.2.13" - "@rushstack/ts-command-line" "4.8.1" + "@rushstack/rig-package" "0.3.0" + "@rushstack/ts-command-line" "4.9.0" colors "~1.2.1" lodash "~4.17.15" resolve "~1.17.0" @@ -2880,18 +2969,18 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@nodelib/fs.stat" "2.0.4" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -2899,13 +2988,21 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.4" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/fs@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" + integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + "@npmcli/move-file@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" @@ -2914,41 +3011,42 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@nuxt/babel-preset-app@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.15.4.tgz#e5ca0714806db1ede41ae6f0a42d34022ab68150" - integrity sha512-49boY5aSfs7ImExW2EHutkfyxoipZeCF2MxF8kYKyhJz/9esoJdo6eY8JNhzDZYISDaWSeN2w5HjiMVo9zTrjg== +"@nuxt/babel-preset-app@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.15.8.tgz#c78eb8c47c1cafec1c5aba6a52385a3ce877b968" + integrity sha512-z23bY5P7dLTmIbk0ZZ95mcEXIEER/mQCOqEp2vxnzG2nurks+vq6tNcUAXqME1Wl6aXWTXlqky5plBe7RQHzhQ== dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/core" "^7.13.14" - "@babel/helper-compilation-targets" "^7.13.13" + "@babel/compat-data" "^7.14.0" + "@babel/core" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-module-imports" "^7.13.12" "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.13.5" + "@babel/plugin-proposal-decorators" "^7.13.15" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-runtime" "^7.13.10" - "@babel/preset-env" "^7.13.12" - "@babel/runtime" "^7.13.10" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-transform-runtime" "^7.13.15" + "@babel/preset-env" "^7.14.1" + "@babel/runtime" "^7.14.0" "@vue/babel-preset-jsx" "^1.2.4" core-js "^2.6.5" - core-js-compat "^3.10.0" + core-js-compat "^3.12.1" regenerator-runtime "^0.13.7" -"@nuxt/builder@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.15.4.tgz#0b54e0acb48aacc339af71b3b5d4df2d52a3d9da" - integrity sha512-C2pmWH1ueUnwo/W0YIwlzQRqLy9BkoQTUHvy849hDTE4EFeTnW9g8cE9sGI0MTfmKY2dDDx2dc/W63MPP8r3wQ== +"@nuxt/builder@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.15.8.tgz#66ead4be0a2ce6932a2b7e521cfe1621e49290e7" + integrity sha512-WVhN874LFMdgRiJqpxmeKI+vh5lhCUBVOyR9PhL1m1V/GV3fb+Dqc1BKS6XgayrWAWavPLveCJmQ/FID0puOfQ== dependencies: "@nuxt/devalue" "^1.2.5" - "@nuxt/utils" "2.15.4" - "@nuxt/vue-app" "2.15.4" - "@nuxt/webpack" "2.15.4" - chalk "^4.1.0" + "@nuxt/utils" "2.15.8" + "@nuxt/vue-app" "2.15.8" + "@nuxt/webpack" "2.15.8" + chalk "^4.1.1" chokidar "^3.5.1" consola "^2.15.3" fs-extra "^9.1.0" - glob "^7.1.6" + glob "^7.1.7" hash-sum "^2.0.0" ignore "^5.1.8" lodash "^4.17.21" @@ -2956,20 +3054,20 @@ serialize-javascript "^5.0.1" upath "^2.0.1" -"@nuxt/cli@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.15.4.tgz#d5f33ee3e1e0cc4a3edaaf21e9b0c294cd0e4097" - integrity sha512-KlBXwvvgP0H3lcub5PGez2OhaNo3p8ln6Dhejmv8WoOfsn/z6Qa7+3sGUE3a03uBbh59JXYLSBFzhVDVx7NdDg== +"@nuxt/cli@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.15.8.tgz#3b946ee08c7b5b3223c8952873c65727e775ec30" + integrity sha512-KcGIILW/dAjBKea1DHsuLCG1sNzhzETShwT23DhXWO304qL8ljf4ndYKzn2RenzauGRGz7MREta80CbJCkLSHw== dependencies: - "@nuxt/config" "2.15.4" - "@nuxt/utils" "2.15.4" - boxen "^5.0.0" - chalk "^4.1.0" + "@nuxt/config" "2.15.8" + "@nuxt/utils" "2.15.8" + boxen "^5.0.1" + chalk "^4.1.1" compression "^1.7.4" connect "^3.7.0" consola "^2.15.3" crc "^3.8.0" - defu "^3.2.2" + defu "^4.0.1" destr "^1.1.0" execa "^5.0.0" exit "^0.1.2" @@ -2986,43 +3084,43 @@ upath "^2.0.1" wrap-ansi "^7.0.0" -"@nuxt/components@^2.1.4": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.1.6.tgz#5fc35c168bdfaa9f48854e335e5710ced8f71680" - integrity sha512-TXgqc43xIn+Lgnkc2NY1IB3psZxynjMlGIl4q5jB4Ylzf4e7LAB5R6nFSoR/0etkdvifQmGsMlwV6rbjUOdSrw== - dependencies: - chalk "^4.1.0" - chokidar "^3.5.1" - glob "^7.1.6" - globby "^11.0.3" - scule "^0.1.1" +"@nuxt/components@^2.1.8": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.2.1.tgz#49c4442ac5a0ef49f49ef7d9960f4376fc3e7c78" + integrity sha512-r1LHUzifvheTnJtYrMuA+apgsrEJbxcgFKIimeXKb+jl8TnPWdV3egmrxBCaDJchrtY/wmHyP47tunsft7AWwg== + dependencies: + chalk "^4.1.2" + chokidar "^3.5.2" + glob "^7.1.7" + globby "^11.0.4" + scule "^0.2.1" semver "^7.3.5" upath "^2.0.1" - vue-template-compiler "^2.6.12" + vue-template-compiler "^2.6.14" -"@nuxt/config@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.15.4.tgz#b99d1623a7b9ed3f0fe0dbf768c7424f1455d896" - integrity sha512-IwbsSrCMXN0QLY4e0tFImMsFxGtAFaf42TuYkwwJiG4YgqaY6CBHI6GYmmcDma+kPtoZ85n0RRyyuQp6lUwBLw== +"@nuxt/config@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.15.8.tgz#56cc1b052871072a26f76c6d3b69d9b53808ce52" + integrity sha512-KMQbjmUf9RVHeTZEf7zcuFnh03XKZioYhok6GOCY+leu3g5n/UhyPvLnTsgTfsLWohqoRoOm94u4A+tNYwn9VQ== dependencies: - "@nuxt/utils" "2.15.4" + "@nuxt/utils" "2.15.8" consola "^2.15.3" - defu "^3.2.2" + defu "^4.0.1" destr "^1.1.0" - dotenv "^8.2.0" + dotenv "^9.0.2" lodash "^4.17.21" rc9 "^1.2.0" std-env "^2.3.0" - ufo "^0.6.10" + ufo "^0.7.4" -"@nuxt/core@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.15.4.tgz#73dee1a03ba82bad745b23e5c72e66f9c73b29d9" - integrity sha512-SM+mEE7X3RgO+cyD0VP62pJ9Pd9KUAGDka32uaQAGEwGdRyoz1g1jUayzfnut75Pk0s96zuOmsD+uwdIGTU0vQ== +"@nuxt/core@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.15.8.tgz#443d13da9edc5c4ae47d7902f1d6504a8cce27a2" + integrity sha512-31pipWRvwHiyB5VDqffgSO7JtmHxyzgshIzuZzSinxMbVmK3BKsOwacD/51oEyELgrPlUgLqcY9dg+RURgmHGQ== dependencies: - "@nuxt/config" "2.15.4" - "@nuxt/server" "2.15.4" - "@nuxt/utils" "2.15.4" + "@nuxt/config" "2.15.8" + "@nuxt/server" "2.15.8" + "@nuxt/utils" "2.15.8" consola "^2.15.3" fs-extra "^9.1.0" hable "^3.0.0" @@ -3036,7 +3134,7 @@ dependencies: consola "^2.9.0" -"@nuxt/friendly-errors-webpack-plugin@^2.5.0": +"@nuxt/friendly-errors-webpack-plugin@^2.5.1": version "2.5.1" resolved "https://registry.yarnpkg.com/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.1.tgz#3ab815c31eb43859a239848a85481157aaf7b07e" integrity sha512-mKN0Mbb1PjJYBzrswsyWvSEZw5Jxi0fQZPMA0ssrTmkz9lvtxtXq4luhX31OpULUvbc0jLaBu/SL0ExlxIbTlw== @@ -3046,29 +3144,29 @@ error-stack-parser "^2.0.0" string-width "^2.0.0" -"@nuxt/generator@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.15.4.tgz#6060ac9c37f78fa9c99ad73735a41da103d3f76e" - integrity sha512-Yq5tlLszZjBaw2PPt5d+WCDmfqcYrPxHngaDo/VmQR0tGyGEUETGNCYvJziOmErk0pZjk54npSr7ftnrFtJXxA== +"@nuxt/generator@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.15.8.tgz#d6bd4a677edf14f34d516e13bcb70d62cdd4c5b4" + integrity sha512-hreLdYbBIe3SWcP8LsMG7OlDTx2ZVucX8+f8Vrjft3Q4r8iCwLMYC1s1N5etxeHAZfS2kZiLmF92iscOdfbgMQ== dependencies: - "@nuxt/utils" "2.15.4" - chalk "^4.1.0" + "@nuxt/utils" "2.15.8" + chalk "^4.1.1" consola "^2.15.3" - defu "^3.2.2" + defu "^4.0.1" devalue "^2.0.1" fs-extra "^9.1.0" html-minifier "^4.0.0" - node-html-parser "^3.1.2" - ufo "^0.6.10" + node-html-parser "^3.2.0" + ufo "^0.7.4" "@nuxt/loading-screen@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-2.0.3.tgz#1d6b1f976bb143c6592231af0bf7fa6245f6ebd2" - integrity sha512-ThvxxUpfTZezzz0gAgyG4vHCM7KDeA692EL7lKrZ/fU8JvXlG6LYngVLWAobexBsydtGkuZyKCwCVDnEGNL4jw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-2.0.4.tgz#756abd861f77c57001be4d21d47534723afb4f3a" + integrity sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ== dependencies: connect "^3.7.0" - defu "^2.0.4" - get-port-please "^1.0.0" + defu "^5.0.0" + get-port-please "^2.2.0" node-res "^5.0.1" serve-static "^1.14.1" @@ -3081,13 +3179,13 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@nuxt/server@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.15.4.tgz#6b9beae7aa945387d277a2f442368f8beb82670d" - integrity sha512-RxHBif+12v9Tqg0hBADGRJA+HnVJDd5RDDlo4plHhIU8KhgfewGGSdF3PAltHoCavXAHrTVdTEAZKN11gtAAlA== +"@nuxt/server@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.15.8.tgz#ec733897de78f858ae0eebd174e8549f247c4e99" + integrity sha512-E4EtXudxtWQBUHMHOxFwm5DlPOkJbW+iF1+zc0dGmXLscep1KWPrlP+4nrpZj8/UKzpupamE8ZTS9I4IbnExVA== dependencies: - "@nuxt/utils" "2.15.4" - "@nuxt/vue-renderer" "2.15.4" + "@nuxt/utils" "2.15.8" + "@nuxt/vue-renderer" "2.15.8" "@nuxtjs/youch" "^4.2.3" compression "^1.7.4" connect "^3.7.0" @@ -3102,31 +3200,31 @@ serve-placeholder "^1.2.3" serve-static "^1.14.1" server-destroy "^1.0.1" - ufo "^0.6.10" + ufo "^0.7.4" "@nuxt/telemetry@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-1.3.3.tgz#beefa94c6032a1312c7dc9c8784c6b8cc3aa42ae" - integrity sha512-ElnoAJo1n/Ui0j9i3xqhXajoGJdEwmkEtsWftlZUpQNJxdfoz+623qnt9XHMYa0X5Nf1PXYdcUKa2u4AASXOjA== + version "1.3.6" + resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-1.3.6.tgz#a27a27b2f56a2ad4ef2c1bef82e12f0bc0dc40ac" + integrity sha512-sZpLf/rU3cvN8/alR1HpJIl3mHPA1GOg41GKdOOrtw7Gi/lCEVk4hK+lpXgYInZ2n6i1JyknpKhM9YzX2RU33w== dependencies: arg "^5.0.0" - chalk "^4.1.0" - ci-info "^2.0.0" - consola "^2.15.0" + chalk "^4.1.1" + ci-info "^3.1.1" + consola "^2.15.3" create-require "^1.1.1" - defu "^3.2.2" + defu "^5.0.0" destr "^1.1.0" - dotenv "^8.2.0" + dotenv "^9.0.2" fs-extra "^8.1.0" - git-url-parse "^11.4.3" + git-url-parse "^11.4.4" inquirer "^7.3.3" - is-docker "^2.1.1" - jiti "^1.3.0" - nanoid "^3.1.20" + is-docker "^2.2.1" + jiti "^1.9.2" + nanoid "^3.1.23" node-fetch "^2.6.1" parse-git-config "^3.0.0" rc9 "^1.2.0" - std-env "^2.2.1" + std-env "^2.3.0" "@nuxt/types@^0.7.9": version "0.7.9" @@ -3162,31 +3260,31 @@ ts-loader "^8.0.17" typescript "~4.2" -"@nuxt/utils@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.15.4.tgz#1c84dfa964357224a79d402797c9feab2040991c" - integrity sha512-ngvE7TDVXDIQgB+vvENEPfwetWu5zxGX0vqszeEB6248MZAoU1nBqT+nVH9tIm1/aiZZz1Wg0plc4d+QLizpmA== +"@nuxt/utils@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.15.8.tgz#0c3594f01be63ab521583904cafd32215b719d4c" + integrity sha512-e0VBarUbPiQ4ZO1T58puoFIuXme7L5gk1QfwyxOONlp2ryE7aRyZ8X/mryuOiIeyP64c4nwSUtN7q9EUWRb7Lg== dependencies: consola "^2.15.3" create-require "^1.1.1" fs-extra "^9.1.0" hash-sum "^2.0.0" - jiti "^1.6.4" + jiti "^1.9.2" lodash "^4.17.21" proper-lockfile "^4.1.2" semver "^7.3.5" serialize-javascript "^5.0.1" signal-exit "^3.0.3" - ua-parser-js "^0.7.26" - ufo "^0.6.10" + ua-parser-js "^0.7.28" + ufo "^0.7.4" -"@nuxt/vue-app@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.15.4.tgz#85f478ddbde4fe3f64fbe9d8878ceb41a1a704fb" - integrity sha512-AtvMkY0OdsqlLQLEHbc61fSX3Y6HGsZPbvdFPuBX8fjFVhOCggC9HtYKcJf/S7qXhnDm241biDCy7U51myxuPw== +"@nuxt/vue-app@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.15.8.tgz#46b7ec8fc93f8d1f4cdf4f6b04134cb40ceb7c4a" + integrity sha512-FJf9FSMPsWT3BqkS37zEuPTxLKzSg2EIwp1sP8Eou25eE08qxRfe2PwTVA8HnXUPNdpz2uk/T9DlNw+JraiFRQ== dependencies: node-fetch "^2.6.1" - ufo "^0.6.10" + ufo "^0.7.4" unfetch "^4.2.0" vue "^2.6.12" vue-client-only "^2.0.0" @@ -3196,42 +3294,42 @@ vue-template-compiler "^2.6.12" vuex "^3.6.2" -"@nuxt/vue-renderer@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.15.4.tgz#39831811fff62f4ba65200163d523d0fd7311fee" - integrity sha512-UQzU4XzYFBOiwrZvh4ORcVEQbNzXPfub3/MWWZiYR7uuKjCfRNmU/ZIvAcSsWCrkyc1bvaw8Iehq4h0z88ZyQw== +"@nuxt/vue-renderer@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.15.8.tgz#1cd781de18724a98e27655e89bfe64cd5521491e" + integrity sha512-54I/k+4G6axP9XVYYdtH6M1S6T49OIkarpF6/yIJj0yi3S/2tdJ9eUyfoLZ9EbquZFDDRHBxSswTtr2l/eakPw== dependencies: "@nuxt/devalue" "^1.2.5" - "@nuxt/utils" "2.15.4" + "@nuxt/utils" "2.15.8" consola "^2.15.3" - defu "^3.2.2" + defu "^4.0.1" fs-extra "^9.1.0" lodash "^4.17.21" lru-cache "^5.1.1" - ufo "^0.6.10" + ufo "^0.7.4" vue "^2.6.12" vue-meta "^2.4.0" vue-server-renderer "^2.6.12" -"@nuxt/webpack@2.15.4": - version "2.15.4" - resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.15.4.tgz#f65df7234248c6622f172f84646cde20ef26f347" - integrity sha512-VyrTuTpl+aXjuymHHunBg0c+F7BFuPNWU62A3fwdNoCq4zxHt4+JzXTcQkst2FlL9btJ/y2+OEM7QJRVE0+1FA== +"@nuxt/webpack@2.15.8": + version "2.15.8" + resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.15.8.tgz#6169b4b8a13ee2cdb4987df6c5a401e18c412ef1" + integrity sha512-CzJYFed23Ow/UK0+cI1FVthDre1p2qc8Q97oizG39d3/SIh3aUHjgj8c60wcR+RSxVO0FzZMXkmq02NmA7vWJg== dependencies: - "@babel/core" "^7.13.14" - "@nuxt/babel-preset-app" "2.15.4" - "@nuxt/friendly-errors-webpack-plugin" "^2.5.0" - "@nuxt/utils" "2.15.4" + "@babel/core" "^7.14.0" + "@nuxt/babel-preset-app" "2.15.8" + "@nuxt/friendly-errors-webpack-plugin" "^2.5.1" + "@nuxt/utils" "2.15.8" babel-loader "^8.2.2" cache-loader "^4.1.0" - caniuse-lite "^1.0.30001205" + caniuse-lite "^1.0.30001228" consola "^2.15.3" css-loader "^4.3.0" - cssnano "^4.1.10" + cssnano "^4.1.11" eventsource-polyfill "^0.9.6" extract-css-chunks-webpack-plugin "^4.9.0" file-loader "^6.2.0" - glob "^7.1.6" + glob "^7.1.7" hard-source-webpack-plugin "^0.13.1" hash-sum "^2.0.0" html-webpack-plugin "^4.5.1" @@ -3250,18 +3348,18 @@ std-env "^2.3.0" style-resources-loader "^1.4.1" terser-webpack-plugin "^4.2.3" - thread-loader "^3.0.1" + thread-loader "^3.0.4" time-fix-plugin "^2.0.7" - ufo "^0.6.10" + ufo "^0.7.4" url-loader "^4.1.1" - vue-loader "^15.9.6" + vue-loader "^15.9.7" vue-style-loader "^4.1.3" vue-template-compiler "^2.6.12" webpack "^4.46.0" - webpack-bundle-analyzer "^4.4.0" - webpack-dev-middleware "^4.1.0" + webpack-bundle-analyzer "^4.4.1" + webpack-dev-middleware "^4.2.0" webpack-hot-middleware "^2.25.0" - webpack-node-externals "^2.5.2" + webpack-node-externals "^3.0.0" webpackbar "^4.0.0" "@nuxtjs/composition-api@0.17.0": @@ -3289,13 +3387,13 @@ workbox-cdn "^5.1.4" "@nuxtjs/style-resources@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/style-resources/-/style-resources-1.0.0.tgz#7c4d6be19d7f7cc5d687d689f2ab16c0b94773a1" - integrity sha512-tDRcC/pm8B0Kpxtzb/1/HOBkv3/kPD+2FiCiUBGMB7YriRud9OUPw1pnYCsAH9ftwpMJS4k4XOyUY8FCTk6OxA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@nuxtjs/style-resources/-/style-resources-1.2.1.tgz#9a2b6580b2ed9b06e930bee488a56b8376a263de" + integrity sha512-sOp71gCBNuGK2jchybTtVab83yB7jnSr+hw6DAKDgAGX/jrMYUyxRc9tiFxe+8YDSnqghTgQrkEkqPsfS4D4sg== dependencies: - consola "^2.4.0" - glob-all "^3.1.0" - sass-resources-loader "^2.0.0" + consola "^2.15.3" + glob-all "^3.2.1" + sass-resources-loader "^2.2.4" "@nuxtjs/youch@^4.2.3": version "4.2.3" @@ -3314,18 +3412,18 @@ "@octokit/types" "^6.0.3" "@octokit/endpoint@^6.0.1": - version "6.0.11" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.11.tgz#082adc2aebca6dcefa1fb383f5efb3ed081949d1" - integrity sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ== + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: "@octokit/types" "^6.0.3" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-6.0.0.tgz#7da8d7d5a72d3282c1a3ff9f951c8133a707480d" - integrity sha512-CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ== +"@octokit/openapi-types@^9.5.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.7.0.tgz#9897cdefd629cd88af67b8dbe2e5fb19c63426b2" + integrity sha512-TUJ16DJU8mekne6+KVcMV5g6g/rJlrnIKn7aALG9QrNpnEipFc1xjoarh0PKaAWf2Hf+HwthRKYt+9mCm5RsRg== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -3340,9 +3438,9 @@ "@octokit/types" "^2.0.1" "@octokit/plugin-request-log@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d" - integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@2.4.0": version "2.4.0" @@ -3361,23 +3459,23 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request-error@^2.0.0": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143" - integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg== +"@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: "@octokit/types" "^6.0.3" deprecation "^2.0.0" once "^1.4.0" "@octokit/request@^5.2.0": - version "5.4.15" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.15.tgz#829da413dc7dd3aa5e2cdbb1c7d0ebe1f146a128" - integrity sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag== + version "5.6.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.1.tgz#f97aff075c37ab1d427c49082fefeef0dba2d8ce" + integrity sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ== dependencies: "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^6.7.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" node-fetch "^2.6.1" universal-user-agent "^6.0.0" @@ -3411,17 +3509,17 @@ dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.3", "@octokit/types@^6.7.1": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.13.0.tgz#779e5b7566c8dde68f2f6273861dd2f0409480d0" - integrity sha512-W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": + version "6.25.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.25.0.tgz#c8e37e69dbe7ce55ed98ee63f75054e7e808bf1a" + integrity sha512-bNvyQKfngvAd/08COlYIN54nRgxskmejgywodizQNyiKoXmWRAjKup2/LYwm+T9V0gsKH6tuld1gM0PzmOiB4Q== dependencies: - "@octokit/openapi-types" "^6.0.0" + "@octokit/openapi-types" "^9.5.0" -"@polka/url@^1.0.0-next.9": - version "1.0.0-next.12" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" - integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== +"@polka/url@^1.0.0-next.19": + version "1.0.0-next.20" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.20.tgz#111b5db0f501aa89b05076fa31f0ea0e0c292cd3" + integrity sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q== "@rollup/plugin-babel@^5.1.0": version "5.3.0" @@ -3440,9 +3538,9 @@ graphql-tag "^2.2.2" "@rollup/plugin-node-resolve@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.0.tgz#352f07e430ff377809ec8ec8a6fd636547162dc4" - integrity sha512-41X411HJ3oikIDivT5OKe9EZ6ud6DXudtfNrGbC4nniaxx2esiWjkLOzgnZsWq1IM8YIeL2rzRGLZLBjlhnZtQ== + version "13.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz#b10222f4145a019740acb7738402130d848660c0" + integrity sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w== dependencies: "@rollup/pluginutils" "^3.1.0" "@types/resolve" "1.17.1" @@ -3469,9 +3567,9 @@ picomatch "^2.2.2" "@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" - integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" + integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" @@ -3491,18 +3589,18 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/rig-package@0.2.13": - version "0.2.13" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.2.13.tgz#418f0aeb4c9b33bd8bd2547759fc0ae91fd970c7" - integrity sha512-qQMAFKvfb2ooaWU9DrGIK9d8QfyHy/HiuITJbWenlKgzcDXQvQgEduk57YF4Y7LLasDJ5ZzLaaXwlfX8qCRe5Q== +"@rushstack/rig-package@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.0.tgz#334ad2846797861361b3445d4cc9ae9164b1885c" + integrity sha512-Lj6noF7Q4BBm1hKiBDw94e6uZvq1xlBwM/d2cBFaPqXeGdV+G6r3qaCWfRiSXK0pcHpGGpV5Tb2MdfhVcO6G/g== dependencies: resolve "~1.17.0" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.8.1.tgz#c233a0226112338e58e7e4fd219247b4e7cec883" - integrity sha512-rmxvYdCNRbyRs+DYAPye3g6lkCkWHleqO40K8UPvUAzFqEuj6+YCVssBiOmrUDCoM5gaegSNT0wFDYhz24DWtw== +"@rushstack/ts-command-line@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.9.0.tgz#781ba42cff73cae097b6d5241b6441e7cc2fe6e0" + integrity sha512-kmT8t+JfnvphISF1C5WwY56RefjwgajhSjs9J4ckvAFXZDXR6F5cvF5/RTh7fGCzIomg8esy2PHO/b52zFoZvA== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -3521,15 +3619,29 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^7.0.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@storefront-ui/shared@0.10.2": version "0.10.2" resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.2.tgz#144d3a7d5508563ad97c1882fbd291abb0166349" integrity sha512-EWwct/pMYcXhMKGEE2h7blw0XIvcVokhzdzfl5VROSajtflJkJ11hfaOxFWkB5Zgd6IdS9iwR2ayzVjunVRuEA== -"@storefront-ui/shared@0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.4.tgz#f0579e807e43486f45d3b9942b0cb96ce1fe8f7e" - integrity sha512-luFwpkawD5dnFT9hg40MvX1aZYFXlt1RThcAvpsZjNkxlR4+uGY+9IzFibGE3dOz+zBUvy8RVOT07JKlt4AR0g== +"@storefront-ui/shared@0.10.71": + version "0.10.71" + resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.71.tgz#210665f54f04b62e000c97ce2ce9aa973ce95197" + integrity sha512-fLv7iAEk1YEq7yoZkvWkQNGMH6XqpqqJWjrJ5Hcr51gUvzk0vCLGebOp8iOYbSHmMwRhOkCxUVOFK9oo3WKdAQ== "@storefront-ui/vue@0.10.3": version "0.10.3" @@ -3551,22 +3663,23 @@ vue2-leaflet "^2.5.2" "@storefront-ui/vue@^0.10.3": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@storefront-ui/vue/-/vue-0.10.4.tgz#9550c059948ab03e1b09d4de13d8ec8deced7011" - integrity sha512-OUR1vxUB++G/ToFxNCyphGCUI5TbWT7yJ0+9feQI9Wg71yiRSCsDkDO765KpcyFGhrqchgi3R/YobOt+8dCwiA== + version "0.10.71" + resolved "https://registry.yarnpkg.com/@storefront-ui/vue/-/vue-0.10.71.tgz#18c512d2234db4ba009e49e4391d5062ec05b63f" + integrity sha512-cWdml1ZPx3g1i/kyhktd0cMjQNDgnKi6h3e5+VZS21gJEjmnXyhIilc0gQffRJ852w06fhQ3KXgC3TF6mFEauQ== dependencies: + "@cypress/vue" "^2.0.1" "@glidejs/glide" "^3.3.0" - "@storefront-ui/shared" "0.10.4" + "@storefront-ui/shared" "0.10.71" body-scroll-lock "^3.0.1" cloudinary-build-url "^0.1.1" core-js "^3.6.5" hammerjs "^2.0.8" leaflet "^1.5.1" node-sass "^4.13.1" + nouislider "^15.2.0" sass-loader "^8.0.2" simplebar-vue "^1.4.0" - vue-drag-drop "^1.1.4" - vue-fragment "^1.5.1" + vue "^2.6.12" vue2-leaflet "^2.5.2" "@szmarczak/http-timer@^1.1.2": @@ -3576,10 +3689,10 @@ dependencies: defer-to-connect "^1.0.1" -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@types/argparse@1.0.38": version "1.0.38" @@ -3594,10 +3707,10 @@ "@types/browserslist" "*" postcss "7.x.x" -"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.8": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.8": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -3606,31 +3719,31 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" "@types/body-parser@*": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" + integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== dependencies: "@types/connect" "*" "@types/node" "*" @@ -3643,24 +3756,24 @@ browserslist "*" "@types/clean-css@*": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.4.tgz#4fe4705c384e6ec9ee8454bc3d49089f38dc038a" - integrity sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag== + version "4.2.5" + resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.5.tgz#69ce62cc13557c90ca40460133f672dc52ceaf89" + integrity sha512-NEzjkGGpbs9S9fgC4abuBvTpVwE3i+Acu9BBod3PUyjDVZcNsGx61b8r2PphR61QGPnn0JHVs5ey6/I4eTrkxw== dependencies: "@types/node" "*" source-map "^0.6.0" "@types/compression@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390" - integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.1.tgz#d935a1cd6f5cd9a4dc8b0d8aadf2ee91a2975acc" + integrity sha512-d6K1bU3qIjtfB2u+A1N0WDf62LpewRjrvbqY79qlPwk2otgQ4mWB4+LzPCWTvGmcuVwo+zAroEhsNlJavRcFvg== dependencies: "@types/express" "*" "@types/connect@*", "@types/connect@^3.4.33": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" - integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" @@ -3670,9 +3783,9 @@ integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== "@types/estree@*": - version "0.0.47" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" - integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== "@types/estree@0.0.39": version "0.0.39" @@ -3680,25 +3793,25 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/etag@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/etag/-/etag-1.8.0.tgz#37f0b1f3ea46da7ae319bbedb607e375b4c99f7e" - integrity sha512-EdSN0x+Y0/lBv7YAb8IU4Jgm6DWM+Bqtz7o5qozl96fzaqdqbdfHS5qjdpFeIv7xQ8jSLyjMMNShgYtMajEHyQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/etag/-/etag-1.8.1.tgz#593ca8ddb43acb3db049bd0955fd64d281ab58b9" + integrity sha512-bsKkeSqN7HYyYntFRAmzcwx/dKW4Wa+KVMTInANlI72PWLQmOpZu96j0OqHZGArW4VQwCmJPteQlXaUDeOB0WQ== dependencies: "@types/node" "*" "@types/express-serve-static-core@^4.17.18": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" - integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== + version "4.17.24" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" + integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.11.1": - version "4.17.11" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" - integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -3713,17 +3826,24 @@ "@types/webpack" "^4" "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== dependencies: "@types/minimatch" "*" "@types/node" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + "@types/html-minifier-terser@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" - integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== "@types/html-minifier@^3.5.3": version "3.5.3" @@ -3734,7 +3854,7 @@ "@types/relateurl" "*" "@types/uglify-js" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== @@ -3754,17 +3874,25 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest@^24.0.23": - version "24.9.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" - integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q== +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.24": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: - jest-diff "^24.3.0" + jest-diff "^26.0.0" + pretty-format "^26.0.0" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/json5@^0.0.29": version "0.0.29" @@ -3772,9 +3900,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/less@^3.0.1": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.2.tgz#2761d477678c8374cb9897666871662eb1d1115e" - integrity sha512-62vfe65cMSzYaWmpmhqCMMNl0khen89w57mByPi1OseGfcV/LV03fO8YVrNj7rFQsRWNJo650WWyh6m7p8vZmA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.3.tgz#f9451dbb9548d25391107d65d6401a0cfb15db92" + integrity sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw== "@types/memory-fs@*": version "0.3.3" @@ -3789,26 +3917,26 @@ integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" - integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node-sass@^4.11.1": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@types/node-sass/-/node-sass-4.11.1.tgz#bda27c5181cbf7c090c3058e119633dfb2b6504c" - integrity sha512-wPOmOEEtbwQiPTIgzUuRSQZ3H5YHinsxRGeZzPSDefAm4ylXWnZG9C0adses8ymyplKK0gwv3JkDNO8GGxnWfg== + version "4.11.2" + resolved "https://registry.yarnpkg.com/@types/node-sass/-/node-sass-4.11.2.tgz#ecdaa44a1ba8847bf7dea2aadbfe33a91a263514" + integrity sha512-pOFlTw/OtZda4e+yMjq6/QYuvY0RDMQ+mxXdWj7rfSyf18V8hS4SfgurO+MasAkQsv6Wt6edOGlwh5QqJml9gw== dependencies: "@types/node" "*" "@types/node@*", "@types/node@>= 8", "@types/node@>=6": - version "14.14.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.39.tgz#9ef394d4eb52953d2890e4839393c309aa25d2d1" - integrity sha512-Qipn7rfTxGEDqZiezH+wxqWYR8vcXq5LRpZrETD19Gs4o8LbklbmqotSUsMU+s5G3PJwMRDfNEYoxrcBwIxOuw== + version "16.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.2.tgz#0465a39b5456b61a04d98bd5545f8b34be340cb7" + integrity sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw== "@types/node@10.17.13": version "10.17.13" @@ -3821,19 +3949,19 @@ integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w== "@types/node@^12.12.14", "@types/node@^12.12.2", "@types/node@^12.12.47": - version "12.20.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.8.tgz#e8552c505de64739fc997e28920ff4539fc8f185" - integrity sha512-uxDkaUGwXNDHu5MHqs+FAsmOjNoNibDF1cu4668QG96mQldQfgV3M+UyntXWWrtXSh13jFxEdNUdoLWH46mLKQ== + version "12.20.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.21.tgz#575e91f59c2e79318c2d39a48286c6954e484fd5" + integrity sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA== "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/optimize-css-assets-webpack-plugin@^5.0.1": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#9bf5bdbb57b379f59a37a6775336f42cd6701852" - integrity sha512-PJgbI4KplJfyxKWVrBbEL+rePEBqeozJRMT0mBL3ynhvngASBV/XJ+BneLuJN74RjjMzO0gA5ns80mgubQdZAA== + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#eb2c8b9d3f9f14b72639ac18a1a72998a4313083" + integrity sha512-dpRBcoyUD1uJLzyrnEl0LCwqPc/vprmOrl6fkk0dZEZe0b28rsB6t4WsbFNitFhD4oS8lRZO1+MiKzslfCTTNQ== dependencies: "@types/webpack" "^4" @@ -3842,30 +3970,35 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/prettier@^2.1.5": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + "@types/pug@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2" - integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.5.tgz#69bc700934dd473c7ab97270bd2dbacefe562231" + integrity sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA== "@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/qs@*": - version "6.9.6" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" - integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/relateurl@*": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= + version "0.2.29" + resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.29.tgz#68ccecec3d4ffdafb9c577fe764f912afc050fe6" + integrity sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg== "@types/resolve@1.17.1": version "1.17.1" @@ -3875,22 +4008,22 @@ "@types/node" "*" "@types/serve-static@*", "@types/serve-static@^1.13.4": - version "1.13.9" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" - integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/sinonjs__fake-timers@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae" - integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg== + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz#79df6f358ae8f79e628fe35a63608a0ea8e7cf08" + integrity sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g== "@types/sizzle@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" - integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/source-list-map@*": version "0.1.2" @@ -3902,37 +4035,42 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + "@types/tapable@^1", "@types/tapable@^1.0.5": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" - integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/terser-webpack-plugin@^2.2.1": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-2.2.2.tgz#7cd355affe6e62c0cbc5d2fc9f30fd440d1c0778" - integrity sha512-cesfeuYsaBJwGVvhJC0b8bgKnsxeNT1MkEpy1BhLrEgi1U1SATenWew2J8vr9aZLRcpf6D3T+ReVtoq0vGswuQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-2.2.3.tgz#53ee74f6c237843ddf98ac409c250226412db85b" + integrity sha512-IqmP1OBzNyx9ZNj/3Svf0QFN+cJUrtECceVLENlXhXX4snmkgxo8n3U3wMJv1c066FXqwP+iorzCZCJhshytsw== dependencies: "@types/webpack" "^4" terser "^4.3.9" "@types/uglify-js@*": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" - integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== dependencies: source-map "^0.6.1" "@types/webpack-bundle-analyzer@^3.8.0": - version "3.9.3" - resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.3.tgz#3a12025eb5d86069c30b47a157e62c0aca6e39a1" - integrity sha512-l/vaDMWGcXiMB3CbczpyICivLTB07/JNtn1xebsRXE9tPaUDEHgX3x7YP6jfznG5TOu7I4w0Qx1tZz61znmPmg== + version "3.9.4" + resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.4.tgz#029d31294a3dc36a9d655cf36de30fe9a254e72d" + integrity sha512-I00B3BPLnKArbbLMhocyvY+jEwEAnIWoyPRdWZD+4z6q91dubgLR0czoTdDwfTlmjSfuT5HcMc56b6cCxRKbbQ== dependencies: "@types/webpack" "^4" "@types/webpack-dev-middleware@^3.7.1": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-middleware/-/webpack-dev-middleware-3.7.4.tgz#5190360d93cbfff51ab09167e92ea5f3a0e251dc" - integrity sha512-NV7qwBHYYOxgUo3PB12bBngpW7I4JY2AZTVLszmeNkmGH8DCgBTXKyc9t9KLaaATE07A9bXeJmyHFaE5OiV6mA== + version "3.7.5" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-middleware/-/webpack-dev-middleware-3.7.5.tgz#a5e87668d36b3e8cf2c58a9e27314b7cf0999fce" + integrity sha512-jHcCoRc2Hh6oDozoc27ibKAqrfn8nlewheoFV704EMJqheaOe7HxZZp9Q39bPh2eUDLtEJApLNQy6l20yT/4jA== dependencies: "@types/connect" "*" "@types/memory-fs" "*" @@ -3940,32 +4078,32 @@ loglevel "^1.6.2" "@types/webpack-hot-middleware@^2.25.3": - version "2.25.4" - resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#e439e9a3694158badf23b094bc1ad6051767ca05" - integrity sha512-6tQb9EBKIANZYUVLQYWiWfDFVe7FhXSj4bB2EF5QB7VtYWL3HDR+y/zqjZPAnCorv0spLqVMRqjRK8AmhfocMw== + version "2.25.5" + resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.5.tgz#b42c7a00fa3e508b3fb9809cd7261f6dbe01355f" + integrity sha512-/eRWWMgZteNzl17qLCRdRmtKPZuWy984b11Igz9+BAU5a99Hc2AJinnMohMPVahGRSHby4XwsnjlgIt9m0Ce3g== dependencies: "@types/connect" "*" "@types/webpack" "^4" "@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" - integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4", "@types/webpack@^4.41.17", "@types/webpack@^4.41.8": - version "4.41.27" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" - integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== + version "4.41.30" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== dependencies: - "@types/anymatch" "*" "@types/node" "*" "@types/tapable" "^1" "@types/uglify-js" "*" "@types/webpack-sources" "*" + anymatch "^3.0.0" source-map "^0.6.0" "@types/websocket@1.0.2": @@ -3976,14 +4114,28 @@ "@types/node" "*" "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^13.0.0": - version "13.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" - integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== + version "13.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" @@ -3992,84 +4144,78 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== -"@types/zen-observable@0.8.3": +"@types/zen-observable@0.8.3", "@types/zen-observable@^0.8.0": version "0.8.3" resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== -"@types/zen-observable@^0.8.0": - version "0.8.2" - resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" - integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== - "@typescript-eslint/eslint-plugin@^4.15.2": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz#3d5f29bb59e61a9dba1513d491b059e536e16dbc" - integrity sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA== + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz#95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa" + integrity sha512-tBgfA3K/3TsZY46ROGvoRxQr1wBkclbVqRQep97MjVHJzcRBURRY3sNFqLk0/Xr//BY5hM9H2p/kp+6qim85SA== dependencies: - "@typescript-eslint/experimental-utils" "4.22.0" - "@typescript-eslint/scope-manager" "4.22.0" - debug "^4.1.1" + "@typescript-eslint/experimental-utils" "4.29.3" + "@typescript-eslint/scope-manager" "4.29.3" + debug "^4.3.1" functional-red-black-tree "^1.0.1" - lodash "^4.17.15" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz#68765167cca531178e7b650a53456e6e0bef3b1f" - integrity sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.22.0" - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/typescript-estree" "4.22.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^4.15.2": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.22.0.tgz#e1637327fcf796c641fe55f73530e90b16ac8fe8" - integrity sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q== - dependencies: - "@typescript-eslint/scope-manager" "4.22.0" - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/typescript-estree" "4.22.0" - debug "^4.1.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" -"@typescript-eslint/scope-manager@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz#ed411545e61161a8d702e703a4b7d96ec065b09a" - integrity sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q== +"@typescript-eslint/experimental-utils@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz#52e437a689ccdef73e83c5106b34240a706f15e1" + integrity sha512-ffIvbytTVWz+3keg+Sy94FG1QeOvmV9dP2YSdLFHw/ieLXWCa3U1TYu8IRCOpMv2/SPS8XqhM1+ou1YHsdzKrg== dependencies: - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/visitor-keys" "4.22.0" - -"@typescript-eslint/types@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.22.0.tgz#0ca6fde5b68daf6dba133f30959cc0688c8dd0b6" - integrity sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA== + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.29.3" + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/typescript-estree" "4.29.3" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@typescript-eslint/typescript-estree@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz#b5d95d6d366ff3b72f5168c75775a3e46250d05c" - integrity sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg== - dependencies: - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/visitor-keys" "4.22.0" - debug "^4.1.1" - globby "^11.0.1" +"@typescript-eslint/parser@^4.15.2": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz#2ac25535f34c0e98f50c0e6b28c679c2357d45f2" + integrity sha512-jrHOV5g2u8ROghmspKoW7pN8T/qUzk0+DITun0MELptvngtMrwUJ1tv5zMI04CYVEUsSrN4jV7AKSv+I0y0EfQ== + dependencies: + "@typescript-eslint/scope-manager" "4.29.3" + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/typescript-estree" "4.29.3" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz#497dec66f3a22e459f6e306cf14021e40ec86e19" + integrity sha512-x+w8BLXO7iWPkG5mEy9bA1iFRnk36p/goVlYobVWHyDw69YmaH9q6eA+Fgl7kYHmFvWlebUTUfhtIg4zbbl8PA== + dependencies: + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/visitor-keys" "4.29.3" + +"@typescript-eslint/types@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz#d7980c49aef643d0af8954c9f14f656b7fd16017" + integrity sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg== + +"@typescript-eslint/typescript-estree@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz#1bafad610015c4ded35c85a70b6222faad598b40" + integrity sha512-45oQJA0bxna4O5TMwz55/TpgjX1YrAPOI/rb6kPgmdnemRZx/dB0rsx+Ku8jpDvqTxcE1C/qEbVHbS3h0hflag== + dependencies: + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/visitor-keys" "4.29.3" + debug "^4.3.1" + globby "^11.0.3" is-glob "^4.0.1" - semver "^7.3.2" - tsutils "^3.17.1" + semver "^7.3.5" + tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz#169dae26d3c122935da7528c839f42a8a42f6e47" - integrity sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw== +"@typescript-eslint/visitor-keys@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz#c691760a00bd86bf8320d2a90a93d86d322f1abf" + integrity sha512-MGGfJvXT4asUTeVs0Q2m+sY63UsfnA+C/FDgBKV3itLBmM9H0u+URcneePtkd0at1YELmZK6HSolCqM4Fzs6yA== dependencies: - "@typescript-eslint/types" "4.22.0" + "@typescript-eslint/types" "4.29.3" eslint-visitor-keys "^2.0.0" "@vue-storefront/commercetools-api@~1.2.0": @@ -4092,9 +4238,9 @@ isomorphic-fetch "^2.2.1" "@vue-storefront/theme-utilities@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@vue-storefront/theme-utilities/-/theme-utilities-0.1.3.tgz#348d825f71281df614e75e30338bb9b24316bd91" - integrity sha512-njMxgitKIYfVNS/2q7TofOJZtTrrySfFZnRTTg4laKzMTC5XGSoWfLSwYboHuBWo8QotZAw16cq+36HLRV507Q== + version "0.1.5" + resolved "https://registry.yarnpkg.com/@vue-storefront/theme-utilities/-/theme-utilities-0.1.5.tgz#0bab806b79694ec13714ce42f45fc771ea72480c" + integrity sha512-RGFoOIeXWSd7qww1yq+f7DjZ3w/7VNPEWyUNHYYSgicB0+qj4/aJnLVFSh9SjEDqC/fU6sgqPEJHJ785zwe/dg== dependencies: chalk "^4.1.0" chokidar "^3.4.3" @@ -4113,9 +4259,9 @@ integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== "@vue/babel-plugin-jsx@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.4.tgz#077826ca0eccd77cb6ad698254f5821ded5c5189" - integrity sha512-Vu5gsabUdsiWc4vQarg46xWJGs8pMEJyyMQAKA1vO+F4+aR4/jaxWxPCOvZ7XvVyy+ecSbwQp/qIyDVje360UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.6.tgz#184bf3541ab6efdbe5079ab8b20c19e2af100bfb" + integrity sha512-RzYsvBhzKUmY2YG6LoV+W5PnlnkInq0thh1AzCmewwctAgGN6e9UFon6ZrQQV1CO5G5PeME7MqpB+/vvGg0h4g== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.0.0" @@ -4140,9 +4286,9 @@ svg-tags "^1.0.0" "@vue/babel-preset-app@^4.1.2": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.12.tgz#c3a23cf33f6e5ea30536f13c0f9b1fc7e028b1c1" - integrity sha512-8q67ORQ9O0Ms0nlqsXTVhaBefRBaLrzPxOewAZhdcO7onHwcO5/wRdWtHhZgfpCZlhY7NogkU16z3WnorSSkEA== + version "4.5.13" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz#cb475321e4c73f7f110dac29a48c2a9cb80afeb6" + integrity sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw== dependencies: "@babel/core" "^7.11.0" "@babel/helper-compilation-targets" "^7.9.6" @@ -4225,15 +4371,15 @@ camelcase "^5.0.0" "@vue/component-compiler-utils@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460" + integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg== dependencies: consolidate "^0.15.1" hash-sum "^1.0.2" lru-cache "^4.1.2" merge-source-map "^1.1.0" - postcss "^7.0.14" + postcss "^7.0.36" postcss-selector-parser "^6.0.2" source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" @@ -4254,10 +4400,10 @@ dependencies: vue-eslint-parser "^7.0.0" -"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.4.tgz#a9acb32ea1fa4535b2e1ce5ca100bceb4fade2db" - integrity sha512-9BeL8IqGvJKy553lq/07rhYURQkpS/k+j19rJ/4eDpGJk7z872M0YrBWFhjS14yMKlvYVYOCfWnVIXyrAx0xNw== +"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30", "@vue/test-utils@^1.1.3": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.2.2.tgz#0242ea4e202d4853541bb167fead3f2249140ab7" + integrity sha512-P+yiAsszoy8z1TqXiVUnAZaJj0WGGz5fCxm4bOSI6Cpwy1+PNYwYxDv0ROAA/SUtOPppV+aD8tp/QWwxf8ROJw== dependencies: dom-event-types "^1.0.0" lodash "^4.17.15" @@ -4329,20 +4475,13 @@ markdown-it-table-of-contents "^0.4.0" prismjs "^1.13.0" -"@vuepress/plugin-active-header-links@1.8.2", "@vuepress/plugin-active-header-links@^1.8.2": +"@vuepress/plugin-active-header-links@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.8.2.tgz#0cb9b29c826dd97d35357a9b09c962ef782cb793" integrity sha512-JmXAQg8D7J8mcKe2Ue3BZ9dOCzJMJXP4Cnkkc/IrqfDg0ET0l96gYWZohCqlvRIWt4f0VPiFAO4FLYrW+hko+g== dependencies: lodash.debounce "^4.0.8" -"@vuepress/plugin-back-to-top@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-1.8.2.tgz#e9794409d1d589e4952b0700291270d2696e6d01" - integrity sha512-htAf2m8+6cGmYQexWerznGBY10y1E4TBfebYC3Y3wqNjFjvXUmRKcAG/u6Yxvey4OFkQUxbth2ilKi/GlIW8aQ== - dependencies: - lodash.debounce "^4.0.8" - "@vuepress/plugin-last-updated@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.8.2.tgz#7ce689f8d5050cf0213949bc2e5aa879c09ff4b1" @@ -4350,13 +4489,6 @@ dependencies: cross-spawn "^6.0.5" -"@vuepress/plugin-medium-zoom@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-1.8.2.tgz#0243dd27edf0c710f9a41a234d253d76ab51e625" - integrity sha512-Mljso/8E6IbNmIKmwKeC6FDfnhKY3fsOUSs5kEGzz3RQwd54eshqHAMRVwW4LZkYZHhwQXF8+qk7YqoMZB7jjg== - dependencies: - medium-zoom "^1.0.4" - "@vuepress/plugin-nprogress@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.8.2.tgz#dc6c082925420c8c59ecb7fc2d4a9401f6d4664a" @@ -4371,7 +4503,7 @@ dependencies: "@vuepress/shared-utils" "1.8.2" -"@vuepress/plugin-search@1.8.2", "@vuepress/plugin-search@^1.8.2": +"@vuepress/plugin-search@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.8.2.tgz#74b92f663acf6b4560e15dc0442a84c4e874e206" integrity sha512-JrSJr9o0Kar14lVtZ4wfw39pplxvvMh8vDBD9oW09a+6Zi/4bySPGdcdaqdqGW+OHSiZNvG+6uyfKSBBBqF6PA== @@ -4560,11 +4692,11 @@ tslib "^1.9.3" "@wry/context@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.0.tgz#f903eceb89d238ef7e8168ed30f4511f92d83e06" - integrity sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q== + version "0.6.1" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" + integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== dependencies: - tslib "^2.1.0" + tslib "^2.3.0" "@wry/equality@^0.1.2": version "0.1.11" @@ -4574,18 +4706,18 @@ tslib "^1.9.3" "@wry/equality@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.1.tgz#b22e4e1674d7bf1439f8ccdccfd6a785f6de68b0" - integrity sha512-FZKbdpbcVcbDxQrKcaBClNsQaMg9nof1RKM7mReJe5DKUzM5u8S7T+PqwNqvib5O2j2xxF1R4p5O3+b6baTrbw== + version "0.5.2" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" + integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== dependencies: - tslib "^2.1.0" + tslib "^2.3.0" "@wry/trie@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.0.tgz#3245e74988c4e3033299e479a1bf004430752463" - integrity sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug== + version "0.3.1" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" + integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== dependencies: - tslib "^2.1.0" + tslib "^2.3.0" "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -4614,7 +4746,7 @@ JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.0: +abab@^2.0.0, abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== @@ -4647,10 +4779,18 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: version "1.8.2" @@ -4672,9 +4812,9 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" - integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" + integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== acorn@^5.5.3: version "5.7.4" @@ -4691,10 +4831,10 @@ acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== +acorn@^8.0.4, acorn@^8.2.4: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -4703,6 +4843,13 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -4751,9 +4898,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv uri-js "^4.2.2" ajv@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" - integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -4864,6 +5011,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -4882,7 +5034,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -5033,9 +5185,9 @@ arg@^4.1.0: integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== arg@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.0.tgz#a20e2bb5710e82950a516b3f933fee5ed478be90" - integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ== + version "5.0.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" + integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" @@ -5089,7 +5241,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.1.1: +array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -5122,7 +5274,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.3: +array.prototype.flat@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -5219,9 +5371,9 @@ async@^2.6.2: lodash "^4.17.14" async@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== asynckit@^0.4.0: version "0.4.0" @@ -5264,9 +5416,9 @@ autoprefixer@^9.5.1, autoprefixer@^9.6.1: postcss-value-parser "^4.1.0" awesome-phonenumber@^2.51.2: - version "2.51.2" - resolved "https://registrynpm.storefrontcloud.io/awesome-phonenumber/-/awesome-phonenumber-2.51.2.tgz#67bbd899e7583ece38372bb1ee8c8ffb838b251d" - integrity sha512-CPV2WNfop9RTZWAeVAlo3kh9nBlVEPFD8RrJIKGSobnOP501ZWLrSju9zZcPwAlIhMGaLrtHM4Z7EZfyGZHMbQ== + version "2.58.0" + resolved "https://registry.yarnpkg.com/awesome-phonenumber/-/awesome-phonenumber-2.58.0.tgz#eaa788910b567abd6c1283025bcf491ac5b55d85" + integrity sha512-rsbIn7Htq/QqUfJ7E53oGiGnLca5SUJEshg8zG5h9WK+fTxoGA12/NDKC5eCvkK2eaP8gR/RVA1yuf0Arib7vg== aws-sign2@~0.7.0: version "0.7.0" @@ -5298,6 +5450,20 @@ babel-jest@^24.1.0, babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.0.0" +babel-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" + integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== + dependencies: + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.0.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-loader@^8.0.4, babel-loader@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -5332,6 +5498,17 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + babel-plugin-jest-hoist@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" @@ -5339,35 +5516,63 @@ babel-plugin-jest-hoist@^24.9.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== +babel-plugin-jest-hoist@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" + integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" - core-js-compat "^3.9.1" + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" -babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.2" babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: version "7.0.0-beta.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + babel-preset-fbjs@^3.3.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" @@ -5409,6 +5614,14 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" +babel-preset-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" + integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== + dependencies: + babel-plugin-jest-hoist "^27.0.6" + babel-preset-current-node-syntax "^1.0.0" + babelify@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" @@ -5455,9 +5668,9 @@ bcrypt-pbkdf@^1.0.0: tweetnacl "^0.14.3" before-after-hook@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c" - integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw== + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== bezier-easing@2.1.0: version "2.1.0" @@ -5585,7 +5798,7 @@ boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" -boxen@^5.0.0: +boxen@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== @@ -5835,27 +6048,16 @@ browserify@^16.1.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.6.0, browserslist@^4.6.4: - version "4.16.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" - integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== - dependencies: - caniuse-lite "^1.0.30001208" - colorette "^1.2.2" - electron-to-chromium "^1.3.712" - escalade "^3.1.1" - node-releases "^1.1.71" - -browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== +browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.16.8, browserslist@^4.6.0, browserslist@^4.6.4: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" escalade "^3.1.1" - node-releases "^1.1.71" + node-releases "^1.1.75" bs-logger@0.x: version "0.2.6" @@ -5881,10 +6083,10 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-indexof@^1.0.0: version "1.1.1" @@ -5962,9 +6164,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cac@^6.5.6: - version "6.7.2" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.2.tgz#e7f0d21f4776c46c7d0de7976e56fa5562e17597" - integrity sha512-w0bH1IF9rEjdi0a6lTtlXYT+vBZEJL9oytaXXRdsD68MH6+SrZGOGsu7s2saHQvYXqwo/wBdkW75tt8wFpj+mw== + version "6.7.3" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768" + integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg== cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" @@ -5988,10 +6190,11 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: y18n "^4.0.0" cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: + "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -6067,6 +6270,11 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== +cachedir@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" + integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -6186,15 +6394,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001205, caniuse-lite@^1.0.30001208: - version "1.0.30001208" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" - integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== - -caniuse-lite@^1.0.30001219: - version "1.0.30001243" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz#d9250155c91e872186671c523f3ae50cfc94a3aa" - integrity sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001251: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== capture-exit@^2.0.0: version "2.0.0" @@ -6236,14 +6439,19 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -6278,22 +6486,22 @@ chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1, chokidar@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -6318,10 +6526,10 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" - integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== +ci-info@^3.0.0, ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -6331,6 +6539,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -6420,15 +6633,6 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -clipboard@^2.0.0: - version "2.0.8" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" - integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -6447,6 +6651,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -6507,6 +6720,11 @@ coffeescript@1.12.7: resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -6515,7 +6733,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -6539,26 +6757,26 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" + color-convert "^1.9.3" + color-string "^1.6.0" -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== colors@^1.1.2: version "1.4.0" @@ -6625,6 +6843,26 @@ commander@~2.19.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commitizen@^4.0.3, commitizen@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.4.tgz#a3e5b36bd7575f6bf6e7aa19dbbf06b0d8f37165" + integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== + dependencies: + cachedir "2.2.0" + cz-conventional-changelog "3.2.0" + dedent "0.7.0" + detect-indent "6.0.0" + find-node-modules "^2.1.2" + find-root "1.1.0" + fs-extra "8.1.0" + glob "7.1.4" + inquirer "6.5.2" + is-utf8 "^0.2.1" + lodash "^4.17.20" + minimist "1.2.5" + strip-bom "4.0.0" + strip-json-comments "3.0.1" + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -6708,9 +6946,9 @@ condense-newlines@^0.2.1: kind-of "^3.0.2" config-chain@^1.1.11, config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -6742,7 +6980,7 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -consola@2.15.3, consola@^2.10.0, consola@^2.10.1, consola@^2.15.0, consola@^2.15.3, consola@^2.4.0, consola@^2.6.0, consola@^2.9.0: +consola@2.15.3, consola@^2.10.0, consola@^2.10.1, consola@^2.15.0, consola@^2.15.3, consola@^2.6.0, consola@^2.9.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== @@ -6779,11 +7017,6 @@ constants-browserify@^1.0.0, constants-browserify@~1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -6796,7 +7029,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -conventional-changelog-angular@^5.0.3: +conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.3: version "5.0.12" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== @@ -6804,6 +7037,15 @@ conventional-changelog-angular@^5.0.3: compare-func "^2.0.0" q "^1.5.1" +conventional-changelog-conventionalcommits@^4.3.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz#7fc17211dbca160acf24687bd2fdd5fd767750eb" + integrity sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + conventional-changelog-core@^3.1.6: version "3.2.3" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" @@ -6844,6 +7086,11 @@ conventional-changelog-writer@^4.0.6: split "^1.0.0" through2 "^4.0.0" +conventional-commit-types@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" + integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== + conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" @@ -6852,7 +7099,7 @@ conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.3: +conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.3: version "3.2.1" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== @@ -6879,10 +7126,10 @@ conventional-recommended-bump@^5.0.0: meow "^4.0.0" q "^1.5.1" -convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== +convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" @@ -6905,17 +7152,17 @@ cookie-signature@1.0.6: integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie-universal-nuxt@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.4.tgz#323f8645501f88cb2422127ad8ba2ee40187b716" - integrity sha512-xbn4Ozs9S0u2+0mQTZRwGlBL9MGNq8N4H6iGfprR5ufZFCS2hGef++3DBHSmHXZi30Wu3Q7RI/GkNMhz3cecmg== + version "2.1.5" + resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.5.tgz#669f2ff95b1bc1962c86edd69c954f60729e71e5" + integrity sha512-P0WCTKIyemWNtHi9lxrS5cxZmieOIEjt28B7Alu6cdSB9RqtUtpkqYyV9PRK6oJrT5eIPDYjHsJQlh6SUrFJOg== dependencies: "@types/cookie" "^0.3.3" - cookie-universal "^2.1.4" + cookie-universal "^2.1.5" -cookie-universal@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cookie-universal/-/cookie-universal-2.1.4.tgz#826a273da7eb9b08bfb0139bae12ea70770d564b" - integrity sha512-dwWXs7NGBzaBYDypu3jWH5M3NJW+zu5QdyJkFMHJvhLuyL4/eXG4105fwtTDwfIqyTunwVvQX4PHdtfPDS7URQ== +cookie-universal@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/cookie-universal/-/cookie-universal-2.1.5.tgz#9a6cefbfb61c750a1b8ee2610bf71566bd719544" + integrity sha512-nqOOmEkovCQxNYGIyzhcwsmh4c7xnxe7RWdiYFOoml9MP4L32IlU3LdPC7r7nQEnnM+9Uxlk/UhtvBl5is6M/w== dependencies: "@types/cookie" "^0.3.3" cookie "^0.4.0" @@ -6970,12 +7217,12 @@ copy-webpack-plugin@^5.0.2: serialize-javascript "^4.0.0" webpack-log "^2.0.0" -core-js-compat@^3.1.1, core-js-compat@^3.10.0, core-js-compat@^3.6.5, core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz#62183a3a77ceeffcc420d907a3e6fc67d9b27f1c" - integrity sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg== +core-js-compat@^3.1.1, core-js-compat@^3.12.1, core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5: + version "3.16.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.3.tgz#ae12a6e20505a1d79fbd16b6689dfc77fc989114" + integrity sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ== dependencies: - browserslist "^4.16.3" + browserslist "^4.16.8" semver "7.0.0" core-js@^2.5.3, core-js@^2.6.5: @@ -6984,9 +7231,9 @@ core-js@^2.5.3, core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.0.1, core-js@^3.6.4, core-js@^3.6.5: - version "3.10.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.1.tgz#e683963978b6806dcc6c0a4a8bd4ab0bdaf3f21a" - integrity sha512-pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA== + version "3.16.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz#1f2d43c51a9ed014cc6c83440af14697ae4b75f2" + integrity sha512-lM3GftxzHNtPNUJg0v4pC2RC6puwMd6VZA7vXUczi+SKmCWSf4JwO89VJGMqbzmB7jlK7B5hr3S64PqwFL49cA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -7023,9 +7270,9 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -7244,7 +7491,7 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^2.0.0, css-select@^2.0.2: +css-select@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== @@ -7254,15 +7501,15 @@ css-select@^2.0.0, css-select@^2.0.2: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" - integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== dependencies: boolbase "^1.0.0" - css-what "^4.0.0" - domhandler "^4.0.0" - domutils "^2.4.3" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" nth-check "^2.0.0" css-tree@1.0.0-alpha.37: @@ -7286,10 +7533,10 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== -css-what@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" - integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== css@^2.0.0, css@^2.1.0: version "2.2.4" @@ -7374,7 +7621,7 @@ cssnano-util-same-parent@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== -cssnano@^4.1.10: +cssnano@^4.1.10, cssnano@^4.1.11: version "4.1.11" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== @@ -7391,11 +7638,16 @@ csso@^4.0.2: dependencies: css-tree "^1.1.2" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + cssstyle@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" @@ -7403,6 +7655,13 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -7480,6 +7739,34 @@ cypress@^6.5.0, cypress@^6.6.0: url "^0.11.0" yauzl "^2.10.0" +cz-conventional-changelog@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" + integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" + integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -7487,6 +7774,11 @@ dargs@^4.0.1: dependencies: number-is-nan "^1.0.0" +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + dash-ast@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" @@ -7508,6 +7800,15 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + dataloader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" @@ -7524,9 +7825,9 @@ dateformat@^3.0.0, dateformat@^3.0.2: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.9.3: - version "1.10.4" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" - integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== + version "1.10.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" + integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== de-indent@^1.0.2: version "1.0.2" @@ -7547,6 +7848,13 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" +debug@4, debug@4.3.2, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + debug@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -7554,27 +7862,13 @@ debug@4.1.1: dependencies: ms "^2.1.1" -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -7593,6 +7887,11 @@ decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -7612,7 +7911,7 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" -dedent@^0.7.0: +dedent@0.7.0, dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= @@ -7713,6 +8012,16 @@ defu@^3.2.2: resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== +defu@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/defu/-/defu-4.0.1.tgz#9d7d7a48f9295f08285d153dcff174c89b9bcb22" + integrity sha512-lC+G0KvvWRbisQa50+iFelm3/eMmwo4IlBmfASOVlw9MZpHHyQeVsZxc5j23+TQy5ydgEoTVSrWl7ptou1kzJQ== + +defu@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.0.tgz#5768f0d402a555bfc4c267246b20f82ce8b5a10b" + integrity sha512-VHg73EDeRXlu7oYWRmmrNp/nl7QkdXUxkQQKig0Zk8daNmm84AbGoC8Be6/VVLJEKxn12hR0UBmz8O+xQiAPKQ== + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -7731,11 +8040,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -7779,6 +8083,16 @@ destroy@^1.0.4, destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -7789,10 +8103,15 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== detective@^5.2.0: version "5.2.0" @@ -7821,6 +8140,16 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + diff3@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/diff3/-/diff3-0.0.3.tgz#d4e5c3a4cdf4e5fe1211ab42e693fcb4321580fc" @@ -7865,9 +8194,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -7892,13 +8221,12 @@ docsearch.js@^2.5.2: to-factory "^1.0.0" zepto "^1.2.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" - isarray "^1.0.0" doctrine@^3.0.0: version "3.0.0" @@ -7907,7 +8235,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-converter@^0.2: +dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== @@ -7928,12 +8256,12 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== dependencies: domelementtype "^2.0.1" - domhandler "^4.0.0" + domhandler "^4.2.0" entities "^2.0.0" dom-walk@^0.1.0: @@ -7946,7 +8274,7 @@ domain-browser@^1.1.1, domain-browser@^1.2.0: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.1: +domelementtype@1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -7963,21 +8291,21 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== dependencies: - domelementtype "1" + webidl-conversions "^5.0.0" -domhandler@^4.0.0, domhandler@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" - integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== dependencies: domelementtype "^2.2.0" -domutils@^1.5.1, domutils@^1.7.0: +domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== @@ -7985,14 +8313,14 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.4.3: - version "2.5.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.2.tgz#37ef8ba087dff1a17175e7092e8a042e4b050e6c" - integrity sha512-MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ== +domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" - domhandler "^4.1.0" + domhandler "^4.2.0" dot-case@^3.0.4: version "3.0.4" @@ -8016,10 +8344,10 @@ dot-prop@^5.1.0, dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" @@ -8083,15 +8411,10 @@ ejs@^3.0.2, ejs@^3.1.5: dependencies: jake "^10.6.1" -electron-to-chromium@^1.3.712: - version "1.3.717" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" - integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== - -electron-to-chromium@^1.3.723: - version "1.3.771" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz#c4aa601e6420e11926095f75fe803956a1b4bd81" - integrity sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA== +electron-to-chromium@^1.3.811: + version "1.3.820" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.820.tgz#3b2672b59ed17847ed19f1281547f37bbfda87bb" + integrity sha512-5cFwDmo2yzEA9hn55KZ9+cX/b6DSFvpKz8Hb2fiDmriXWB+DBoXKXmncQwNRFBBTlUdsvPHCoy594OoMLAO0Tg== elegant-spinner@^1.0.1: version "1.0.1" @@ -8111,6 +8434,11 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -8166,16 +8494,16 @@ enquirer@^2.3.5, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -8220,10 +8548,10 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== +es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -8231,16 +8559,17 @@ es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: get-intrinsic "^1.1.1" has "^1.0.3" has-symbols "^1.0.2" + internal-slot "^1.0.3" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -8288,6 +8617,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -8300,25 +8634,37 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-config-standard@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6" - integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw== + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: - debug "^2.6.9" - resolve "^1.13.1" + debug "^3.2.7" + resolve "^1.20.0" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: @@ -8330,23 +8676,25 @@ eslint-plugin-es@^3.0.0: regexpp "^3.0.0" eslint-plugin-import@^2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.6.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.11.0" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -8371,14 +8719,14 @@ eslint-plugin-standard@^5.0.0: integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== eslint-plugin-vue@^7.6.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.9.0.tgz#f8e83a2a908f4c43fc8304f5401d4ff671f3d560" - integrity sha512-2Q0qQp5+5h+pZvJKCbG1/jCRUYrdgAz5BYKGyTlp2NU8mx09u3Hp7PsH6d5qef6ojuPoCXMnrbbDxeoplihrSw== + version "7.17.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.17.0.tgz#41e0bdb5effca5ee26f087f924be987eb41ef573" + integrity sha512-Rq5R2QetDCgC+kBFQw1+aJ5B93tQ4xqZvoCUxuIzwTonngNArsdP8ChM8PowIzsJvRtWl4ltGh/bZcN3xhFWSw== dependencies: eslint-utils "^2.1.0" natural-compare "^1.4.0" - semver "^7.3.2" - vue-eslint-parser "^7.6.0" + semver "^6.3.0" + vue-eslint-parser "^7.10.0" eslint-scope@^4.0.3: version "4.0.3" @@ -8388,7 +8736,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -8403,38 +8751,48 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.20.0: - version "7.24.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.24.0.tgz#2e44fa62d93892bfdb100521f17345ba54b8513a" - integrity sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ== + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.0" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -8443,7 +8801,7 @@ eslint@^7.20.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -8452,7 +8810,7 @@ eslint@^7.20.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -8617,9 +8975,9 @@ execa@^4.0.2, execa@^4.1.0: strip-final-newline "^2.0.0" execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.0" @@ -8666,6 +9024,13 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + expect@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -8678,6 +9043,18 @@ expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" +expect@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" + integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== + dependencies: + "@jest/types" "^27.0.6" + ansi-styles "^5.0.0" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + express@^4.16.3, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -8799,7 +9176,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -8817,16 +9194,15 @@ fast-glob@^2.2.6: micromatch "^3.1.10" fast-glob@^3.1.1: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -8839,21 +9215,21 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-safe-stringify@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + version "2.0.8" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" + integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== dependencies: reusify "^1.0.4" faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" @@ -8909,7 +9285,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0, figures@^3.2.0: +figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -9009,6 +9385,19 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-node-modules@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.2.tgz#57565a3455baf671b835bc6b2134a9b938b9c53c" + integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== + dependencies: + findup-sync "^4.0.0" + merge "^2.1.0" + +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -9054,6 +9443,16 @@ find-versions@^4.0.0: dependencies: semver-regex "^3.1.2" +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -9068,9 +9467,9 @@ flat@^5.0.0: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== flatten@^1.0.2: version "1.0.3" @@ -9086,9 +9485,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + version "1.14.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" + integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== for-each@^0.3.3: version "0.3.3" @@ -9113,9 +9512,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= fork-ts-checker-webpack-plugin@^6.1.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.1.tgz#e3a7e64c90e5490a75d43d86d47f02e538c0a13e" - integrity sha512-Pyhn2kav/Y2g6I7aInABgcph/B78jjdXc4kGHzaAUBL4UVthknxM6aMH47JwpnuTJmdOuf6p5vMbIahsBHuWGg== + version "6.3.2" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.3.2.tgz#96555f9f05c1cf44af3aef7db632489a3b6ff085" + integrity sha512-L3n1lrV20pRa7ocAuM2YW4Ux1yHM8+dV4shqPdHf1xoeG5KQhp3o0YySvNsBKBISQOCN4N2Db9DV4xYN6xXwyQ== dependencies: "@babel/code-frame" "^7.8.3" "@types/json-schema" "^7.0.5" @@ -9124,6 +9523,7 @@ fork-ts-checker-webpack-plugin@^6.1.1: cosmiconfig "^6.0.0" deepmerge "^4.2.2" fs-extra "^9.0.0" + glob "^7.1.6" memfs "^3.1.2" minimatch "^3.0.4" schema-utils "2.7.0" @@ -9139,6 +9539,15 @@ form-data@4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -9148,10 +9557,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" @@ -9192,6 +9601,15 @@ fs-extra@9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.0, fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -9216,7 +9634,7 @@ fs-memo@^1.2.0: resolved "https://registry.yarnpkg.com/fs-memo/-/fs-memo-1.2.0.tgz#a2ec3be606b902077adbb37ec529c5ec5fb2e037" integrity sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w== -fs-minipass@^1.2.5: +fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== @@ -9258,7 +9676,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -9324,12 +9742,12 @@ get-assigned-identifiers@^1.2.0: resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -9343,6 +9761,11 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -9354,10 +9777,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-port-please@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-1.1.0.tgz#7a60007578df6c4570c233803b48854c44db41f7" - integrity sha512-C9adQpQ9uyboxURlYAVcqvKdnrZ0uIad6lAZzIr51G5shhUFcZUwl8rxY0B0hB6OJytBNzPB1Uj/S1CpP9aFzQ== +get-port-please@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.2.0.tgz#3fabbbe2f9d8e6b7c47e1cddd71fc4c593f1deac" + integrity sha512-1c7Np/cpA7XCB6IrPAdaBaJjlGHTqg4P82h/ZqyBL6dCdwRzZBOFGZO7FL2KaZ2uNvD6v8QilA7LZwMpmIggDQ== dependencies: fs-memo "^1.2.0" @@ -9425,6 +9848,17 @@ git-raw-commits@2.0.0: split2 "^2.0.0" through2 "^2.0.0" +git-raw-commits@^2.0.0: + version "2.0.10" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" + integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" @@ -9442,17 +9876,17 @@ git-semver-tags@^2.0.3: semver "^6.0.0" git-up@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" - integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== + version "4.0.5" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" + integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== dependencies: is-ssh "^1.3.0" - parse-url "^5.0.0" + parse-url "^6.0.0" -git-url-parse@^11.1.2, git-url-parse@^11.4.3: - version "11.4.4" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.4.4.tgz#5d747debc2469c17bc385719f7d0427802d83d77" - integrity sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw== +git-url-parse@^11.1.2, git-url-parse@^11.4.4: + version "11.5.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.5.0.tgz#acaaf65239cb1536185b19165a24bbc754b3f764" + integrity sha512-TZYSMDeM37r71Lqg1mbnMlOqlHd7BSij9qN7XwTkRqSAYFMihGLGhfHwgqQob3GUhEneKnV4nskN9rbQw2KGxA== dependencies: git-up "^4.0.0" @@ -9463,7 +9897,7 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -glob-all@^3.1.0: +glob-all@^3.1.0, glob-all@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.2.1.tgz#082ca81afd2247cbd3ed2149bb2630f4dc877d95" integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw== @@ -9479,7 +9913,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -9491,10 +9925,22 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -9503,6 +9949,13 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + global-dirs@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" @@ -9510,6 +9963,26 @@ global-dirs@^2.0.1: dependencies: ini "1.3.7" +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + global@^4.3.2: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -9523,21 +9996,14 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" - integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: type-fest "^0.20.2" -globby@11.0.3, globby@^11.0.1, globby@^11.0.3: +globby@11.0.3: version "11.0.3" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== @@ -9549,6 +10015,18 @@ globby@11.0.3, globby@^11.0.1, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -9587,21 +10065,14 @@ globby@^9.2.0: slash "^2.0.0" globule@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" - integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" + integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== dependencies: glob "~7.1.1" lodash "~4.17.10" minimatch "~3.0.2" -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -9620,29 +10091,17 @@ got@^9.6.0: url-parse-lax "^3.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -graphql-tag@^2.10.1, graphql-tag@^2.12.3, graphql-tag@^2.12.5: +graphql-tag@^2.10.1, graphql-tag@^2.12.0, graphql-tag@^2.12.3, graphql-tag@^2.12.5, graphql-tag@^2.2.2: version "2.12.5" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== dependencies: tslib "^2.1.0" -graphql-tag@^2.12.0: - version "2.12.3" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.3.tgz#ac47bf9d51c67c68ada8a33fd527143ed15bb647" - integrity sha512-5wJMjSvj30yzdciEuk9dPuUBUR56AqDi3xncoYQl1i42pGdSqOJrJsdb/rz5BDoy+qoGvQwABcBeF0xXY3TrKw== - dependencies: - tslib "^2.1.0" - -graphql-tag@^2.2.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" - integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== - graphql-tools@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-7.0.5.tgz#63e322d4fa64ef9a7331be837a4f39b374d52d66" @@ -9694,11 +10153,11 @@ graphql@^15.5.1: integrity sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw== gray-matter@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" - integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== dependencies: - js-yaml "^3.11.0" + js-yaml "^3.13.1" kind-of "^6.0.2" section-matter "^1.0.0" strip-bom-string "^1.0.0" @@ -9738,7 +10197,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.7.6, handlebars@^4.7.7: +handlebars@^4.7.6: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -9814,6 +10273,13 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -9929,7 +10395,14 @@ hoist-non-react-statics@^3.3.2: resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: - react-is "^16.7.0" + react-is "^16.7.0" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" hoopy@^0.1.4: version "0.1.4" @@ -9975,6 +10448,13 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.2.0, html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" @@ -10054,17 +10534,15 @@ htmlescape@^1.1.0: resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= -htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" http-cache-semantics@^3.8.1: version "3.8.1" @@ -10126,6 +10604,15 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -10167,6 +10654,14 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -10208,9 +10703,9 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -10237,9 +10732,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: minimatch "^3.0.4" @@ -10298,6 +10793,11 @@ import-from@3.0.0: dependencies: resolve-from "^5.0.0" +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -10323,6 +10823,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -10414,7 +10922,7 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" -inquirer@^6.2.0: +inquirer@6.5.2, inquirer@^6.2.0: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== @@ -10476,6 +10984,15 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -10523,11 +11040,12 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -10540,9 +11058,11 @@ is-arrayish@^0.3.1: integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" @@ -10559,11 +11079,12 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" @@ -10571,9 +11092,9 @@ is-buffer@^1.1.0, is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^1.1.0: version "1.2.1" @@ -10589,6 +11110,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -10601,17 +11129,10 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== - dependencies: - has "^1.0.3" - -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== +is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== dependencies: has "^1.0.3" @@ -10630,9 +11151,11 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" @@ -10657,7 +11180,7 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-docker@^2.1.1: +is-docker@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -10725,6 +11248,11 @@ is-https@^3.0.2: resolved "https://registry.yarnpkg.com/is-https/-/is-https-3.0.2.tgz#4d24e002e47edd3f1b07f14bc722433354ccba49" integrity sha512-jFgAKhbNF7J+lTMJxbq5z9bf1V9f8rXn9mP5RSY2GUEW5M0nOiVhVC9dNra96hQDjGpNzskIzusUnXwngqmhAA== +is-https@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-https/-/is-https-4.0.0.tgz#9ee725a334fb517b988278d2674efc96e4f348ed" + integrity sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg== + is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -10749,9 +11277,11 @@ is-npm@^4.0.0: integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" @@ -10823,6 +11353,11 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + is-promise@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -10833,13 +11368,13 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.1" + has-tostringtag "^1.0.0" is-regexp@^1.0.0: version "1.0.0" @@ -10852,9 +11387,9 @@ is-resolvable@^1.0.0: integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-ssh@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" - integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" + integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== dependencies: protocols "^1.1.0" @@ -10864,21 +11399,23 @@ is-stream@^1.0.1, is-stream@^1.1.0: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-text-path@^1.0.1: version "1.0.1" @@ -10897,7 +11434,7 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-utf8@^0.2.0: +is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= @@ -10907,7 +11444,7 @@ is-whitespace@^0.3.0: resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= -is-windows@^1.0.0, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -10966,9 +11503,9 @@ isomorphic-fetch@^3.0.0: whatwg-fetch "^3.4.1" isomorphic-git@^1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.9.2.tgz#0e492dbcd9873070b2a57eef257a45b90020ed72" - integrity sha512-puCXcGgtkDXdMYLZlAEGbpkbmHn/Q4Lsl2uMFwMLOKmmr8Qe7Fe3+c6k2+aHW3rMdJYg9xTv95BJ+PRzR8Ydww== + version "1.10.0" + resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.10.0.tgz#59a4604d1190d1e7fc52172085da25e6a428bc07" + integrity sha512-CijspEYaOQAnsHWXyq8ICZXzLJ/1wYQAa0jdfLcugA/68oNzrxykjGZz8Up7B8huA1VfkFHm4VviExtj/zpViw== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" @@ -10997,6 +11534,11 @@ istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" @@ -11010,6 +11552,16 @@ istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^2.0.4: version "2.0.8" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" @@ -11019,6 +11571,15 @@ istanbul-lib-report@^2.0.4: make-dir "^2.1.0" supports-color "^6.1.0" +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + istanbul-lib-source-maps@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" @@ -11030,6 +11591,15 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + istanbul-reports@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" @@ -11037,6 +11607,14 @@ istanbul-reports@^2.2.6: dependencies: html-escaper "^2.0.0" +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + iterall@^1.2.1, iterall@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" @@ -11071,6 +11649,40 @@ jest-changed-files@^24.9.0: execa "^1.0.0" throat "^4.0.0" +jest-changed-files@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" + integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== + dependencies: + "@jest/types" "^27.0.6" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" + integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + jest-cli@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" @@ -11090,6 +11702,24 @@ jest-cli@^24.9.0: realpath-native "^1.1.0" yargs "^13.3.0" +jest-cli@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" + integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== + dependencies: + "@jest/core" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + jest-config "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + prompts "^2.0.1" + yargs "^16.0.3" + jest-config@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" @@ -11113,7 +11743,34 @@ jest-config@^24.9.0: pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.3.0, jest-diff@^24.9.0: +jest-config@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" + integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^27.0.6" + "@jest/types" "^27.0.6" + babel-jest "^27.0.6" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + jest-circus "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-get-type "^27.0.6" + jest-jasmine2 "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runner "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + micromatch "^4.0.4" + pretty-format "^27.0.6" + +jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== @@ -11123,6 +11780,26 @@ jest-diff@^24.3.0, jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-diff@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" + integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -11130,6 +11807,13 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" +jest-docblock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" + integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== + dependencies: + detect-newline "^3.0.0" + jest-each@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" @@ -11141,6 +11825,17 @@ jest-each@^24.9.0: jest-util "^24.9.0" pretty-format "^24.9.0" +jest-each@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" + integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + jest-get-type "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + jest-environment-jsdom@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" @@ -11153,6 +11848,19 @@ jest-environment-jsdom@^24.9.0: jest-util "^24.9.0" jsdom "^11.5.1" +jest-environment-jsdom@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" + integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + jsdom "^16.6.0" + jest-environment-node@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" @@ -11164,11 +11872,33 @@ jest-environment-node@^24.9.0: jest-mock "^24.9.0" jest-util "^24.9.0" +jest-environment-node@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" + integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + jest-get-type@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + jest-haste-map@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" @@ -11188,6 +11918,26 @@ jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" +jest-haste-map@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" + integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== + dependencies: + "@jest/types" "^27.0.6" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^27.0.6" + jest-serializer "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + jest-jasmine2@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" @@ -11210,6 +11960,30 @@ jest-jasmine2@^24.9.0: pretty-format "^24.9.0" throat "^4.0.0" +jest-jasmine2@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" + integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + throat "^6.0.1" + jest-leak-detector@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" @@ -11218,6 +11992,14 @@ jest-leak-detector@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-leak-detector@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" + integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== + dependencies: + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + jest-matcher-utils@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" @@ -11228,6 +12010,16 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-matcher-utils@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" + integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== + dependencies: + chalk "^4.0.0" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -11242,6 +12034,21 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" + integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.0.6" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -11249,7 +12056,15 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-pnp-resolver@^1.2.1: +jest-mock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" + integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + +jest-pnp-resolver@^1.2.1, jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== @@ -11259,6 +12074,11 @@ jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== + jest-resolve-dependencies@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" @@ -11268,6 +12088,15 @@ jest-resolve-dependencies@^24.9.0: jest-regex-util "^24.3.0" jest-snapshot "^24.9.0" +jest-resolve-dependencies@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" + integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== + dependencies: + "@jest/types" "^27.0.6" + jest-regex-util "^27.0.6" + jest-snapshot "^27.0.6" + jest-resolve@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" @@ -11279,6 +12108,21 @@ jest-resolve@^24.9.0: jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" +jest-resolve@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" + integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + escalade "^3.1.1" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^27.0.6" + jest-validate "^27.0.6" + resolve "^1.20.0" + slash "^3.0.0" + jest-runner@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" @@ -11304,6 +12148,34 @@ jest-runner@^24.9.0: source-map-support "^0.5.6" throat "^4.0.0" +jest-runner@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" + integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-docblock "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-haste-map "^27.0.6" + jest-leak-detector "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runtime "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + source-map-support "^0.5.6" + throat "^6.0.1" + jest-runtime@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" @@ -11333,11 +12205,51 @@ jest-runtime@^24.9.0: strip-bom "^3.0.0" yargs "^13.3.0" +jest-runtime@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" + integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/globals" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^16.0.3" + jest-serializer@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" + integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + jest-snapshot@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" @@ -11357,6 +12269,36 @@ jest-snapshot@^24.9.0: pretty-format "^24.9.0" semver "^6.2.0" +jest-snapshot@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" + integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.0.6" + graceful-fs "^4.2.4" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + jest-haste-map "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + natural-compare "^1.4.0" + pretty-format "^27.0.6" + semver "^7.3.2" + jest-transform-graphql@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz#903cb66bb27bc2772fd3e5dd4f7e9b57230f5829" @@ -11380,6 +12322,18 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" +jest-util@^27.0.0, jest-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" + integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" + jest-validate@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" @@ -11392,6 +12346,18 @@ jest-validate@^24.9.0: leven "^3.1.0" pretty-format "^24.9.0" +jest-validate@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" + integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== + dependencies: + "@jest/types" "^27.0.6" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.0.6" + leven "^3.1.0" + pretty-format "^27.0.6" + jest-watcher@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" @@ -11405,6 +12371,19 @@ jest-watcher@^24.9.0: jest-util "^24.9.0" string-length "^2.0.0" +jest-watcher@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" + integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== + dependencies: + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.0.6" + string-length "^4.0.1" + jest-worker@^24.6.0, jest-worker@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -11422,7 +12401,16 @@ jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^24.1.0, jest@^24.9.0: +jest-worker@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^24.1.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== @@ -11430,15 +12418,24 @@ jest@^24.1.0, jest@^24.9.0: import-local "^2.0.0" jest-cli "^24.9.0" +jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" + integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== + dependencies: + "@jest/core" "^27.0.6" + import-local "^3.0.2" + jest-cli "^27.0.6" + jimp-compact@^0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== -jiti@^1.3.0, jiti@^1.6.4: - version "1.9.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.9.1.tgz#d9e267fa050ddc52191f17d8af815d49a38ebafd" - integrity sha512-AhYrAxJ/IW2257nHkJasUjtxHhmYIUEHEjsofJtGYsPWk8pTjqjbPFlJfOwfY+WX8YBiKHM1l0ViDC/mye2SWg== +jiti@^1.9.2: + version "1.11.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.11.0.tgz#64120a30d97b9bf37b8b032cf4564dfadc28984c" + integrity sha512-/2c7e61hxxTIN34UeHBB0LCJ5Tq64kgJDV7GR+++e8XRxCKRIKmB8tH6ww1W+Z6Kgd6By+C3RSCu1lXjbPT68A== jju@~1.4.0: version "1.4.0" @@ -11451,14 +12448,13 @@ js-base64@^2.1.8: integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== js-beautify@^1.6.12: - version "1.13.11" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.11.tgz#3fc59d74d4fcb03268a559220da26f5d8a2d5246" - integrity sha512-+3CW1fQqkV7aXIvprevNYfSrKrASQf02IstAZCVSNh+/IS5ciaOtE7erfjyowdMYZZmP2A7SMFkcJ28qCl84+A== + version "1.14.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" + integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== dependencies: config-chain "^1.1.12" editorconfig "^0.15.3" glob "^7.1.3" - mkdirp "^1.0.4" nopt "^5.0.0" js-cookie@^2.2.1: @@ -11466,6 +12462,11 @@ js-cookie@^2.2.1: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== +js-cookie@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.0.tgz#db1661d5459920ec95aaf186ccf74ceb4a495164" + integrity sha512-oUbbplKuH07/XX2YD2+Q+GMiPpnVXaRz8npE7suhBH9QEkJe2W7mQ6rwuMXHue3fpfcftQwzgyvGzIHyfCSngQ== + js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -11476,7 +12477,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.11.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -11497,6 +12498,11 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom-global@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" + integrity sha1-a9KZwTsMRiay2iwDk81DhdYGrLk= + jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -11529,6 +12535,39 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -11853,14 +12892,12 @@ listr-verbose-renderer@^0.5.0: figures "^2.0.0" listr2@^3.2.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.6.2.tgz#7260159f9108523eaa430d4a674db65b6c2d08cc" - integrity sha512-B2vlu7Zx/2OAMVUovJ7Tv1kQ2v2oXd0nZKzkSAcRCej269d8gkS/gupDEdNl23KQ3ZjVD8hQmifrrBFbx8F9LA== + version "3.11.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" + integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== dependencies: - chalk "^4.1.0" cli-truncate "^2.1.0" - figures "^3.2.0" - indent-string "^4.0.0" + colorette "^1.2.2" log-update "^4.0.0" p-map "^4.0.0" rxjs "^6.6.7" @@ -11893,16 +12930,6 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -12022,11 +13049,6 @@ lodash.defaultsdeep@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - lodash.get@^4.0.0, lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -12067,7 +13089,12 @@ lodash.kebabcase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.map@^4.5.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -12132,7 +13159,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.21, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10, lodash@~4.17.15: +lodash@4.17.21, lodash@4.x, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.7.0, lodash@~4.17.10, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -12176,6 +13203,11 @@ loglevel@^1.6.2, loglevel@^1.6.7, loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== +longest@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" + integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= + loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -12236,9 +13268,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" macos-release@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" - integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" + integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== magic-string@^0.25.7: version "0.25.7" @@ -12399,20 +13431,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -medium-zoom@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" - integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== - -mem@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.0.tgz#445e47827fb757a4e5f35b0a6a62743cbfdc0a0d" - integrity sha512-FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA== +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== dependencies: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" -memfs@^3.1.2, memfs@^3.2.0: +memfs@^3.1.2, memfs@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== @@ -12505,6 +13532,11 @@ merge2@^1.2.3, merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +merge@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + meros@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/meros/-/meros-1.1.4.tgz#c17994d3133db8b23807f62bec7f0cb276cfd948" @@ -12534,7 +13566,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -12550,17 +13582,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== -mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== +mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.47.0" + mime-db "1.49.0" mime@1.6.0: version "1.6.0" @@ -12653,7 +13685,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -12686,7 +13718,7 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -12701,7 +13733,7 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: +minizlib@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== @@ -12762,7 +13794,7 @@ mkdirp@0.3.0: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -12924,14 +13956,14 @@ mz@^2.5.0: thenify-all "^1.0.0" nan@^2.12.1, nan@^2.13.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanoid@^3.1.20: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +nanoid@^3.1.23: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== nanomatch@^1.2.9: version "1.2.13" @@ -13047,12 +14079,12 @@ node-gyp@^5.0.2: tar "^4.4.12" which "^1.3.1" -node-html-parser@^3.1.2: - version "3.1.5" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.1.5.tgz#ffb62f2a336b6b634f41f3315487fe446fb9d7b5" - integrity sha512-/XKKdWbSUymlXTjtNBcDlmM7Jp8S/BqGMzLx7r2bd2NMjTXz+ofuLcz0Bl3VT0vTvVzF+N511FNLrZt4HVitXA== +node-html-parser@^3.2.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.3.6.tgz#fdbb3ba16d1252d7197ec39f0260d9c10ef33590" + integrity sha512-VkWDHvNgFGB3mbQGMyzqRE1i/BG7TKX9wRXC8e/v8kL0kZR/Oy6RjYxXH91K6/+m3g8iQ8dTqRy75lTYoA2Cjg== dependencies: - css-select "^3.1.2" + css-select "^4.1.3" he "1.2.0" node-int64@^0.4.0: @@ -13110,10 +14142,10 @@ node-object-hash@^1.2.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== -node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== node-res@^5.0.1: version "5.0.1" @@ -13189,12 +14221,12 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package- validate-npm-package-license "^3.0.1" normalize-package-data@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699" - integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: hosted-git-info "^4.0.1" - resolve "^1.20.0" + is-core-module "^2.5.0" semver "^7.3.4" validate-npm-package-license "^3.0.1" @@ -13234,20 +14266,30 @@ normalize-url@^2.0.1: query-string "^5.0.1" sort-keys "^2.0.0" -normalize-url@^3.0.0, normalize-url@^3.3.0: +normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +nouislider@^15.2.0: + version "15.4.0" + resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-15.4.0.tgz#ac0d988e9ba59366062e5712e7cd37eb2e48630d" + integrity sha512-AV7UMhGhZ4Mj6ToMT812Ib8OJ4tAXR2/Um7C4l4ZvvsqujF0WpQTpqqHJ+9xt4174R7ueQOUrBR4yakJpAIPCA== npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" @@ -13357,21 +14399,22 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nuxt-i18n@^6.5.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/nuxt-i18n/-/nuxt-i18n-6.25.0.tgz#d5b2c0be368012bd7d691283a38fec38030aa89b" - integrity sha512-x9rVDPnrQyB2TrdLuwkgNGMi+a03Xo7Vp3uXq1c5sCY0AREHGTsVXjLqdJULt2hXofaF2a6I1CLgN6g9+Cv/3g== + version "6.28.1" + resolved "https://registry.yarnpkg.com/nuxt-i18n/-/nuxt-i18n-6.28.1.tgz#63e3e809fa41d855c5c7c443c0074eecaa97d273" + integrity sha512-JKRs8AmixVZ7k90Rrwq468McfnInP1ymuejYHRGA4VV0nZCLYsdDQXZxXl3JXaER9VatM9C24GM3ArAYFOtUhg== dependencies: - "@babel/parser" "^7.13.15" - "@babel/traverse" "^7.13.15" + "@babel/parser" "^7.14.9" + "@babel/traverse" "^7.14.9" "@intlify/vue-i18n-extensions" "^1.0.2" "@intlify/vue-i18n-loader" "^1.1.0" cookie "^0.4.1" devalue "^2.0.1" - js-cookie "^2.2.1" + is-https "^4.0.0" + js-cookie "^3.0.0" klona "^2.0.4" lodash.merge "^4.6.2" - ufo "^0.6.11" - vue-i18n "^8.24.3" + ufo "^0.7.7" + vue-i18n "^8.25.0" nuxt-purgecss@^1.0.0: version "1.0.0" @@ -13385,27 +14428,27 @@ nuxt-purgecss@^1.0.0: purgecss-webpack-plugin "^2.0.5" nuxt@^2.13.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.15.4.tgz#5e2b441acec7344a1124bb550904b5576c850cef" - integrity sha512-o11VE61EwLj05PBPUN5RlDpaFb7vKbg3d5c+gfLi0gLVMpLUmjksRVTLzE9Ie8MB/TEnipy5BkhxMNppy0FKVg== - dependencies: - "@nuxt/babel-preset-app" "2.15.4" - "@nuxt/builder" "2.15.4" - "@nuxt/cli" "2.15.4" - "@nuxt/components" "^2.1.4" - "@nuxt/config" "2.15.4" - "@nuxt/core" "2.15.4" - "@nuxt/generator" "2.15.4" + version "2.15.8" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.15.8.tgz#946cba46bdaaf0e3918aa27fd9ea0fed8ed303b0" + integrity sha512-ceK3qLg/Baj7J8mK9bIxqw9AavrF+LXqwYEreBdY/a4Sj8YV4mIvhqea/6E7VTCNNGvKT2sJ/TTJjtfQ597lTA== + dependencies: + "@nuxt/babel-preset-app" "2.15.8" + "@nuxt/builder" "2.15.8" + "@nuxt/cli" "2.15.8" + "@nuxt/components" "^2.1.8" + "@nuxt/config" "2.15.8" + "@nuxt/core" "2.15.8" + "@nuxt/generator" "2.15.8" "@nuxt/loading-screen" "^2.0.3" "@nuxt/opencollective" "^0.3.2" - "@nuxt/server" "2.15.4" + "@nuxt/server" "2.15.8" "@nuxt/telemetry" "^1.3.3" - "@nuxt/utils" "2.15.4" - "@nuxt/vue-app" "2.15.4" - "@nuxt/vue-renderer" "2.15.4" - "@nuxt/webpack" "2.15.4" + "@nuxt/utils" "2.15.8" + "@nuxt/vue-app" "2.15.8" + "@nuxt/vue-renderer" "2.15.8" + "@nuxt/webpack" "2.15.8" -nwsapi@^2.0.7: +nwsapi@^2.0.7, nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== @@ -13429,10 +14472,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-is@^1.0.1: version "1.1.5" @@ -13480,15 +14523,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== +object.values@^1.1.0, object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.18.2" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -13571,9 +14613,9 @@ optimism@^0.16.0, optimism@^0.16.1: "@wry/trie" "^0.3.0" optimize-css-assets-webpack-plugin@^5.0.1, optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + version "5.0.8" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" + integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" @@ -13669,6 +14711,11 @@ p-each-series@^1.0.0: dependencies: p-reduce "^1.0.0" +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -13885,6 +14932,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + parse-path@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" @@ -13895,13 +14947,13 @@ parse-path@^4.0.0: qs "^6.9.4" query-string "^6.13.8" -parse-url@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" - integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== +parse-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" + integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== dependencies: is-ssh "^1.3.0" - normalize-url "^3.3.0" + normalize-url "^6.1.0" parse-path "^4.0.0" protocols "^1.4.0" @@ -13910,6 +14962,11 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -13976,9 +15033,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-platform@~0.11.15: version "0.11.15" @@ -13999,13 +15056,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -14040,9 +15090,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -14097,7 +15147,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -14111,6 +15161,13 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -14124,9 +15181,9 @@ pn@^1.1.0: integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== dependencies: ts-pnp "^1.1.6" @@ -14749,13 +15806,11 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-svgo@^4.0.3: @@ -14815,10 +15870,10 @@ postcss@7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== +postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -14872,6 +15927,26 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" + integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== + dependencies: + "@jest/types" "^27.0.6" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" @@ -14892,11 +15967,9 @@ printj@~1.1.0: integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== prismjs@^1.13.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" - integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== - optionalDependencies: - clipboard "^2.0.0" + version "1.24.1" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" + integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== process-nextick-args@~2.0.0: version "2.0.1" @@ -14984,11 +16057,11 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" prr@~1.0.1: @@ -15001,7 +16074,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28: +psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -15232,6 +16305,11 @@ react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -15280,14 +16358,6 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -15322,15 +16392,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -15370,7 +16431,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -15398,10 +16459,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -15461,9 +16522,9 @@ regenerator-runtime@^0.12.0: integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.14.2: version "0.14.5" @@ -15489,9 +16550,9 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.1.3" regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^4.7.1: version "4.7.1" @@ -15536,10 +16597,10 @@ relateurl@0.2.x, relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -relay-compiler@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-10.1.0.tgz#fb4672cdbe9b54869a3a79759edd8c2d91609cbe" - integrity sha512-HPqc3N3tNgEgUH5+lTr5lnLbgnsZMt+MRiyS0uAVNhuPY2It0X1ZJG+9qdA3L9IqKFUNwVn6zTO7RArjMZbARQ== +relay-compiler@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-11.0.2.tgz#e1e09a1c881d169a7a524ead728ad6a89c7bd4af" + integrity sha512-nDVAURT1YncxSiDOKa39OiERkAr0DUcPmlHlg+C8zD+EiDo2Sgczf2R6cDsN4UcDvucYtkLlDLFErPwgLs8WzA== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.5.0" @@ -15553,18 +16614,20 @@ relay-compiler@10.1.0: fbjs "^3.0.0" glob "^7.1.1" immutable "~3.7.6" + invariant "^2.2.4" nullthrows "^1.1.1" - relay-runtime "10.1.0" + relay-runtime "11.0.2" signedsource "^1.0.0" yargs "^15.3.1" -relay-runtime@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-10.1.0.tgz#4753bf36e95e8d862cef33608e3d98b4ed730d16" - integrity sha512-bxznLnQ1ST6APN/cFi7l0FpjbZVchWQjjhj9mAuJBuUqNNCh9uV+UTRhpQF7Q8ycsPp19LHTpVyGhYb0ustuRQ== +relay-runtime@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-11.0.2.tgz#c3650477d45665b9628b852b35f203e361ad55e8" + integrity sha512-xxZkIRnL8kNE1cxmwDXX8P+wSeWLR+0ACFyAiAhvfWWAyjXb+bhjJ2FSsRGlNYfkqaTNEuDqpnodQV1/fF7Idw== dependencies: "@babel/runtime" "^7.0.0" fbjs "^3.0.0" + invariant "^2.2.4" remove-trailing-separator@^1.0.1: version "1.1.0" @@ -15572,15 +16635,15 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" repeat-element@^1.1.2: version "1.1.4" @@ -15668,11 +16731,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -15680,6 +16738,21 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -15695,6 +16768,20 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve-pkg@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-2.0.0.tgz#ac06991418a7623edc119084edc98b0e6bf05a41" + integrity sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ== + dependencies: + resolve-from "^5.0.0" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -15705,7 +16792,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.20.0, resolve@1.x, resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: +resolve@1.20.0, resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -15885,7 +16972,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -15938,10 +17025,10 @@ sass-loader@^8.0.2: schema-utils "^2.6.1" semver "^6.3.0" -sass-resources-loader@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.2.1.tgz#d7dbc36ccb25b2d8ffa508b1b8630b987df1e5c3" - integrity sha512-WlofxbWOVnxad874IHZdWbP9eW1pbyqsTJKBsMbeB+YELvLSrZQNDTpH70s6F19BwtanR3NEFnyGwJ9WyotJTQ== +sass-resources-loader@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.2.4.tgz#1a86fba499e74a88cb7ce95f0c98449f348d360e" + integrity sha512-hIQhBygYky+rLf+4cuoGYONZ623CEH4Swo1fs1WRJkukbqdvN1VIu2KCL59du6vX92bNELzNkGPLx+NorN73xA== dependencies: async "^3.2.0" chalk "^4.1.0" @@ -15953,6 +17040,13 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + schema-utils@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" @@ -15981,11 +17075,11 @@ schema-utils@^2.0.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7 ajv-keywords "^3.5.2" schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -15997,10 +17091,10 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -scule@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/scule/-/scule-0.1.1.tgz#6bf026f1815c646f061761f9bfd7a3e783f2d05c" - integrity sha512-1j2RlmUNADEprCkzDaeo8w2tdum/mvQWAKdRaS2raud7IOnPaDbLSFKhcY5xXPbAFYWk4ZQ0BUnfmg0ZUcI+Pg== +scule@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" + integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== section-matter@^1.0.0: version "1.0.0" @@ -16015,15 +17109,10 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== dependencies: node-forge "^0.10.0" @@ -16044,7 +17133,7 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -16054,18 +17143,18 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: +semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -16125,11 +17214,11 @@ serve-index@^1.9.1: parseurl "~1.3.2" serve-placeholder@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.3.tgz#d2e778c6fedfe6e6ca48aff0b4627bbe2c4aa2ca" - integrity sha512-DC7t66WeIrlVzVMzickfHIn1zHu7eMsVNiH0nkD/wCrijFQdvgyfH2zc5lkFf79EApUgRhZntkpKjfgLkn2i/Q== + version "1.2.4" + resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.4.tgz#513eac9c435272c7fe9a86612c852ae9b1467fd4" + integrity sha512-jWD9cZXLcr4vHTTL5KEPIUBUYyOWN/z6v/tn0l6XxFhi9iqV3Fc5Y1aFeduUyz+cx8sALzGCUczkPfeOlrq9jg== dependencies: - defu "^3.2.2" + defu "^5.0.0" serve-static@1.14.1, serve-static@^1.14.1: version "1.14.1" @@ -16286,31 +17375,31 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" simplebar-vue@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/simplebar-vue/-/simplebar-vue-1.6.0.tgz#e64bed8d553b4731e73f85f41d0add9ebdac1988" - integrity sha512-O43JuN0eeI2kfspm+BME8DmfFKLkiOYRaMlGoTOExjiUHVrrGdXnyxRjewCWCSTfBTKy4tACv+mdrYfVxLZdBQ== + version "1.6.7" + resolved "https://registry.yarnpkg.com/simplebar-vue/-/simplebar-vue-1.6.7.tgz#fb1e2502dec6c87b38dc39787908438d22e13f2b" + integrity sha512-URrEV7Y2XqWFmYTxNeDHluC+FCybksHvaace6ItflTl5WXqniQFnZVtUax2AsJK7+n48wp8wpfqBlFv+BR4MAw== dependencies: core-js "^3.0.1" - simplebar "^5.3.0" + simplebar "^5.3.5" -simplebar@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-5.3.0.tgz#857de63296401ed0c3026845514fe5db69795be5" - integrity sha512-LgrGdIWpwHLLlI9HqfnGql62H/iZlF0KDZ7w3ZNbd2ZLwh9NKsODLHPzQgUlqQ8aZe7Y6/1xJMXK1PU5e810+w== +simplebar@^5.3.5: + version "5.3.5" + resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-5.3.5.tgz#799d14cdc8bb8ed245789745b9f3741d05403944" + integrity sha512-mcTlXEiva8pSMdNEzeV3C1KyBHk7Sn2Pe46U1Uwo53dCuQqdJIK0bEJrIPs8W4/RqJquKIsC8Y1h7+aqOl8ccA== dependencies: + "@juggle/resize-observer" "^3.3.1" can-use-dom "^0.1.0" core-js "^3.0.1" lodash.debounce "^4.0.8" lodash.memoize "^4.1.2" lodash.throttle "^4.1.1" - resize-observer-polyfill "^1.5.1" sirv@^1.0.7: - version "1.0.11" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" - integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== + version "1.0.16" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.16.tgz#9caadfc46c264a38ad1c38c99259692fbf76ed10" + integrity sha512-x56DISeIgSUGVJrQS3mwu+UvtnzHenKDFBQL+UlAswxwk9b2Cpc0KGVvftoIJZgweOOXbMZzyXFYgVElOuSI1Q== dependencies: - "@polka/url" "^1.0.0-next.9" + "@polka/url" "^1.0.0-next.19" mime "^2.3.1" totalist "^1.0.0" @@ -16363,9 +17452,9 @@ slide@^1.1.6: integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== smoothscroll-polyfill@^0.4.3: version "0.4.4" @@ -16403,16 +17492,16 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" - integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== + version "1.5.2" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" + integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== dependencies: debug "^3.2.6" eventsource "^1.0.7" faye-websocket "^0.11.3" inherits "^2.0.4" json3 "^3.3.3" - url-parse "^1.5.1" + url-parse "^1.5.3" sockjs@^0.3.21: version "0.3.21" @@ -16536,9 +17625,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== spdy-transport@^3.0.0: version "3.0.0" @@ -16647,6 +17736,13 @@ stack-utils@^1.0.1: dependencies: escape-string-regexp "^2.0.0" +stack-utils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -16772,6 +17868,14 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -16879,6 +17983,11 @@ strip-bom-string@^1.0.0: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= +strip-bom@4.0.0, strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -16920,6 +18029,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-json-comments@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -17024,6 +18138,21 @@ supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -17058,7 +18187,7 @@ symbol-observable@^4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== -symbol-tree@^3.2.2: +symbol-tree@^3.2.2, symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== @@ -17078,20 +18207,17 @@ syntax-error@^1.1.1: dependencies: acorn-node "^1.2.0" -table@^6.0.4: - version "6.1.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.1.0.tgz#676a0cfb206008b59e783fcd94ef8ba7d67d966c" - integrity sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: ajv "^8.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" lodash.clonedeep "^4.5.0" - lodash.flatten "^4.4.0" lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: version "1.1.3" @@ -17108,22 +18234,22 @@ tar@^2.0.0: inherits "2" tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -17166,6 +18292,14 @@ term-size@^2.1.0: resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -17206,9 +18340,9 @@ terser@^4.1.2, terser@^4.3.9, terser@^4.6.2, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== + version "5.7.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" + integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -17224,6 +18358,15 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -17248,10 +18391,10 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -thread-loader@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.3.tgz#c0fa0eae3b925f273a7cce868cf1f52b4a515d78" - integrity sha512-/s8dGDkKLF89qAsn2b0PNdXS68pKhj+/Rqd7YDht/OvTlBoMm0FAsndceowSX1GEKVLo8yKRil9e+W0PpI/q1g== +thread-loader@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" + integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== dependencies: json-parse-better-errors "^1.0.2" loader-runner "^4.1.0" @@ -17264,6 +18407,11 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" @@ -17326,11 +18474,6 @@ timsort@^0.3.0, timsort@~0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -17430,6 +18573,15 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -17437,6 +18589,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -17448,9 +18607,9 @@ trim-newlines@^2.0.0: integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== trim-off-newlines@^1.0.0: version "1.0.1" @@ -17490,26 +18649,24 @@ ts-invariant@^0.9.0: dependencies: tslib "^2.1.0" -ts-jest@^24.2.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" - integrity sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ== +ts-jest@^27.0.3: + version "27.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" + integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== dependencies: bs-logger "0.x" - buffer-from "1.x" fast-json-stable-stringify "2.x" + jest-util "^27.0.0" json5 "2.x" - lodash.memoize "4.x" + lodash "4.x" make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" + semver "7.x" + yargs-parser "20.x" ts-loader@^8.0.17, ts-loader@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.1.0.tgz#d6292487df279c7cc79b6d3b70bb9d31682b693e" - integrity sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A== + version "8.3.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.3.0.tgz#83360496d6f8004fab35825279132c93412edf33" + integrity sha512-MgGly4I6cStsJy27ViE32UoqxPTN9Xly4anxxVyaIWR+9BGxboV4EyJBGfR3RePV7Ksjj3rHmPZJeIt+7o4Vag== dependencies: chalk "^4.1.0" enhanced-resolve "^4.0.0" @@ -17533,10 +18690,10 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== +tsconfig-paths@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" @@ -17553,12 +18710,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - -tslib@^2.3.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@~2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -17568,7 +18720,12 @@ tslib@~2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== -tsutils@^3.17.1: +tslib@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -17611,6 +18768,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -17662,11 +18824,16 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.6.4: - version "3.9.9" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" - integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== + +typescript@^4.2.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" + integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== -typescript@^4.2.2, typescript@~4.2: +typescript@~4.2: version "4.2.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== @@ -17676,25 +18843,20 @@ typescript@~4.3.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -ua-parser-js@^0.7.18: +ua-parser-js@^0.7.18, ua-parser-js@^0.7.28: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== -ua-parser-js@^0.7.26: - version "0.7.27" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.27.tgz#b54f8ce9eb6c7abf3584edeaf9a3d8b3bd92edba" - integrity sha512-eXMaRYK2skomGocoX0x9sBXzx5A1ZVQgXfrW4mTc8dT0zS7olEcyfudAzRC5tIIRgLxQ69B6jut3DI+n5hslPA== - uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^0.6.10, ufo@^0.6.11: - version "0.6.11" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.6.11.tgz#69311ed4abc8ab671c83754b79ce0d396fea1075" - integrity sha512-Yu7TJThwlr23peOkX/+hm6LfkyBs+eDWV880468PTrjKBKjjsNWFFwIuOqDfmXngRo9TZ4+twFYueRH0OLl0Gw== +ufo@^0.7.4, ufo@^0.7.7: + version "0.7.9" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.9.tgz#0268e3734b413c9ed6f3510201f42372821b875c" + integrity sha512-6t9LrLk3FhqTS+GW3IqlITtfRB5JAVr5MMNjpBECfK827W+Vh5Ilw/LhTcHWrt6b3hkeBvcbjx4Ti7QVFzmcww== uglify-js@3.4.x: version "3.4.10" @@ -17705,9 +18867,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4, uglify-js@^3.5.1: - version "3.13.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" - integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== + version "3.14.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" + integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== uid-number@0.0.6: version "0.0.6" @@ -17724,7 +18886,7 @@ umd@^3.0.0: resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== -unbox-primitive@^1.0.0: +unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== @@ -17826,7 +18988,7 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -17942,10 +19104,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" - integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== +url-parse@^1.4.3, url-parse@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -18050,6 +19212,15 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + valid-url@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -18080,6 +19251,11 @@ validator@^8.0.0: resolved "https://registry.yarnpkg.com/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9" integrity sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA== +value-or-promise@1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446" + integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ== + value-or-promise@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.6.tgz#218aa4794aa2ee24dcf48a29aba4413ed584747f" @@ -18091,9 +19267,9 @@ vary@^1, vary@^1.1.2, vary@~1.1.2: integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vee-validate@^3.2.3: - version "3.4.5" - resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.5.tgz#96a456c309f7bdb2cce62c3b554f96d893e9f6ae" - integrity sha512-ZEcLqOAZzSkMhDvPcTx0xcwVOijFnMW9J+BA20j+rDmo24T8RCCqVQyRwwrDrcWJZV2dRYl/yYNa2GB6UCoBvg== + version "3.4.11" + resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.11.tgz#2015f75a4aa33c615418e6aa6b03bd778ed173d1" + integrity sha512-508zDZkxqzlXgOo3Rb+djjA1HxQjkUJzM2FKzxWIiwlarzYPb3J9seMifJZ+AfaWXraErZ+L0/6ncUBP7MYx2A== vendors@^1.0.0: version "1.0.4" @@ -18115,9 +19291,9 @@ vm-browserify@^1.0.0, vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vue-client-only@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.0.0.tgz#ddad8d675ee02c761a14229f0e440e219de1da1c" - integrity sha512-arhk1wtWAfLsJyxGMoEYhoBowM87/i6HLSG2LH/03Yog6i2d9JEN1peMP0Ceis+/n9DxdenGYZZTxbPPJyHciA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.1.0.tgz#1a67a47b8ecacfa86d75830173fffee3bf8a4ee3" + integrity sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA== vue-drag-drop@^1.1.4: version "1.1.4" @@ -18126,17 +19302,18 @@ vue-drag-drop@^1.1.4: dependencies: core-js "^2.5.3" -vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561" - integrity sha512-QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA== +vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" + integrity sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg== dependencies: debug "^4.1.1" - eslint-scope "^5.0.0" + eslint-scope "^5.1.1" eslint-visitor-keys "^1.1.0" espree "^6.2.1" esquery "^1.4.0" - lodash "^4.17.15" + lodash "^4.17.21" + semver "^6.3.0" vue-fragment@^1.5.1: version "1.5.2" @@ -18148,10 +19325,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-i18n@^8.24.3: - version "8.24.3" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.3.tgz#2233ae11ec59e8204df58a28fc41afe9754e3b41" - integrity sha512-uKAYzGbwGIJndY7JwhQwIGi1uyvErWkBfFwooOtjcNnIfMbAR49ad5dT/MiykrJ9pCcgvnocFjFsNLtTzyW+rg== +vue-i18n@^8.25.0: + version "8.25.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.25.0.tgz#1037d9295fa2845a230b771de473481edb2cfc4c" + integrity sha512-ynhcL+PmTxuuSE1T10htiSXzjBozxYIE3ffbM1RfgAkVbr/v1SP+9Mi/7/uv8ZVV1yGuKjFAYp9BXq+X7op6MQ== vue-jest@^4.0.0-0: version "4.0.1" @@ -18169,10 +19346,10 @@ vue-lazy-hydration@^2.0.0-beta.4: resolved "https://registry.yarnpkg.com/vue-lazy-hydration/-/vue-lazy-hydration-2.0.0-beta.4.tgz#11e7021a9bac003ea6ed74f132dcd0d025fafc1f" integrity sha512-bhr7AxzrSEPed4cOawIeCxJmR8pglberR78x1zs0886xR+47/EXE9s0Ezss90CPINo8ApzUfA/r+SbNffn+t9w== -vue-loader@^15.7.1, vue-loader@^15.9.6: - version "15.9.6" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" - integrity sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg== +vue-loader@^15.7.1, vue-loader@^15.9.7: + version "15.9.8" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" + integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== dependencies: "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" @@ -18198,9 +19375,9 @@ vue-no-ssr@^1.1.1: integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== vue-router@^3.4.5, vue-router@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.1.tgz#edf3cf4907952d1e0583e079237220c5ff6eb6c9" - integrity sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw== + version "3.5.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" + integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== vue-scrollto@^2.17.1: version "2.20.0" @@ -18210,9 +19387,9 @@ vue-scrollto@^2.17.1: bezier-easing "2.1.0" vue-server-renderer@^2.6.10, vue-server-renderer@^2.6.12: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.12.tgz#a8cb9c49439ef205293cb41c35d0d2b0541653a5" - integrity sha512-3LODaOsnQx7iMFTBLjki8xSyOxhCtbZ+nQie0wWY4iOVeEtTg1a3YQAjd82WvKxrWHHTshjvLb7OXMc2/dYuxw== + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz#c8bffff152df6b47b858818ef8d524d2fc351654" + integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== dependencies: chalk "^1.1.3" hash-sum "^1.0.2" @@ -18231,10 +19408,10 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.x: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" - integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== +vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.14, vue-template-compiler@^2.6.x: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" + integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -18245,14 +19422,14 @@ vue-template-es2015-compiler@^1.9.0: integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== vue2-leaflet@^2.5.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/vue2-leaflet/-/vue2-leaflet-2.7.0.tgz#e8a78671b8fa843ab19cfd93582bc166a05ec3ed" - integrity sha512-uT7lpFoVEDhINMyTpiAthh6aiKFGHuYWLoVH8JJ0YNNSch+XMZFl4YBQ0S2hHYDquQIsh8zx+yINeUI01y9ugw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/vue2-leaflet/-/vue2-leaflet-2.7.1.tgz#2f95c287621bf778f10804c88223877f5c049257" + integrity sha512-K7HOlzRhjt3Z7+IvTqEavIBRbmCwSZSCVUlz9u4Rc+3xGCLsHKz4TAL4diAmfHElCQdPPVdZdJk8wPUt2fu6WQ== vue@^2.6.10, vue@^2.6.11, vue@^2.6.12, vue@^2.6.x: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" - integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== vuepress-html-webpack-plugin@^3.2.0: version "3.2.0" @@ -18299,13 +19476,20 @@ vuex@^3.6.2: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== -w3c-hr-time@^1.0.1: +w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -18363,6 +19547,16 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-bundle-analyzer@^3.5.2: version "3.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" @@ -18382,10 +19576,10 @@ webpack-bundle-analyzer@^3.5.2: opener "^1.5.1" ws "^6.0.0" -webpack-bundle-analyzer@^4.4.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1" - integrity sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw== +webpack-bundle-analyzer@^4.4.1: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -18424,15 +19618,15 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-middleware@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" - integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== +webpack-dev-middleware@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" + integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== dependencies: - colorette "^1.2.1" - mem "^8.0.0" - memfs "^3.2.0" - mime-types "^2.1.28" + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.30" range-parser "^1.2.1" schema-utils "^3.0.0" @@ -18500,10 +19694,10 @@ webpack-merge@^4.1.2: dependencies: lodash "^4.17.15" -webpack-node-externals@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#178e017a24fec6015bc9e672c77958a6afac861d" - integrity sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w== +webpack-node-externals@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" + integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" @@ -18584,7 +19778,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -18596,7 +19790,7 @@ whatwg-fetch@>=0.10.0, whatwg-fetch@^3.4.1: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -18619,6 +19813,15 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + when@~3.6.x: version "3.6.4" resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" @@ -18645,7 +19848,7 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -18680,7 +19883,7 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -18808,29 +20011,24 @@ ws@7.4.5: integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + version "5.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== dependencies: async-limiter "~1.0.0" -"ws@^5.2.0 || ^6.0.0 || ^7.0.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" - integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== ws@^6.0.0, ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" -ws@^7.3.1: - version "7.4.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" - integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -18841,6 +20039,11 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -18858,12 +20061,17 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -18878,12 +20086,10 @@ yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@10.x: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^13.1.2: version "13.1.2" @@ -18894,9 +20100,9 @@ yargs-parser@^13.1.2: decamelize "^1.2.0" yargs-parser@^15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" - integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -18909,11 +20115,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.3: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - yargs@^13.2.2, yargs@^13.3.0, yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -18964,6 +20165,32 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.0.0: + version "17.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 09548e48e30ee7202a5c779183a216d1e27534d7 Mon Sep 17 00:00:00 2001 From: daaf <44862757+dawid-ziobro@users.noreply.github.com> Date: Mon, 27 Sep 2021 14:06:05 +0200 Subject: [PATCH 003/151] fix(os-178): fixed failing tests (#6358) Co-authored-by: Dawid Ziobro --- .../helpers/commercetoolsLink/linkHandlers.spec.ts | 10 +++++++--- .../composables/__tests__/useFacet/useFacet.spec.ts | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/commercetools/api-client/__tests__/helpers/commercetoolsLink/linkHandlers.spec.ts b/packages/commercetools/api-client/__tests__/helpers/commercetoolsLink/linkHandlers.spec.ts index 18756a6893..254c761348 100644 --- a/packages/commercetools/api-client/__tests__/helpers/commercetoolsLink/linkHandlers.spec.ts +++ b/packages/commercetools/api-client/__tests__/helpers/commercetoolsLink/linkHandlers.spec.ts @@ -19,6 +19,7 @@ describe('[commercetools-helpers] handleBeforeAuth', () => { it('doesnt generate access token for guest on users related operations', async () => { const scope = ''; const result = await handleBeforeAuth({ + settings: {}, sdkAuth: getSdkAuth(scope), tokenProvider: getTokenProvider(scope), apolloReq: { operationName: 'customerSignMeIn' }, @@ -31,6 +32,7 @@ describe('[commercetools-helpers] handleBeforeAuth', () => { it('generates access token for guest on anonymous-session allowed operations', async () => { const scope = ''; const result = await handleBeforeAuth({ + settings: {}, sdkAuth: getSdkAuth(scope), tokenProvider: getTokenProvider(scope), apolloReq: { operationName: 'createCart' }, @@ -43,6 +45,7 @@ describe('[commercetools-helpers] handleBeforeAuth', () => { it('returns current token for anonymous user', async () => { const scope = 'anonymous_id'; const result = await handleBeforeAuth({ + settings: {}, sdkAuth: getSdkAuth(scope), tokenProvider: getTokenProvider(scope), apolloReq: { operationName: 'customerSignMeIn' }, @@ -55,6 +58,7 @@ describe('[commercetools-helpers] handleBeforeAuth', () => { it('returns current token for logged in user', async () => { const scope = 'customer_id'; const result = await handleBeforeAuth({ + settings: {}, sdkAuth: getSdkAuth(scope), tokenProvider: getTokenProvider(scope), apolloReq: { operationName: 'customerSignMeIn' }, @@ -140,7 +144,7 @@ describe('[commercetools-helpers] handleRetry', () => { it('defaults to false', () => { const tokenProvider = getTokenProvider(''); - const handler = handleRetry({ tokenProvider }); + const handler = handleRetry({ settings: {}, tokenProvider }); const operation = { operationName: 'any' }; const error = { result: { message: '' } }; @@ -150,7 +154,7 @@ describe('[commercetools-helpers] handleRetry', () => { it('doesnt run more than 3 times', () => { const tokenProvider = getTokenProvider(''); - const handler = handleRetry({ tokenProvider }); + const handler = handleRetry({ settings: {}, tokenProvider }); const operation = { operationName: 'any' }; const error = { result: { message: 'invalid_token' } }; @@ -160,7 +164,7 @@ describe('[commercetools-helpers] handleRetry', () => { it('calls "invalidateTokenInfo" on "invalid_token" error', () => { const tokenProvider = getTokenProvider(''); - const handler = handleRetry({ tokenProvider }); + const handler = handleRetry({ settings: {}, tokenProvider }); const operation = { operationName: 'any' }; const error = { result: { message: 'invalid_token' } }; diff --git a/packages/commercetools/composables/__tests__/useFacet/useFacet.spec.ts b/packages/commercetools/composables/__tests__/useFacet/useFacet.spec.ts index 509d400eb0..1a50c40142 100644 --- a/packages/commercetools/composables/__tests__/useFacet/useFacet.spec.ts +++ b/packages/commercetools/composables/__tests__/useFacet/useFacet.spec.ts @@ -26,9 +26,9 @@ const context = { } } })), - getCategory: jest.fn(() => ({ + categorySearch: jest.fn(() => ({ data: { - categories: { + categorySearch: { results: [{ id: 1, name: 'cat1' }] } } @@ -61,7 +61,7 @@ describe('[commercetools-composables] useFacet', () => { } } as any); - expect(context.$ct.api.getCategory).toBeCalled(); + expect(context.$ct.api.categorySearch).toBeCalled(); expect(context.$ct.api.getProduct).toBeCalled(); expect(enhanceProduct).toBeCalled(); expect(getFiltersFromProductsAttributes).toBeCalled(); From e1f21eab2ee9f6081455b636ab23cc0736ec56fd Mon Sep 17 00:00:00 2001 From: daaf <44862757+dawid-ziobro@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:56:19 +0200 Subject: [PATCH 004/151] fix(os-176): fixed adding items to cart from list view in category (#6356) * fix(os-176): fixed adding items to cart from list view in category Co-authored-by: Dawid Ziobro --- packages/core/docs/core/changelog/6356.js | 8 ++++++++ packages/core/nuxt-theme-module/theme/pages/Category.vue | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 packages/core/docs/core/changelog/6356.js diff --git a/packages/core/docs/core/changelog/6356.js b/packages/core/docs/core/changelog/6356.js new file mode 100644 index 0000000000..e60efe13ba --- /dev/null +++ b/packages/core/docs/core/changelog/6356.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fixed adding items to cart from list view in category page', + link: 'https://github.com/vuestorefront/vue-storefront/pull/6356', + isBreaking: false, + breakingChanges: [], + author: 'Dawid Ziobro', + linkToGitHubAccount: 'https://github.com/dawid-ziobro' +}; diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index 6b43643f1f..243eaed0cf 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -211,7 +211,7 @@ import { SfColor, SfProperty } from '@storefront-ui/vue'; -import { computed } from '@vue/composition-api'; +import { computed, ref } from '@vue/composition-api'; import { useCart, useWishlist, productGetters, useFacet, facetGetters } from '<%= options.generate.replace.composables %>'; import { useUiHelpers, useUiState } from '~/composables'; import { onSSR } from '@vue-storefront/core'; @@ -233,6 +233,7 @@ export default { const { addItem: addItemToWishlist, isInWishlist, removeItem: removeItemFromWishlist } = useWishlist(); const { result, search, loading, error } = useFacet(); + const productsQuantity = ref({}); const products = computed(() => facetGetters.getProducts(result.value)); const categoryTree = computed(() => facetGetters.getCategoryTree(result.value)); const breadcrumbs = computed(() => facetGetters.getBreadcrumbs(result.value)); @@ -268,7 +269,8 @@ export default { removeItemFromWishlist, isInWishlist, addItemToCart, - isInCart + isInCart, + productsQuantity }; }, components: { From ba5f58d61375392ad1a6a0d456a5b4a1ad11a991 Mon Sep 17 00:00:00 2001 From: lsliwaradioluz <39009379+lsliwaradioluz@users.noreply.github.com> Date: Tue, 28 Sep 2021 09:05:09 +0200 Subject: [PATCH 005/151] fix(cache): cache package invalidation bug (#6355) * Send response in cache invalidation request handler * Add changelog --- packages/core/cache/nuxt/index.js | 10 ++++++---- packages/core/docs/changelog/6355.js | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 packages/core/docs/changelog/6355.js diff --git a/packages/core/cache/nuxt/index.js b/packages/core/cache/nuxt/index.js index 3cd663522b..b06c50d81f 100644 --- a/packages/core/cache/nuxt/index.js +++ b/packages/core/cache/nuxt/index.js @@ -28,15 +28,17 @@ function createInvalidationEndpoint (driver, options) { tags: Array.from(new Set(tags)) }); - response.writeHead(200); + response + .status(200) + .send('Cache invalidated successfully!'); } catch (error) { Logger.error('Cache driver thrown an error when invalidating cache! Operation skipped.'); Logger.error(error); - response.writeHead(500); + response + .status(500) + .send(`Cache driver thrown an error when invalidating cache! Operation skipped. ${error}`); } - - response.end(); }; this.addServerMiddleware({ diff --git a/packages/core/docs/changelog/6355.js b/packages/core/docs/changelog/6355.js new file mode 100644 index 0000000000..480024d8eb --- /dev/null +++ b/packages/core/docs/changelog/6355.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'fix(cache): cache package invalidation bug', + link: 'https://github.com/vuestorefront/vue-storefront/pull/6355', + isBreaking: false, + breakingChanges: [], + author: 'Łukasz Śliwa', + linkToGitHubAccount: 'https://github.com/lsliwaradioluz' +}; From 91cb276475ca98c29a1d7cf3e9959c6315a46da9 Mon Sep 17 00:00:00 2001 From: Marcin Sulowski Date: Tue, 28 Sep 2021 09:26:47 +0200 Subject: [PATCH 006/151] fix(ct): productType field ommited for custom queries (#6350) * fix(ct): productType field ommited for custom queries * fix(ct): CR - move changelog Co-authored-by: Marcin Sulowski --- .../composables/src/helpers/internals/enhanceProduct.ts | 3 ++- packages/core/docs/commercetools/changelog/6347.js | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/core/docs/commercetools/changelog/6347.js diff --git a/packages/commercetools/composables/src/helpers/internals/enhanceProduct.ts b/packages/commercetools/composables/src/helpers/internals/enhanceProduct.ts index a0df506e50..ea8d6a34d3 100644 --- a/packages/commercetools/composables/src/helpers/internals/enhanceProduct.ts +++ b/packages/commercetools/composables/src/helpers/internals/enhanceProduct.ts @@ -37,7 +37,8 @@ const enhanceProduct = (productResponse: ApolloQueryResult, context _master: current.masterVariant.id === variant.id, _description: current.description, _categoriesRef: current.categoriesRef.map((cr) => cr.id), - _rating: (product as any).reviewRatingStatistics + _rating: (product as any).reviewRatingStatistics, + ...(product.productType && { _productType: product.productType }) })); }) .reduce((prev, curr) => [...prev, ...curr], []); diff --git a/packages/core/docs/commercetools/changelog/6347.js b/packages/core/docs/commercetools/changelog/6347.js new file mode 100644 index 0000000000..6c8d09a907 --- /dev/null +++ b/packages/core/docs/commercetools/changelog/6347.js @@ -0,0 +1,7 @@ +module.exports = { + description: 'getProduct custom query - productType doesnt get mapped to product response in enhanceProduct helper', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6347', + isBreaking: false, + author: 'Marcin Sulowski', + linkToGitHubAccount: 'https://github.com/MarcinSulowski' +}; From 37a98348914da79c79335f2374b8b14961030b47 Mon Sep 17 00:00:00 2001 From: Justyna <46591755+justyna-13@users.noreply.github.com> Date: Wed, 29 Sep 2021 12:14:28 +0200 Subject: [PATCH 007/151] fix: updated ui version (#6368) * fix: updated ui version * fix: updated ui version bolierplate * fix: updated yarn * fix: problems with negative number using by css calc method * chore: add changelog Co-authored-by: Rafal Dobrowolski --- packages/boilerplate/theme/package.json | 2 +- packages/commercetools/theme/package.json | 2 +- .../core/docs/commercetools/changelog/6354.js | 8 + .../theme/components/RelatedProducts.vue | 2 +- .../nuxt-theme-module/theme/pages/Home.vue | 2 +- yarn.lock | 293 +++--------------- 6 files changed, 48 insertions(+), 261 deletions(-) create mode 100644 packages/core/docs/commercetools/changelog/6354.js diff --git a/packages/boilerplate/theme/package.json b/packages/boilerplate/theme/package.json index ab8fe18cf6..a03e005b6f 100644 --- a/packages/boilerplate/theme/package.json +++ b/packages/boilerplate/theme/package.json @@ -13,7 +13,7 @@ "test:e2e:generate:report": "yarn -s mochawesome-merge \"tests/e2e/report/*.json\" > \"tests/e2e/report.json\" && yarn -s marge tests/e2e/report.json -o \"tests/e2e/report\"" }, "dependencies": { - "@storefront-ui/vue": "^0.10.3", + "@storefront-ui/vue": "0.11.0-rc.1", "@vue-storefront/boilerplate": "~2.4.2", "@vue-storefront/middleware": "~2.4.2", "@vue-storefront/nuxt": "~2.4.2", diff --git a/packages/commercetools/theme/package.json b/packages/commercetools/theme/package.json index 677dfb1dfd..33c5c8f49d 100644 --- a/packages/commercetools/theme/package.json +++ b/packages/commercetools/theme/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@nuxtjs/pwa": "^3.2.2", - "@storefront-ui/vue": "0.10.3", + "@storefront-ui/vue": "0.11.0-rc.1", "@vue-storefront/commercetools": "~1.3.2", "@vue-storefront/middleware": "~2.4.2", "@vue-storefront/nuxt": "~2.4.2", diff --git a/packages/core/docs/commercetools/changelog/6354.js b/packages/core/docs/commercetools/changelog/6354.js new file mode 100644 index 0000000000..f3a753482b --- /dev/null +++ b/packages/core/docs/commercetools/changelog/6354.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fix bug with wrong version UI and resolve problems with parse negative number for css calc method(after upgrading SFUI to 0.11.0-rc.1)', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6354', + isBreaking: false, + breakingChanges: [], + author: 'Rafał Dobrowolski', + linkToGitHubAccount: 'https://github.com/RafalDobrowolski' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue b/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue index 287fc16477..c215dbd031 100644 --- a/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue +++ b/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue @@ -55,7 +55,7 @@ export default { } .carousel { - margin: 0 calc(var(--spacer-sm) * -1) 0 0; + margin: 0 calc(0 - var(--spacer-sm)) 0 0; @include for-desktop { margin: 0; } diff --git a/packages/core/nuxt-theme-module/theme/pages/Home.vue b/packages/core/nuxt-theme-module/theme/pages/Home.vue index 37a71456bb..5f74a3e6f1 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Home.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Home.vue @@ -373,7 +373,7 @@ export default { } .carousel { - margin: 0 calc(var(--spacer-sm) * -1) 0 0; + margin: 0 calc(0 - var(--spacer-sm)) 0 0; @include for-desktop { margin: 0; } diff --git a/yarn.lock b/yarn.lock index 990a19a73b..910d6f1743 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1380,11 +1380,6 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/mount-utils@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@cypress/mount-utils/-/mount-utils-1.0.2.tgz#afbc4f8c350b7cd86edc5ad0db0cbe1e0181edc8" - integrity sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw== - "@cypress/request@^2.88.5": version "2.88.6" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.6.tgz#a970dd675befc6bdf8a8921576c01f51cc5798e9" @@ -1410,14 +1405,6 @@ tunnel-agent "^0.6.0" uuid "^8.3.2" -"@cypress/vue@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cypress/vue/-/vue-2.2.3.tgz#81822914019c47b5a6011652e50c5aad6041c6cc" - integrity sha512-KgrUjiLVyoiU5xb5JAhsdFLDzyh7Njhm4TMuINFsoBZkt4PJptGCsMzdaI7lk1XX20NGvg8MPIFbbQi+L0L8qQ== - dependencies: - "@cypress/mount-utils" "1.0.2" - "@vue/test-utils" "^1.1.3" - "@cypress/xvfb@^1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" @@ -3648,15 +3635,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@storefront-ui/shared@0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.2.tgz#144d3a7d5508563ad97c1882fbd291abb0166349" - integrity sha512-EWwct/pMYcXhMKGEE2h7blw0XIvcVokhzdzfl5VROSajtflJkJ11hfaOxFWkB5Zgd6IdS9iwR2ayzVjunVRuEA== - -"@storefront-ui/shared@0.10.71": - version "0.10.71" - resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.10.71.tgz#210665f54f04b62e000c97ce2ce9aa973ce95197" - integrity sha512-fLv7iAEk1YEq7yoZkvWkQNGMH6XqpqqJWjrJ5Hcr51gUvzk0vCLGebOp8iOYbSHmMwRhOkCxUVOFK9oo3WKdAQ== +"@storefront-ui/shared@0.11.0-rc.1": + version "0.11.0-rc.1" + resolved "https://registry.yarnpkg.com/@storefront-ui/shared/-/shared-0.11.0-rc.1.tgz#7f6dcd3ef7a0422e9c8b890e9bbe6253fec574b6" + integrity sha512-B5C+6DRp4sMnsZCT1D6n5hEIs5mC/HDC1mxc0/f2hbVmldSWm/IK3sLbzqPVdbGVq019w6BjatlDdPyG+AOYgw== "@storefront-ui/vue@0.11.0-rc.1": version "0.11.0-rc.1" @@ -3678,26 +3660,6 @@ vue "^2.6.12" vue2-leaflet "^2.5.2" -"@storefront-ui/vue@^0.10.3": - version "0.10.71" - resolved "https://registry.yarnpkg.com/@storefront-ui/vue/-/vue-0.10.71.tgz#18c512d2234db4ba009e49e4391d5062ec05b63f" - integrity sha512-cWdml1ZPx3g1i/kyhktd0cMjQNDgnKi6h3e5+VZS21gJEjmnXyhIilc0gQffRJ852w06fhQ3KXgC3TF6mFEauQ== - dependencies: - "@cypress/vue" "^2.0.1" - "@glidejs/glide" "^3.3.0" - "@storefront-ui/shared" "0.10.71" - body-scroll-lock "^3.0.1" - cloudinary-build-url "^0.1.1" - core-js "^3.6.5" - hammerjs "^2.0.8" - leaflet "^1.5.1" - node-sass "^4.13.1" - nouislider "^15.2.0" - sass-loader "^8.0.2" - simplebar-vue "^1.4.0" - vue "^2.6.12" - vue2-leaflet "^2.5.2" - "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -4560,7 +4522,7 @@ dependencies: vue-eslint-parser "^7.0.0" -"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30", "@vue/test-utils@^1.1.3": +"@vue/test-utils@^1.0.0-beta.27", "@vue/test-utils@^1.0.0-beta.30": version "1.2.2" resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.2.2.tgz#0242ea4e202d4853541bb167fead3f2249140ab7" integrity sha512-P+yiAsszoy8z1TqXiVUnAZaJj0WGGz5fCxm4bOSI6Cpwy1+PNYwYxDv0ROAA/SUtOPppV+aD8tp/QWwxf8ROJw== @@ -5107,11 +5069,6 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -5517,11 +5474,6 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= - async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -5893,13 +5845,6 @@ blob-util@2.0.2: resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - bluebird@3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" @@ -6585,7 +6530,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -6675,21 +6620,6 @@ chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1, chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -7548,14 +7478,6 @@ cross-fetch@3.1.4, cross-fetch@^3.0.4: dependencies: node-fetch "2.6.1" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -9870,16 +9792,6 @@ fsevents@^2.3.2, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - fsu@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" @@ -9909,13 +9821,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - genfun@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" @@ -10126,7 +10031,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -10253,15 +10158,6 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -globule@^1.0.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" - integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -11020,11 +10916,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -in-publish@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" - integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== - indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -11060,7 +10951,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -12626,11 +12517,6 @@ jju@~1.4.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= -js-base64@^2.1.8: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - js-beautify@^1.6.12: version "1.14.0" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" @@ -13343,7 +13229,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.21, lodash@4.x, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.7.0, lodash@~4.17.10, lodash@~4.17.15: +lodash@4.17.21, lodash@4.x, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.7.0, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -13429,7 +13315,7 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5: +lru-cache@^4.1.2, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -13651,7 +13537,7 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0, meow@^3.7.0: +meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= @@ -13850,7 +13736,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -13983,7 +13869,7 @@ mkdirp@0.3.0: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -14144,7 +14030,7 @@ mz@^2.5.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== @@ -14233,24 +14119,6 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - node-gyp@^5.0.2: version "5.1.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" @@ -14347,29 +14215,6 @@ node-res@^5.0.1: on-finished "^2.3.0" vary "^1.1.2" -node-sass@^4.13.1: - version "4.14.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" - integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "2.2.5" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - nopt@1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -14377,13 +14222,6 @@ nopt@1.0.10: dependencies: abbrev "1" -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -14543,7 +14381,7 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2: +npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -14863,7 +14701,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4, osenv@^0.1.5: +osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -17058,7 +16896,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -17186,16 +17024,6 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sass-graph@2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" - integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^13.3.2" - sass-loader@10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" @@ -17207,6 +17035,17 @@ sass-loader@10.1.1: schema-utils "^3.0.0" semver "^7.3.2" +sass-loader@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.0.tgz#3d64c1590f911013b3fa48a0b22a83d5e1494716" + integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + sass-loader@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" @@ -17229,9 +17068,9 @@ sass-resources-loader@^2.2.4: loader-utils "^2.0.0" sass@^1.32.13: - version "1.38.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.1.tgz#54dfb17fb168846b5850324b82fc62dc68f51bad" - integrity sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw== + version "1.42.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.42.1.tgz#5ab17bebc1cb1881ad2e0c9a932c66ad64e441e2" + integrity sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -17283,14 +17122,6 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - scule@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" @@ -17355,11 +17186,6 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -17776,13 +17602,6 @@ source-map@0.5.6: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -17975,13 +17794,6 @@ std-env@^2.2.1, std-env@^2.3.0: dependencies: ci-info "^3.0.0" -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -18424,15 +18236,6 @@ tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" @@ -18816,13 +18619,6 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -19028,21 +18824,16 @@ typescript@^3.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== -typescript@^4.2.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" - integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== +typescript@^4.2.2, typescript@~4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== typescript@~4.2: version "4.2.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== -typescript@^4.2.2, typescript@~4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== - ua-parser-js@^0.7.18, ua-parser-js@^0.7.28: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" @@ -19495,13 +19286,6 @@ vue-client-only@^2.0.0: resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.1.0.tgz#1a67a47b8ecacfa86d75830173fffee3bf8a4ee3" integrity sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA== -vue-drag-drop@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vue-drag-drop/-/vue-drag-drop-1.1.4.tgz#6e94aeb10304b91d651614b7307d0b90f0227e89" - integrity sha512-zrpvKcD5LPVbht7cJ7ZBY0poS8GDLibRck18Zx0polkoSSpTPNMAv/m/b98xtZ3I1jdWGyiPybfPgKFFkygjhQ== - dependencies: - core-js "^2.5.3" - vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.10.0: version "7.10.0" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" @@ -19515,11 +19299,6 @@ vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.10.0: lodash "^4.17.21" semver "^6.3.0" -vue-fragment@^1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/vue-fragment/-/vue-fragment-1.5.2.tgz#310017170c564c4aad95da14c185c92c6784fd3c" - integrity sha512-KEW0gkeNOLJjtXN4jqJhTazez5jtrwimHkE5Few/VxblH4F9EcvJiEsahrV5kg5uKd5U8du4ORKS6QjGE0piYA== - vue-hot-reload-api@^2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" @@ -20048,7 +19827,7 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== From 50df84c7f4a84d9ebdc68159eb71ef8aa0c41569 Mon Sep 17 00:00:00 2001 From: Marcin Sulowski Date: Thu, 30 Sep 2021 09:18:04 +0200 Subject: [PATCH 008/151] fix(OS-169): allow to customise currency & country cookie names (#6372) * fix(OS-169): allow to customize currency & country cookie names * fix(OS-169): add cookies obj to mapI18nSettings * fix(OS-169): add changelog Co-authored-by: Marcin Sulowski --- packages/commercetools/composables/nuxt/index.js | 5 +++-- packages/core/docs/changelog/6296.js | 7 +++++++ packages/core/docs/commercetools/changelog/6296.js | 7 +++++++ packages/core/nuxt-module/lib/plugins/i18n-cookies.js | 11 ++++++++--- 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 packages/core/docs/changelog/6296.js create mode 100644 packages/core/docs/commercetools/changelog/6296.js diff --git a/packages/commercetools/composables/nuxt/index.js b/packages/commercetools/composables/nuxt/index.js index c60622c40a..35dc1a4236 100644 --- a/packages/commercetools/composables/nuxt/index.js +++ b/packages/commercetools/composables/nuxt/index.js @@ -7,7 +7,8 @@ const mapI18nSettings = (i18n) => ({ acceptLanguage: i18n.locales.map(({ code }) => code), countries: i18n.countries, currencies: i18n.currencies, - locales: i18n.locales.map(({ label, code }) => ({ name: code, label })) + locales: i18n.locales.map(({ label, code }) => ({ name: code, label })), + ...(i18n.cookies && { cookies: i18n.cookies }) }); const isNuxtI18nUsed = (moduleOptions) => moduleOptions.i18n && moduleOptions.i18n.useNuxtI18nConfig; @@ -16,7 +17,7 @@ const getMissingFields = (options) => ['locale', 'currency', 'country', 'acceptLanguage', 'countries', 'currencies', 'locales'] .filter(o => options[o] === undefined); -export default function (moduleOptions) { +export default function(moduleOptions) { const options = isNuxtI18nUsed(moduleOptions) ? { ...moduleOptions, ...mapI18nSettings(this.options.i18n) } : moduleOptions; diff --git a/packages/core/docs/changelog/6296.js b/packages/core/docs/changelog/6296.js new file mode 100644 index 0000000000..bd2755a8a3 --- /dev/null +++ b/packages/core/docs/changelog/6296.js @@ -0,0 +1,7 @@ +module.exports = { + description: 'allow to customize currency & country cookie names in i18nCookiesPlugin', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6296', + isBreaking: false, + author: 'Marcin Sulowski', + linkToGitHubAccount: 'https://github.com/MarcinSulowski' +}; diff --git a/packages/core/docs/commercetools/changelog/6296.js b/packages/core/docs/commercetools/changelog/6296.js new file mode 100644 index 0000000000..aab4de83a8 --- /dev/null +++ b/packages/core/docs/commercetools/changelog/6296.js @@ -0,0 +1,7 @@ +module.exports = { + description: 'pass cookies obj with cookie names to mapI18nSettings', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6296', + isBreaking: false, + author: 'Marcin Sulowski', + linkToGitHubAccount: 'https://github.com/MarcinSulowski' +}; diff --git a/packages/core/nuxt-module/lib/plugins/i18n-cookies.js b/packages/core/nuxt-module/lib/plugins/i18n-cookies.js index e6c423dae0..c7ecc2f993 100644 --- a/packages/core/nuxt-module/lib/plugins/i18n-cookies.js +++ b/packages/core/nuxt-module/lib/plugins/i18n-cookies.js @@ -27,8 +27,13 @@ const i18nCookiesPlugin = ({ $cookies }) => { expires: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) // Year from now }; - !$cookies.get(VSF_CURRENCY_COOKIE) && $cookies.set(VSF_CURRENCY_COOKIE, settings.currency, cookieOptions); - !$cookies.get(VSF_COUNTRY_COOKIE) && $cookies.set(VSF_COUNTRY_COOKIE, settings.country, cookieOptions); + const cookieNames = { + currency: i18n.cookies?.currencyCookieName || VSF_CURRENCY_COOKIE, + country: i18n.cookies?.countryCookieName || VSF_COUNTRY_COOKIE + } + + !$cookies.get(cookieNames.currency) && $cookies.set(cookieNames.currency, settings.currency, cookieOptions); + !$cookies.get(cookieNames.country) && $cookies.set(cookieNames.country, settings.country, cookieOptions); }; -export default i18nCookiesPlugin; \ No newline at end of file +export default i18nCookiesPlugin; From 1ae4f6b55dc633e88b136fcf03431b38b9b87d88 Mon Sep 17 00:00:00 2001 From: igorwojciechowski Date: Thu, 30 Sep 2021 09:39:17 +0200 Subject: [PATCH 009/151] test(e2e): adjust e2e tests to new sfui version (#6388) * test(e2e): adjust e2e tests to new sfui version * test(e2e): adjust e2e tests to new sfui version --- .../theme/tests/e2e/pages/checkout.ts | 86 +++++++------------ .../e2e/pages/components/cart-sidebar.ts | 4 +- .../tests/e2e/pages/components/header.ts | 2 +- .../theme/components/AppHeader.vue | 4 +- .../theme/components/CategoryPageHeader.vue | 4 +- .../MyAccount/ProfileUpdateForm.vue | 1 - .../theme/pages/Checkout/Billing.vue | 3 - .../theme/pages/Checkout/Payment.vue | 4 +- .../theme/pages/Checkout/Shipping.vue | 3 - .../e2e-checkout-order-summary.spec.ts | 2 +- .../e2e/integration/e2e-place-order.spec.ts | 2 +- .../integration/e2e-user-registration.spec.ts | 4 +- .../theme/tests/e2e/pages/category.ts | 7 +- .../theme/tests/e2e/pages/checkout.ts | 16 ++-- .../tests/e2e/pages/components/breadcrumbs.ts | 6 +- .../e2e/pages/components/cart-sidebar.ts | 2 +- .../tests/e2e/pages/components/header.ts | 8 +- .../tests/e2e/pages/components/login-modal.ts | 8 +- .../theme/tests/e2e/pages/my-account.ts | 4 +- .../theme/components/AppHeader.vue | 4 +- .../theme/components/CartSidebar.vue | 1 - .../theme/components/LoginModal.vue | 3 +- .../theme/pages/Category.vue | 1 - .../theme/pages/Checkout/Payment.vue | 3 +- .../theme/pages/Checkout/Shipping.vue | 1 - 25 files changed, 72 insertions(+), 111 deletions(-) diff --git a/packages/boilerplate/theme/tests/e2e/pages/checkout.ts b/packages/boilerplate/theme/tests/e2e/pages/checkout.ts index b2366f09d7..73d216686a 100644 --- a/packages/boilerplate/theme/tests/e2e/pages/checkout.ts +++ b/packages/boilerplate/theme/tests/e2e/pages/checkout.ts @@ -1,54 +1,63 @@ import { Customer } from '../types/customer'; import { el } from './utils/element'; -class Shipping { +class Checkout { + protected step: string; + + get heading(): Cypress.Chainable { + return cy.get(`h3:contains("${Cypress._.capitalize(this.step)}")`); + } get firstName(): Cypress.Chainable { - return el('shipping-firstName', 'input'); + return el(`${this.step}-firstName`, 'input'); } get lastName(): Cypress.Chainable { - return el('shipping-lastName'); + return el(`${this.step}-lastName`); } get streetName(): Cypress.Chainable { - return el('shipping-streetName'); + return el(`${this.step}-streetName`); } get apartment(): Cypress.Chainable { - return el('shipping-apartment'); + return el(`${this.step}-apartment`); } get city(): Cypress.Chainable { - return el('shipping-city'); + return el(`${this.step}-city`); } get state(): Cypress.Chainable { - return el('shipping-state', 'input'); + return el(`${this.step}-state`, 'input'); } get country(): Cypress.Chainable { - return el('shipping-country', 'select'); + return el(`${this.step}-country`, 'select'); } get zipcode(): Cypress.Chainable { - return el('shipping-zipcode'); + return el(`${this.step}-zipcode`); } get phone(): Cypress.Chainable { - return el('shipping-phone'); + return el(`${this.step}-phone`); } - get continueToBillingButton(): Cypress.Chainable { - return el('continue-to-billing'); +} + +class Shipping extends Checkout { + constructor() { + super(); + this.step = 'shipping'; } - get heading(): Cypress.Chainable { - return el('shipping-heading'); + get continueToBillingButton(): Cypress.Chainable { + return cy.contains('Continue to billing'); } get selectShippingButton(): Cypress.Chainable { - return el('select-shipping'); + return cy.contains('Select shipping method'); } get shippingMethods(): Cypress.Chainable { @@ -68,49 +77,14 @@ class Shipping { } } -class Billing { - get firstName(): Cypress.Chainable { - return el('billing-firstName'); - } - - get lastName(): Cypress.Chainable { - return el('billing-lastName'); - } - - get streetName(): Cypress.Chainable { - return el('billing-streetName'); - } - - get apartment(): Cypress.Chainable { - return el('billing-apartment'); - } - - get city(): Cypress.Chainable { - return el('billing-city'); - } - - get state(): Cypress.Chainable { - return el('billing-state', 'input'); - } - - get country(): Cypress.Chainable { - return el('billing-country', 'select'); - } - - get zipcode(): Cypress.Chainable { - return el('billing-zipcode'); - } - - get phone(): Cypress.Chainable { - return el('billing-phone'); +class Billing extends Checkout { + constructor() { + super(); + this.step = 'billing'; } get continueToPaymentButton(): Cypress.Chainable { - return el('continue-to-payment'); - } - - get heading(): Cypress.Chainable { - return el('billing-heading'); + return cy.contains('Continue to payment'); } public fillForm(customer: Customer) { @@ -129,7 +103,7 @@ class Billing { class Payment { get makeAnOrderButton(): Cypress.Chainable { - return el('make-an-order'); + return cy.contains('Make an order'); } get paymentMethods(): Cypress.Chainable { diff --git a/packages/boilerplate/theme/tests/e2e/pages/components/cart-sidebar.ts b/packages/boilerplate/theme/tests/e2e/pages/components/cart-sidebar.ts index b9477eaef3..b9dfbe4ae8 100644 --- a/packages/boilerplate/theme/tests/e2e/pages/components/cart-sidebar.ts +++ b/packages/boilerplate/theme/tests/e2e/pages/components/cart-sidebar.ts @@ -1,8 +1,6 @@ -import { el } from '../utils/element'; - class Cart { get goToCheckoutButton(): Cypress.Chainable { - return el('go-to-checkout-btn'); + return cy.contains('Go to checkout'); } } diff --git a/packages/boilerplate/theme/tests/e2e/pages/components/header.ts b/packages/boilerplate/theme/tests/e2e/pages/components/header.ts index 8bbea180ea..08f1ae5cf6 100644 --- a/packages/boilerplate/theme/tests/e2e/pages/components/header.ts +++ b/packages/boilerplate/theme/tests/e2e/pages/components/header.ts @@ -2,7 +2,7 @@ import { el } from '../utils/element'; class Header { get cart(): Cypress.Chainable { - return el('app-header-cart'); + return el('header-icons').children().eq(2); } get categories(): Cypress.Chainable { diff --git a/packages/commercetools/theme/components/AppHeader.vue b/packages/commercetools/theme/components/AppHeader.vue index b6fa7725c3..906974492b 100644 --- a/packages/commercetools/theme/components/AppHeader.vue +++ b/packages/commercetools/theme/components/AppHeader.vue @@ -18,9 +18,8 @@ - - diff --git a/packages/core/nuxt-theme-module/theme/pages/MyAccount/MyReviews.vue b/packages/core/nuxt-theme-module/theme/pages/MyAccount/MyReviews.vue deleted file mode 100644 index 092180b9a8..0000000000 --- a/packages/core/nuxt-theme-module/theme/pages/MyAccount/MyReviews.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - From edb7cf8b7460a0164641f065a3bd9d87f6e81b63 Mon Sep 17 00:00:00 2001 From: Alef Barbeli Date: Wed, 13 Oct 2021 04:14:07 -0300 Subject: [PATCH 019/151] feat(theme): updated branding materials (#6441) * feat(theme): updated branding materials * fix(commercetools): added missing files --- packages/boilerplate/theme/static/favicon.ico | Bin 99678 -> 1150 bytes packages/boilerplate/theme/static/icon.png | Bin 163096 -> 4796 bytes .../boilerplate/theme/static/icons/logo.svg | 5 ++++- .../commercetools/theme/static/favicon.ico | Bin 99678 -> 1150 bytes packages/commercetools/theme/static/icon.png | Bin 163096 -> 4796 bytes .../commercetools/theme/static/icons/logo.svg | 5 ++++- 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/boilerplate/theme/static/favicon.ico b/packages/boilerplate/theme/static/favicon.ico index 479229d87b9c2308b41ed8fce34a59b29a3a5653..c10a1829bd906bb97e006ab227779d91c965a423 100644 GIT binary patch literal 1150 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 diff --git a/packages/boilerplate/theme/static/icon.png b/packages/boilerplate/theme/static/icon.png index 197c77ed2cb1cb835b2aa69f784fec6ebe1a67bb..b19a9681932b25fda20d865b43115fd7b3ddf1da 100644 GIT binary patch literal 4796 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 literal 163096 zcmX_m1yEeUvgqP&L4r#N7TgyWcXxM!ySqbh*Wex`KyV1|E{nUnyW9TUcmI1;eQM5} z>S>#vK2zNtsiYu@hD?YI007XWrNmSK0O)_O&;UgEf5V;U+{?cK$x%w%1pq+7{?7vi z$jrw7_YulPMN$OtXOj5%-vrh|SY8+asEtQ?Gll~|`&LPd39ETRoxLm9naReHL@=(& z$-E`bS74dmA!ZT>X;EUz69ziNn`XVJ)+uBhtD4VXmSIJ((`McSqFyX_OMySqj!R?J zy{4VO?f@I8C7K;|kFLMtz>kgC`ep|YATc^a_x9_WjVCT0I&S= z^Q(G+tG@a6Kai(f8-U>hc?|fdfA9J@-+bGIkQkUThG~x61UxxF6d}l$4>axB9~JGR z|G-d!^|d+R<8~9G33+h%$b(>2f7!F`kyGC_|x zb%PAJa{l-)&w%HBO2ntlx7&bM?tque>u>QlVR`Mo{I`&s|3f(*=zP2IfIuJ!22^8; zWPrDebB}=D|H@GDw*R?V(BJmu>fg#)1b|^t?>~|E)&B=dX&s*4$^JuA6#?)c#ZLo* z7KtGLdYyk5{*T)JGv5ubz6m-2t{$J>=>h+h^4SU|aI?bz z;QPPw{r$H%aQFQGSfu<%QKKht+1s_?+p%HyCPen{dwsJJzexIHJmkIAZ`P`#D`0N* z{_V6r{#6k2o(Fke1Vh+XT!o*?U0Roa44gl;ybfiRbllI+=uYT6m2ycu9`c@sV9nj` zQFs=8aMt#$%rg<>zh-sP`^~k#iP{^ytsZZ2+xk}A32cf|di6ZU7o5MI_$$6klwX|h z%9e@j@>E$Hrs%!=NbqX6T*ITG<%_sWUGiiaXlr#H$oKNA^62`>AqYP0*{q(9S#BDv z5nU;7&^oGgBrO(jIR=UJ(G_i=GWH=nGUv_z*$m#uFwv% zK5+^Q2&1)|5n?wX*;@Q+y$RVlR{_%`nrxt{oh=h3i#9H_Pm8XlA8~pixRoJW%icxc z{D(r8qyQ+20;=n_9)rY7@NpWWxpsU#Cf2kZ*xW#J-)SV$c<%mMHRG0hJw9&#g2TOT zFT*u}ix3v2ACFE3Z*^@8A9L8Uq<8al*(vZZhGYeN1iX4Yf%ARA-fuNGLy!wa$XP`t zWYaL??Z$}=<<#)=FjM?*-T+jQaf6ftJVLTY2b0>y_ptatLM>hkAxEW^SDDTgBw;yX z_DbYG6S8@%g|NaUoP_WDP%g-6;<>g_d&MEmT52p?w+7PkXKxibUAZHpm(4 z33jjE)RjASXX$d8f-33crA5WfR{sTL6NrztSV2v?u11Bod|D@4d~ps)WCZo*GX6zj zk%;;h$z_g56V>)T_TgZrq;2M7zUeHW2*#~@*C2*_UMv(gefd(m79;<#qlcTLR{@ zJM=Pi?#=QE-$kc$=;Y|-p7Kx40*!;w-CAvnN1GF+hL2T?$FcaATE-$UMd^swRzj5$ zk|!~How753_F=Q2Qb)i8&>wQm0d*~m7Pts%$29W8eP%EpdVi6eqBBr)Oml+sH% z&&GWMdc712f*+<~B#&NK=SQD;APZG{3hZ1$#Jr6oXIf+S_wFD{k4MZgAdKkO%`->C zf-HfvRI}gIapOxZFcTll!I{@6SmhUM6Q25$A2GYpjM0JGO*y{P*fIPV+z4k@&0ZKW zwue!EwBu0%B9BCX{ETU@fQjh%15!?me)%lq`Hp%>Jx@pOb64|YzzugE58_h_Gn7C7 zDda{yH{kXD=BG+TktNg*?b(zI?G_v`kjjrIrx0(Srvv0jBWNY*);`k~9(wkn)U9L- zoWhw##6O#I!{%lp{w2J0Y}23K5XMHRog2}r!op5z^2SR1JYd>yBRx0&}Bl9uWh+G?==kZNl(5K1PQ&!{4gsx_HXWKiq? zjoA7Amd>~KoBZ<2cQy@wVtNpHfIaoxQgJ`Wjzg%OQ8_h<9VAH!*8EbRDVp{E?q`@> zmy4f#ubv}_v9ZGXd}LBG$*1L}2&yB!BX+3tmTM9*b*WOT^76hJK?_^TIgLN}vXPbb z|2e2=)xxcdun<^_&~5Bt6jRB`!X8^CmNPH#;^;0^gMiG%0vs9VK>b&+hl5Hq}_KsvW8B5mKuWPsn-luhK3U&MEEn69YX}&F%ukTMgJ>~ z5Is~H3`vh`ChvjO(>pM13`fTx&yS1@-agA@k6(wgNco1cBcfZUaE9?ja2<(lX-ha( z)v5kAQV-y^eOXM+Cb2ZEPEeeyEdoC`aWTcDxa_=^p%_cjT*`UHxjaj#d~7i@u2^jD zEq8m1!rs&ebGWm}fsbzA9KSMp8>i1wEa!4+&Cc`u%Jt*ru*V$=JG)%DBj7wGdlCL* zixv{c*=CP6F$k>9)qH4TcxDQ%o~?1mnBJWVa7Z2jumvMG-KzDBa@<_k5OeQ&GG!$o znoHts7fRFOYnegL;vspE+q^63u~HPk$J6G!;m6bcZnOtK6`ac-5HcRsWOdd{_CeE1 z41V}$l0R+D((vPsoe8|(g;6))@e8xd5-HOt-POkGOx`}UolemH9- z{9;V>4B1Urk_kgA z34E3rleBA;BITxFNp?1y>l#G=(N==h2A6~)hZ=A;vrPyKz^)_!MtM&BaQ8wt%^wEi zo~5W=oqV!YjS|UVg z5&h;pen3!}UA7{5j>x~rAD(iJ>XV{sW00|-G4wz-m~~8fBo<5k^9!|hJYCH@WynId z&uJYzp{B{qEFL+|2&?a!kIilsT7KFYB10mse5aS>cxWSIO$8T2PX)ZL@hO+7xSu{N z=p-TAIW69N>ua~YbM4&R<_NqDA?C;t{8`N7M|X|k)xTR8*)`HwDKda`^OpPd%Wu&^ zyTb|svQX7fvhsICe4u_vtM!!{{OaTHN-cW4p(R@qSRA4-UR_N;FdLvqX^TnZwr5e13c21Q4i7!uViDU+T2Av3d12No4;Wb{O z0PICFdb~we@@S*`9SP&>+Qvj{yTj-@HpY-w1U<`VvO+B|GS4r2P>7d#%stRkCe$vN z8h&6ToVIUU``XK%-RET15zI#O4u&W zid{DARzQs7y;It$(|4FCbL(o#$v?n?RGTI3W!A}>+Wouk>r)QLB6+|=K&+ycfI8qx zT@6xqp5C;U#pi#QoP*4d#t;S3U9{1+n`*P%=+S`jgLh#G^Cn)9 z+rqA(XE0sua*`;$SR?MfTyPs5q1a&u701GpKLYxV7D=Q3unm90UK~1V^KrHLX5e{0 z?$6>!24YX+99#7sn%ouHNO*S+muUN~b6FPz1CIUEMA2*a$#kr*O1+Kn*0OjpTNA;= zPvKW{IgPO_`b2uaufo>oP8ET!i|RZlk4JHp!(JbHi((xLqcL|o<hd}p9&k0`M>qKCrsUC$&QRA5jZ|lWho`;vIZSc_Xtfkdu}x?LN4Qf!jYMH zce;LzS@6L>sX=vX2EA|Z?oRag=L*N-sMMf*o2i-XYEnIc=f+t>$XibEh+ktW(%m>l zDp_F(^!$B1$R5Xh3LB^Owx3s)Nx0yf=^jLdmjUxo?AQxL&9f(jx9I zyp600*UT@%&a88h1db1VLmYnROY_<8v!m;w8_M)837(nj7Nde>Jw+rKpjJ z*LL1kpBW%`^y2W*>=SI)cY-=Mr;2dZPjd{kh47%e#6oI`VhM{eoOpz}{ zzWmz}%kfS?q*UQALV||@46286L6J+mFn_81SRhR>rst??RiD}~)v7>>uHCbW=hm`a z`iEWg!CNKm_ zU0|kpuM*YaGVkIN?A!Dc&}He}fqJC}EL~_p98_um1&U;z$;|l-@PmG=g_0J<IHqL@KAp{w zSfK$U6*+!q+cb1EUC7Vq1lmo52eV|u-J@FCFVeNq2SoH zmuD3Om;XxNakxlY-`~(l*vrNprs7JZ1Gx&2Zc+C52FPee37j0UveHq_E};Hd?40)! zXdAsWfa;#zxo`VmHWR$)GH5Ph}I?*|&EQFgo)tRlz-LtsqGnF0CB?*Jt8 zW+w?6g#f3e{0ZhX#3Mz=MH21^gxHO-vi&32I|5%XlqWguZT%6vd576lMFmO@DE=Z1 z`tRJ}uAUIAQ5p>|-m*#Em(E+O>>WaPqY%x`v1^x{GL+jUE4f45{Yg^Z1sKus5fGLO z#TmYDYrOVV2J7tp7Awo%iO$EDxoiiElAuNIUPT*D+@aBT}h#-^HzyuPrG%|W^Yg;hSGiA8K17x1KS@D}&$MqlTUN{G%rdRUcXIUsl zzp9OwvDJ|V41#DAb_R37J$3LpO-RMJ(h0X^YK`WG|x)QTpPTgghsR5q>SOO+3odcxhTk<{S0zxN4npj zk^X}J#-KXine|&NWmN<@mrRI-sc)iK2rOTF+{DBOY5&`Tb22o*qz-A!%^8YL)=op! zU9kA!t?)ic-XGsgz*c;~W9iTZWFl<&2SkHPqoL&J;&i_)1Y8uCjP=C&;;LELPS2wJ z=j+ebZqVaaJwud`8g&u;>k}}>w81~+wj22bwQF)OdJ%u^GcgZbCth z*Wbm48kk5CllipfIM<6JNzN^Ohe&&V*~zbqE1)7we#UZinmT{u{9D5q!5BZ_M)r`` zByEBs!MOPO^3p7$_%efzg$--gYD($Zq55z>;!_5~eu&4^-6Yz)ddHYTfa-n)nyX}d z8Uf#|S;V#n9`frQ`{W}}8^N6{GpiCNGzvCV2)u;}8@(g{d+@)%g(Cb`Kq&K1X9K4> zC;x)Jm|Jy%NA$R2#u@2f?Pdag1HCk$ESV^iRlcHB;#y&f47=}>IrbY}fT zOF#fWOt#9{SB_0#i2TKQBIfHCgR+r_tAmQWB!bKYQBH#BzUGDS+$+8js|Y`KfU%1} z?BY;;bAxmvWQUo@gF!)Qc)pQ9I*5%5ORt}EbmY_Oy9(7vo0pX)D!jta^Q_j#5A3Z@!nHTTR#Urv zz|*1fi34Nxr4cLF5PExyHq^EX6BW#0ykY*UlEQk<^z9ZW z&F&9WLf7uGi0=k5V11-z3hrU4Bz-`(S(yN4Q8g;u4R0x~!v0leIgkBbt{(xp49Ce+ zHA376?Ng}3ii%TMF`M7r}s}!ujmf#l|AZ?0PdoQV;DZ;P)k@n_hku!w zmbuc4o!IP7Fl$`y+@M(;cMhnEbva;%{?YE!SRiOLLiL+o;7ce8$)>P#4ne#}HvG8#Q)U6{jWkn383v}k1{X1 zT1mVu|Mhr0{2Qi(f;;pp=)@D~xMTf&i(9F_mXp-v@G>ZL?+l%Mp(QyoxohydY#w_< z3Lr!##|@V>Er{iTgi}8AD{f0ub}p76>(Ey!15P#$)<16H{dBwu#=@(>fbRm#{Tx!f zFM(3f$Iu5qhTs@B@QBkhU{;|RT3+G1-Cw#&ibHP1k3+ysvLMtXY>$K$r2rhmhQacF zks3GO9W_NNzuZ8r^>u;;rHcASt0q?JnH2>%+;wy9XC?TrO*KsXwmm`*0en?w=<>F? z+L2G>7RO9uLt4qUBBvs2syYpiwz6sLR4+`3K@Nu42NOntU15@1{%4y69%)6TOw|oH|auO)h7rSrrqw`T}%-MGH#mn_gL%gIhQf2}u6&4EjBcqdt8bF!M z&A);&$xKV%YPRl*v)Pq@&>xAp$nWkr72uPaM9s4dSz0IDtPX3MLa_PsG5-F&VGvJaHh@>q#h16+p;oFx{BRcut(T)I9Cd355vZn7~H z`G1k&SgdT0yxH-^w_1I8Gl3t#lU)ZQz=KNG`R{^Ep+Facc)J9*lx$zMeaA|Jyfgkl zMQlKOhhl>nX2T3{Ss6M?m+U;d3a-+V1ktRXP6U#Jg%*o8sGn>$bo=SZ;q!{Ab)>ZaPX?E3aiN%6e+n805>-y%v2y(kf7eb77GVa&Yd56<|d ze@TZzhjcDjDACxgXXxG#+!a#0%DUHt|ICN{y&++sY7K{mEA0o$LhlR`xPMpn4f(ml z7+jK|dc|FbBI(!(<;Ly{WyZivG>RSr7#~bYF|Vt_=Di5igp~~i^rX*&|jGL`WoIXA^Ma{RNt&zp%Zls*a5UO^4fdKD; zYaM-gRh-~h>QRDDd9tOJTl`FM^)=I155gkQNB5%2b>TXDh!cnP4(-~@bnmh2ua~09 z6!!u3MIxP*P2bUN7eCyqTVkko!}3H|YblFrD41M1Fm=E7W7HLT{*C16R|Qm=Y)BJ(9_iY$E&LaKH!*7_Z&LofFIvFYonz~ShZcN z-kO9UBa{_qGuMu~9^|O1lNB6!i#R#SHputSWvD&Wq}Ee}FgX-Hu}ioD-oszhlH-lK zjJdq?5$VOLSgplY;AG6f6tz65?LJtCv^2^?R>Y`KM_9WU4{TV?>?X}7>M%- zT+11}*z`p#PHEbMzKfaO_acd!>Y~L4$9JxRpM%}H3|eOc0}st&x%wkd&C8!gV}II^ z`Ad?s{2k+9Bd21l!{|y5V10`7Xukg0w)T=3+VP&OcrX8-v+NsN=Wl$D{914FYhO)B zM%6+bF%MecNU%mv%gAKyc(%W%1}dW9iFNKwojKSONbvX;A{giFEzvK|6K!Xjaxu`7 z<37YEG<~Xku`;2!lUA zvrNyLE0l$GnZSxmfsK()ZZ6Nf+Sf)?6bW6<*zNBwPN`HTuyvZ6QS^Cl3xj~A%xr&J z8o$a3Bi%?zgWrz4+@0hkIvHe7FK|@viux6$+IJNAtBy%dVy!3sxgpiiiIe^m{!vV4gns8 zRFvK`7j=BmPrNG41;dTrQTZaFj-IxhoV+g#l`yI?;^P^PAR@?U7>kNN^Y1km+(`*Ub#txLxBVK;x)Lm78M zv%}aOp3Ab6LQK*WwA?tjVAVA_syvF5R0O>Vzf9iRTa~6*AC4~QgQrg5=ag#_y)pc% zOAZJhs>Rea%-Ami&t@XoOZ|m)q5X?Ipq**mZX)GzeDO#4>f1l-Q2zA4MCF1Il#84dFH3QZjO3{R;au%!G_fz%)PZ=_lM~WY!7E+7-qr*r+DhBH7j_so z;I`V1pI~l1&+y~D;vO6f`E}sA?K8N%Tzq?IzU9%tbO#{P3J+qWb4kfpfKJhdRchFX ztg*9E3_p0~J4|ZvVZ=KX@J-8_*E%rt&Wd(I0EjB?gC<`RhtL*Sw(cI;jR=#4q&c$5 z38RR$QQ$PwqTq3;l5ZJ8phjn=TJxQfI~Uz9j$`O!$V_zH6qfhmdLjn7nCgX)OM-M9 zhPIUR&USq-y;C0_%_h>)G~N)^XJu2RE9sg+&Wb$Vbo!NOK5UXad}3MoMGW88vp&i2 z(yTunkS(w$*rV-;I{z}i3tl`jjH}CLpAcM0FYytrDOB{Dur$1e79_uT`j7fR&gu_yR1zqUukk$ zDf}QwB8bQb2xJRPaSoaB(U3nnB9hM)vF;+>&ep>cbBG-Xd-8Z6E$!bHjg}$;1pIk= zn^tcCzfYMU`zBC_2!LOSELT5bzg;Kh!Y$w$D>9gcNQJU`E3C$G!T@pdR=TG&DM%Zh%6jbE3>ld-iQ#CNYRtnqp)O(wjFFCTe51`tc?Xp zvp5o?L~gBdvv8vtc{TNs35R`VekDHqxRHNa_JuX~ZaPv6zgTY6gAzWo&++?!S`+caY6FC@XyW{? zikk56kWz**(9W}!A?e8a`_PvjV&;OqirLQZ;rm&Dv&!s0U|i6tT!5(Tw(5C53bq{d zCszFv7)&m2&OKC}wR-vI?~uwSVlC4@Ge98Ji&M~wppKAGUEm4t1%`@`St3nasu9POkzdOSht-7IV?@o9Mkn(1qgkX_ zGQB|FQZTGNp3&iIm(XjNglv+1CuQ{c&VDtt3SH*<%VY1!hU)eSoSL`VDLr6IZs2Is z0#ww_aIB#k2%p?cBw`+K1CM z*XasC;$MrwK}b9Xr@NSntlR!6BTL-_bqd$D?q{8&oT^Wgs_dCo><#jaBMb{MKRTcT zt9&D)C&sH^keu65Y-M*_;&A3;hw+WaD;>qe@vzI)gt=pWeRn`(GfKg`m2uOE8ot@+ zujTHGXGLrT!r|=_d+Hx(L4GlGgrJ18&x6YYdSe!CXFdBO5j=G|r0~&c%5z>r3XGKL zn=thVIuw-<^#<+PVkb1$HsdYewDdHWaeV9f>}GPFq$PPCnao5)zuy1L`bS{Z6qyH= zAx}Tq(i=4Ndr6cwIri7nZ*wVKPqbOtMQdoj{cUhLUkDzQq3)lSfJ35=GVkYJlUp-UE_p*BP!2R#ic~kf9cVsbO}F=!^~N zM^N`JH$&dxBS0wiv54jA_98v?X8OYQ?sR4}XxoV3+&}pt4O((Xm%yPw19(^?{y85v zZkDWMHb%e4>8n+OK4d&XPyim_$!(x+75O6^Jr3gI&GI9;(VZV^j+|(Xx=JTn6r>!t za@{eDqRrULyc`v)iV3q#Z;E&K$8cJ2TxKwEZy9YSce&s=eVXE5EUt$g4i=0|)4OG2 z_@F?T^(cV32ETlcHo)zRGagD7xPg2N@l2%KSkaj-s4}g{dK%3A$b&^3n7!qbS_kl8u=e zB{~lu*|EmwVEe0|Ft;?dHpEiG*QrjCWf99xy7%+5 z^Fc$+gfF!NT|-XI;#CEZ|yk~9^vNxPcNcI^%A%QAgFN(kxFCjvClz^H|NNVM5 zQJip|QBm+WX3ApzvF9Om3nl;`O5$J3&r~)5`7W{-6>XhE;48PYqr!a;aUmJVLx#-s zN0f@YvgK(QX_&ew&K4{V=P!i_9)-c~%>GOvNwc#$xh+ z+KE9`s^(0SOIUn?-8mk(bU!At>M1dOXPOr5Ke3oS3XW{d;QJ<=z0A1cJiO7EVas#< zL8<*$yBZ&`xyBcxzSogTJ}mSS5>ele=|He0_^}!<4h3@gRRiEVhUy-S&#Z?*;}iN(7G=ftWDB@lmQ-SXH-&awe2thwiW*D|!GdTwrUs>Gy2B{6;X#3+ zjog{uoE2GZP0)|pDEh9fradkg;CZo^v;)*!PTB~`ME|wa@(~d++PXW6e5Y|Rnjbv9 zRzKVeayqJI+^U)dN44c;@jfz_64I*hs+&l`SyA2OKH(< zcba!tztr0ZscM`aIy}}#AWRVN4k1ISpJl_;!U0Fh1#+;(l5=3oGw|`7{Nh&ky};=< zyOb4r>Uk85Dd%l3c@OtW;utHUxPJC1v+^8I*Hv&~{q+*~{M9~>TWf6)5r)$9Z?Oek|w5#*yH^%OTxASM=;7YqDn3lt$#U?!DH)W}EDti{XeLkR;<7YGnI+ zcPSQf?1Nt|{6(W_37frSR3GvZY0p4njqlW{=W^gSPElkTo=cQgKJS^0u11hXLlIhR z2ynd+wcjS6G3qGeoi5lS55Z-H_3s%By#`=T`UeK#^5R}TDx6!zAl*2u#hyIshZML< z#gqOvjN2U37>c!ej7-0De7TN`WEUxg3AS~s_RokM<*c2flTwo5lgQbGg|S8KL*h9w zjRk=5dN@q5?Jgd53mU0OWCW7U3RR~AK5HlK_#9e{xSzu~**2W0Wm76ma53E_qeWMz zc8=-XwlNnRX6IzFMP5iWt|JwC2CkG7OV`ymWgt}uAxD-fGZTf2nq&q{gYnUr;@aXg zPF0~{Px|V#LfXUPeZfzv=M{=^+hXC12S?w{f>S3clJZ6`^9%_9beA7v@Qjs%dUWaT zZlgF8tPOYRi{GP(=n>MidJffo)H}H#$_fcZBu;0JkwL)P1yClCe1iUD0AQQB zGY*s(giDx1Oo%tEW1ei35DJi76zX-uv{}Wz5MWI1D#BwN%8kvl0g4`NgeIvp{ zkTTohuhMI*qT!uvg1Y_p?Wx8$vz^7FSaxr#VEw(MZLP#$VR4(SrZ`7@AVWY4HQJiE z@mObCTP@ln=?3s^tPWB*x>6OVm_r7*`@Fyv>2P@CBOxRoQcpgv$n!{8d6ZcHK*&su zX>p&;v(Ed~4B1+b3{jF*g^q;X}xwSW4Pg_lF<@{`%sMGsDrT zw~`MC=N(Fn-gs)rD*@F42}Xld{RX=PbceCDK&W}Bzlb~JX+)w(!ieMA=o`P4CQow| zHL!g^$2%TOcNz5#f3NFc#b1E+>qZ6Tt*BGGi@FC zoWFL|u7zY^IhH$E#K)$!#yg@12O024X?B$M;vBFZ-68J~1KKaC8p`{F(1;7(Al#{Q z*Vgf}vF}5x%w|X?pm`sN<}m8cLItjm>Bs7UzDE`B5|~$Z z@2loCWIrp}VhXhBa?;-#IXBzXMe)}(t=&J7v#y5fsMlh(W!Rk}ZO zZBbX^1kM0FaziOeI!m&PyEU7{6~@+OqUFWXn@p{U+2$`fB+g6R@XSH+UjKT8w)m}L zjgW9ox8&2`N&-f{)%GB7?LK3vCj95_WQnH;vGfve zVj@DEut6V>{G{7&)bht{Rw0P9qTAZt1yg8~(n?;W7OvFzgBKG8RkrE)tqp=4u99xW zOl|cK*(|(6TCN98jw}@S;?=h{+>5InFJ2+QXU|;!i^^ohkEAAtWEB3QG^pRpi2}xU z8zd7!jQA83x5KXDFBT!9;|RY4ZoQQY1^D&*%4O;Ktqm1a-q*$EYu`DSEc*pl)v|y(%b;zBm{oF z`Z(-^qd##&0~UF-F!1n6IoZrVnpA?|2#SiA2x-HMn$5|vN^Ez5=G|Lv#Z%ZL-zyNL zV+Sum-wYgN59h1a79MoBDYL4;8Rfu0c&Gsgrza--rUr~=xI9SrSfo2CbpucZQ}8oc zZfMf=JAa>Y9n@Zbs0SYj15v>E+81}~ZL^H}e>B3B9k6=`IcqXZ&{ zp-oZNpBBgAxIp=Spi%m^M-~CzM9#V0C7JA0&MBfLJGN=1^|78$iMqIvwCZ2?hRz?- z7nDm-VZF4<^-ToopHn`9&DRyi?>a`($fYWsxY`E3hnZA6lzLp+6 z^h5ycv$U=2!@tJ4N*WlASoH0GMFA_#H)8Lf;)9jjTyz0nEMJqLdGi#6#tDMONI9}Q z(|;=#b@CBO(g{wY$o5OtZrNo!?@)j^A`Qt;_Csia6x7U;Vhy|(_!JeTlvaH?UTpSy zyWU8AN~%r@dsM=P0(+^*1zDd6&@1Bey|s!~R%l$spH4yVamq0w9iA@j(uYZ@zh9~aTIq*1~cw;tgNM4O2Z!dhM&VRa{B9?H{>M*X91P8H%@ z$Es5u9hm=k=@FEJE9Tnv+iSrMsSx2CtER$w_$}BdSi|><#=O@hbC71JVrq*T20hHT z$blL$%}dy%*+KaZ&$n zVrhAt6*}+h@7A=umRHvERj8QH%NfiyB9t9ycsj>NEX48)V|vT7H{XdRY=yb&R8y<0 zHjlo`@<+rMVPla;kdFQpAEYIBOj3^+63+V)?0uZF-$!@YUC4%poNGlL+lETs#1+IZ zj6vSsS2Fq2R<1N>H+|j*W%>_T^1wFCiBE{{&ITP_q7A<*HqnmV*U{EJ>`fKbRYWjC=C8vNBpq@U#XZj~xiFx$n zFQk^IhGRGl_Ub_i3Vi~;4o;>sux`|Jo!AA^J&SexY+MMp3RJMLC}jdSpbzU?Ti|SS zog#J`Efvg8_QMEO@*{oF2k$rNaG+u$5qB;8XjrFcGZlO@{Nf^4G7Zf{bnn;H>r?sD zA#iKggLe(j=i%!0Wq{0E8P9jdyw9O0^=>!PgLh*p6qm(gOia+sHNx3Q$mS=yEWfNp zTud#@eG^_Tx)0T&#-r2gMHTb4=YgsuYro`V#YtFvA@`^8BU8|=wsZOxoP!?fdQVruWlam?1A*XG=X_|4` zL|mMZUK$HxLs_F}W8URnh_!5-E-?Q=jjjIEsS^1}6~n?X8MlN;$%yv!mQV@W(>3^% zB+y_qh!%dPR_HW;v370cU}85rx>h-5P?(4u{Q5VRy!eDK$Gl|U3jr?Kkm~Je5lY?? zDrr!LkE*Ykp3E3YXJT82(TI{NQY)*~5AY_{S`HLlP%@*EkHz>h?i?mMdH3#8)y6x?w^2Ge2KTabu5fesbIJiMF1VW=s zuO~gnvm9}@MJ8q)u+T#*mAZN)v&)Y98%H```{_1!6qv)P1hd$=tl3RFk`2{#!*fzr zR2t5T*Tpf%*9l1(3^u$tzgztohR)A9nr42SsmqqlMBX>)XA8;`KUaCm;wGA0c>XyCO za(|QuF#*;L=t@6~rhnXak%?e4Va673q0mmb{qtWJtR8ctc~A+3E=++xUr!9%5^)cL zB`BlXZ#VgXLxvqM4XOS@1pLbIj*Ha6mfgo5G6rt3o4}pbMS6DXG^oKDPIS8%u<|#eMD6J|k3LYT z4{4Eg>B5-PhhQdC)V0pLF(h3-&887+M{P)Wn7g3~98=em-(|-u-VU@CpSR4Cd5Xmm z#x$4s9^+f!@tM1HqdZ1QclXc2wP~pY^_`f~Pj!qj0pFYXlL6bPnV!%0U61iN3(DIm zhGh+^fm6HN)%*YHd}Drs-5){#JhT}e^d<^k8Y~GVZkRZH>+HE%qAy&_k6xkZM*P(A zWlrg35L}SOAXYq<5g6S&&|*~A7I$#Q2TTB%34f_E5^AJw-ou3U4E*ita?sb(uh*`U zLVfOZM8t;O15#L?1{GXnv|&}iS5DS}t8g(eACbsEV%+JQ0m!beu!OY8g0w6MexrOm zQUo`y(-;kBG9zh&mhGu)a?l7eW8<|iU-1))HkHr`JSlM7K@$D#euRz8j~TnQFyMnj zZ8VFir7=PjCJ^L^)J@_{?9s7?#}C6lQ-Nfe=CQ{d3Mi zF`@sx%X1k9a*##yxyy0P%6OAs{h$Id?NA&iZCQ}Bs(5+^K^Wy*?*86Gy(Kw?+f8{p z8}k~|fl&kHa4kDNt-(eo>8e!VQ{-qo2B5P<6ngU<5iAze=tK*RIr*MwBwW(kJsQKI zK{-@~XC4KOAP1c2!?L`>y7vlGv?GA@Wy`PC2dOhd(c|b_pbA0tOz!;-XmGucIMa+7 zJe{P<&UsC@8RiTcTW+CW8RpS{Ku|PK$&e_C6cMiT4T`roGdl1xg~Dm&t3uURw}XOM z3|RfCvx}}>kz1OsD?GrPJkhS108hUn=x63#^(hnv?O!paHF10%N*m>h-)`!sZ{Yn2 z9z$X5XW+q6^GBP>cVF zd-uVM_;qvH-<%gD;1i)I9zT;Cb>dZk#xUW}|9B^mbHolWg1(Yqw4}mf-q(y&VNN!y z*E)yXJ`L!C&UH-k$U z{sF{fl-)bjY_IP`41;|=KjK;%K6A`n6a2NZE}&19Fniy7W;7To&%{{Uh@oxk`ilu`$yz`wVz@0Q!(rAe&?)7^HQ#&hRU>Y8`LTW}uu}4LD|IkJtOGg*TqVbvYRz_=N$^r z(_q$_07RiNR<(O1m5A{BYa$8NjyDG(I17M*MQ@ zXPnw>r)LB$>N2ol1RuqCn^Tk58o-fTU%||4trL)AZq4pO|HlxA=UDO+RHQP8ti7fz zPO(pybUVZ$Go|)<90sD#PE+{r5`nbynq|&&NZVug`v%^&c;nw%X9qjq`l)ByK7+E{ zh$umJ_(TQjgo{?ph69StW-=foXRUTwSh$&7@MaAP^BKI!jikP`U(K3mh2X=Hb0a&i zm~$p{noQAer5oUOaR*ECWb1ft<-z zMBEhpharrh0PJ^cOofXEPc^@sEg4hFWpVa34|Q5X&2FwoaeS-zm@Kd&O32__pumqh z8J>5p9id2i152k-?V-+5_-9&7la2?(=t_rca=_xYa0{^IwY9ysVZur>+PBs}f{acZ zDi*S7Gr9+>IqeOd916&>@TPz-$;p=V1XYqwmt4(=>8rv359ebA3|ZNhvXj)d}Y`S$+jPx0%3KSKuK%j3h<2FHq1@s3HMG$U`?NrasJ#$a^0m| zDRblT(ix-b!~xRE#-yx|Y0}qweX0scCxg`9r_al)E_FS4x$As=eO)56g-=U|&W>2R-qgo49yaL(wskvQ_=^ovhG4#r!y!^X$A8Ge2@_odj~K_B zd^zjT`OM62^wEXF7Ct=wxKG1J$$rR!JE^r9^Xm5YDSjRBkADZi{mbJsZ)w?0KC<$m zCgB6vA+cX@H+Hm%C+@nLGj+JJR2S~m&NrdY>fF}ID^)3bsqUlgw7Rap#`N#`(ViT=5+Z_b2v%kCRXb(Em2 z*>D~#fv8dI-}UcSYJT&cK-CBnKv-@`)0B%|l3Vvz2B4Q?$^u!O zI*$KceO?-PqyXJ`p#x~jf#)LFaUuoqdZ^@3chYu{(w(VerN#j_(MPnp&fTD7UAex zH8TS90~V<$jFAVd@;Cp55r8o7C`Q3o8ACcwj}#gzb6^a_xK#6?P2cqgggE= z5wHaN>eoyAu71!q9Z$3{*WIgMtbf~)f_DD20i9E0y4*JE&*zwd)A1iIUx+rHpKns+ zOqC5bWErri1fxbe8c2+GYfXWL)?UuD;*QVwLE~&^_hlIdBino)*r)>!THSf;I5ieu zGM(YPnKx_!4F?cyp-5+fuNWi5@bMKt>w3iW`ywu8)BDlFeu`fQ{9`i!@AxGZ6|M>x z&iZmZ`6yCbA0@Cv7TAG`K(D?ZI%Eud#&|ZBgwJyLn+FCu9&kTrQborA$jdJ0(@ERH zsKSXGD?N0-Uzvbj=*S`eRT#O%7IQ6)w*#mqyQ;&>LEL`s$Nc5G@EV-~PRCEmuXbu{(^xqLjPop#kX zf)H1Ske_AW#14(&qYtF7(v+GEV%pI~-`S@PngmW!mzm47f2;PWW!B6a;TmCa$(5aP zFLe;=T_=YGYA!h*C;$QL%N|fLKUXWQsSTHoEONWrS(iT_jf|kl+xUWAXajzZKM3?= z1Aw>dk0OLn^X=WEBeW~cO>0j(g+5t>g-FfAojl^zLf(!gXAD|2R>a6IaCGR@CXizq zus247ky6Q^(|7b09F$?@EIs-N^vO`kpVu6&`7FF;$_=^O;^i zebBNF?QL4VKOxEFJ*Q)fL9NmLzp}8?4j^Pga_`USbY_@mqjt3Gd`LLP7Fw)_1h^6$ z9NGh+Sf9AP(}ddd(48^GlFRV#C=1}7emJ=B@)g@y%Gvs2S@1x^qWboBDW+o=eYwP> zvn^Q~=@r`$TQ#6Gl->ODERC(1klHO5-HKTj8?kng&J(E2B|BCl0w#7G+1A8K=r=1& zf~L~1*mUJwnjUN2ay(!?NT@MVMn3xmPI4ANvEWGX%$tu9K*0-d#2D9Qyu?yZ`4oLf z03k;Q2vcyL+A9FS-{Tif$v-~J)~`bHH&XP#mPa4)o#oU+9X^79Fl3@uLY%f6fwy?U+bIF^(|`%jjk%&#&cU8ipQJ2+vk80rGCOJ{iv{ zK!}Y_Z!cpL#+JiFD>i+1(ySvUeRm)dC zYq5*39LHVYhUO!LKEodb`mq7P@2(?&)JIo8C5t8cRPO|^df+%=`AdHWa%NVJ+e(Fm z2H4;n8ZEkv#Y!GVlzbnm1&$}2XlX2kr2f)b_1~l0fZB2r5rvn+Q$vcZM7A{fs7@tj zUuehlW7o!QnvINm&^j#7AF}gr^hfVQ*KmBRSiiEyo7cJZO|uwG85mI(O5ULNK3Hby zF^p&lL(4r4QwxF)kgR(c&N;>wLTY$jA!Jb2#y)kUdDt*&af2+>0hm^#z;p#oB~B6% z984((RnE+EinghkuoSjsQPBo3w#l&=z%TJ#tu0wYyVBjJ7J~*G+OzXZ_D?#&>3(tM z<;}su=gjAo*-7u2s!=ZrRvX^A_Z>M%4xy7Vn(*(6bCm^E+h!VCN1A!?Jr-i)hjr#H zbOyM^DbpRtil2G!v!5MIuJ-@whi3tPXaMka@Gl>qZa~ije3awN*+#rO-NZ4A1|VZ9 zWscAI`e1i(*YjE+K9=xiojt|G@qR{(#)?e)bkSP_#8_0R`MyWFe9Fk#2zCz4N6EBg z8x>_VCXUe1l>UkgQdUuKWIPM&->OW061O&b)Z6R{bld{P(>@Xqdk3&l0Ji0O(Gi)A&sHQ5C#L6W#!2 zV|>j7yytcK6!stPcP5ng4tW^;-@P`ISD5zpa|Zw(=O7WCe!Vop(8qc`HijO%dMiV_ zteYd&z>nGhP*ewYR21E&&Q!{5q=2kaYMyvZ;EpontUEx(sr&6*yvz$tu`6As#$Y*y z6F|E%Q*^xgBwHcBvkMy60QnqW(Ttt2-_)N9p|^H|g0uN^;P5BU&6zKDaLkJdU)2Dm zJTAWIJWBK^dg336E?mdSCRWc*AJ2Md-yB=lu!itfVZ?(~_daKI8E$A+x>Zy-L*>K| z^M1x@flY~djw`E44*bG}^V~pg_F#h*g%NY0M90#RnR({~pm&Fot}Jnm-_~S#{@evl zJ!SqXg-?9ZGHrCd1+`Jf%OmI4+@XZ2|Y^a zo1@s&WHvObo6Vm9r)Mw9{!8g{lf`NsEZi<~%)RCrGq}Po`+^@_ery0>@gf8*uqjT5 z@B<8LqkBX+fD>WioC!-sNLVygyo_Ak=QRZ=a8}AtKy}CxQKQ~RC|#*LjcDuNa{P6j zb4(>9>aI>D9X~0(bI_e0F0;k9U3lC(+a!tC{GXmiR>zLv2(r8vz!!WWhIbX%y zDaXcdtvJ=qQlWqg97+JG;Mj=Qk=p_!j~B zA3pw7tZV@0mzTv!3)7HD;#z$RxeI z9{Mxt$G6OD0AP9R}!O z9Bz8{Z(KXg2Wmp>ZbsHH`7@z=Ep=@Zx-*wu`p{G6DTXlZ)371M>MlF;m=lih=8o0ujKjM+(~*Ddw;JKfxaa z`ZT`@Fl^d7_?|k=2An3%a_#ugTx_c|?MH1cd?`au_tFDA9a ztKm7&d~>V1oC)b=VNT6XD*iD(70(+FcjewgIUE0ge}Bk$Mz!c>cs8f z4<|8d7vJgFSf;3Ft@j#?oZ+$6nnJCJ&G%Gz2j6$~hxElMJAD`>=UlKi?`e&B-ouW; zFAP@y4SyK-y1+*!q>T}6d`J;P9<}~)0cd)ss^uM~zL?R@>GPm%4-~!?gq?Zu#J=DM zmmeAce3jFe+&E#u1Sf^_TN(+hC-8&pEwi#5zJUXZcvMkobQ{+WQS|J5T8ZM5qb(|` zdE67NWx0Jy&E=3*2$nrlo6&a=aOkG?@Ne9fz(YD4E4eo?!fko-==6OfCv*{We7pF# zxNGRopCt|+najKh4Z3&e!O}A!jWBdvgaINU%}#b#Fih)=hS*qp_tkZj4e- zyPuQvyOXmCiF7T^X(Iu^2HzKXuTPK?x1h*3ZyP#`n63}oz3^k#J+>kdI~hPY8rk77|g!K`)^r(>^lJd z@ioA}frt_njBQ*%up+P^vjiNqQ<|@g(ejx_$X%H+u&AD$^wk+$&LIyk1wQ;OfJ zj@bT>HwycnXKkl0^`0wG^6)2=hXVp+r_K(&JLHu^YYuMnW*}z?b>Lp$e2wa*j64R= z`dFJ3kLT^#`7v!@jsul_AcvhnX4sOk5;D`pSK6b|bIvFQJqi-62TTqf2lXxv^Bp&< zBs#AsY%u24`bgZiutBZA9J`*i6CZtvr1)*@InV!tuNfp%R>0+%zROeklXgvO8nm5J z(wC!(41rvoF7e!pZpvIf!$$210?6(jPG)VSKOjtZR+61Cn?hWhKI?YE!lJF+7yRJz zqcZ@HmjFY|miBET#7uAJb!q}2N_088dT0$J`Mc3)!J+V&oE;~dlujdkIVV7n0t%k0I{v5upwPZSS*H$nhXXS{%-tIJWq7AlX7 zLQSatHLbSU?Cw^^`DRN7qfnsmTB&CsN7HDC_)DhY2*$XqG*Myf)Q*lBJ%bNEhmOQJ z=^aXgiwgrG9R#H~a1grI#^C2R=N2PbIF0K*vtPE*<6CzbnoZe6CyzB8SzPM*KIs9# zrfbc~_Zi)3r{B=icT;MJqFojowmI3{-@gfLk=1q#hwNFWjL17nG**1_F`-i*ANGG7 zq8Z&|stxN{3kGsbci2GJ;!}eJb>C?m%t@Fs{O~^s{KEo(#~%U;tR+QaAc*qTb_unCqqkPGV?^lv7$8bH{yYtQa zj11E^62aUJ7rh$8rCC0W33zeTj{)ilR|lA(0-DTtI5{??ytXsLV8#N36Ts07Qjl#b zb#Ke8Ze{bSt`!1^j@|Ecg0@=tO&@AsTjmAFs3-3V^2ya{(D#k*K^aGQFsf&wrXUM; z^wt83WzN1JH1~JDXIXSt=xrQYe10V38HU5;1x`PF+UBt2U^reO8DyH>%YIV!5m33a zdg>FEv}grl^;{`wFHk+ zXs?|_HRdrI7iP1~_m-_sUkhf~ZwB#}qwr;%z>OmuVTx4-x@)iV*g&w1R?A46Z? zg8Px>hXw!%28msUI)l2Jm7|JC6{(cu2N6L-ofn}9SS@Damf-3!1nr56T+0|P5+=H) z4!lE%x6fn@tZ@|z5PA)uEw(EuQaKBF4|sYnlwaBu)9Eag2FW0TnCv$1=u7l&|&$o&T?Isq3VMM!&W?n-45_|Wdle{DrcW0jt`sbV&trC^^m7&H$fw-w9y%S z_Rj35HJM6RrK37hM}bUZI(f^nI*y^7F9%gR9gG(N9W!|6!46mHymNG#iBF8>dY+@a zH$ea8F#~E%Mg{`5UPopi0v5@jCdL6<@Nmf`vPDL2#nYJ!9~(@t5&*KhXaAwajrqU& z;c4*E$>U$Z3CeFGuDi;p|=71(nTUD@Q35K4%TQ&eRS8JSS1WS_?o-q`f-vJm~ zC_y#{+2n2UZ&*XFt#Uf)R1fOQfz1spXr!k6rzhb#pD|cG?2MrPE%_iASREieuj3O@ z*vnC6K+&EJIWoWG*cr5%?rJdRn2So(o%*#gOGixmy6e1Ir$aYSL~nx^4r*vTpG+C1 zYIatlD(0MIo1@I-TFjy6)4J6~n+Qs3gTOylJOi|QE}e4*BifCRo%39#sx-800Ntm0 zb=zr^C;pI5w0PkEat#5`0o@DC6ESzk0V6C7!bvUSu(6`;?smq@|(|MXJREI978-#Ee+XdWJ;?% z2bIRsa-T15Zm9Sx$|~CDJ*e+kTy$yXmNFgXbl`Kh?&&;yVNC-~;)8eQ(c!E|?c9-i zoNj{pu`cD7n1wPN=OHLrETiY7d*sx$9i{c-$yity7SNna!a5Hv!X`Rt z9Hs9R1U&H}^}q#8Xl@wOi!5R%$j+tBkz zN0U=zMPOJrskp;2G1bs}#;&)YGXVH{2Jq$aL3o!A41!gW`b*0X!+P9WQv`sb*iv#1 zBsd#@4)GofTtL%z^Mw&cFEB>NfmhtJJwT2h3Mj0QMzilhKx7XrwUCvme!qdGCfBI! zeE6FJb5}suU8x?|4s0a@}eUYo&%yKHd9Aq-hL zpt;!^#}q;2$i^V+kK84Co6`hp)lu8GEE! z7cogI`_C#(u?wrji#IkR7P#tbKB{h(*c&ju&V=X@;F3-RBFACn|?Z8J0#tKHhq5=`;N8savGLH&2 zop3YPoJRioz#e}Th;%B=FjdEQ#$(`S9!X12ByKS|d+`MPZQr^`9jAN(Y%mf#Z@UF zML#FH(dFf;FsAtw?Yu1#F#l$*%v(V(hE$^52L`;_~hga^`nX9$xAzlrD5i9DU++2YSG`tbu z{*Glg4%*EEYYM%!&pu?++%4}7;;`dcy>}Jk^UHviv$QAnKX&7 z%C{muH!@rX7g5-wqIN!=Y1CryeHyHtCl(7*Jfy;-3|x3aHU_}FYw3nU=Gq!QCYF=T zr|DP@A3oE1>NF1EO4`qbm(ca%>!L9*Kl^+L=q+g*6o7o|h#j~p;!AEvzrEO#N6qsv z=yLZy@f_Bbw;m8!_t~C7lhBU~%8;Nt#KD(AqhLKwk}OQ18)1tF4W5vV2`&zu066H% z!q`|Vq3YGH(x0Xz*P!g`W8EVYUJDQD!Aq_lAbw=S7!miptUNPz@M61cr_3wVu@@$s z8sn`5&(nb?f%4VfM({k-^_;oHV*lZgAr5{|`|slh{oD=rKIQOGnN;mpa|Vs8yZ*@T zO3(ru*X8_)kH!AEJxs?EPP?m!Xd`%-PRPzLzAJO}=3v>$66T^ufDvFgcyXgKD>*Bk zC7&^Y0L6@K34=8&;blzZgxD#s&J`7%+i6#uN8?zc?GAvu)O}_oysbwL*?`mWU8PwwNJ!kAX_Lcz2kEp!p%bWqp z5;&vS!lT?9VE3{w-XlP~?kg~H>h7bP1WLSK&RsO1E^toc0CLxg0%UoPsUi(?%fY%f zh_S4A8PX%?DLrq3oN%(`jG}otHg=w2vr2M0`eFr{?fktMU?{ela=jRLjMrGtQ*jR9x&~>daWgnHAO}#{ z08qQrgg7d*FpV@!l{k0bn2H>9Skc7zZ+7{a;)@{3B63%}vZa5}m2?&Ei`@kV-zYtR zSxldv-B2dblxT3Y;WaR@k{raS>mDFnkrW1RzHrxMsQh?3OxysSd&aqf!A8JR!&}JQG?o!ba9|t`p>f4Fl(>FCy-&tL zDim$`Ihm&RqVX^_*eFxMjy5sOX8QlpQtZk#koUSS{xC-- z+Nz{Z*QYx3F0q>H?XKSSTTV_3nfcq)iL;ihzD*I*{`on#HK(vtwCSP-r zyVJLCEJ{Bn2uF`Q03tofHL*617wzw}f9wHnj|zvWUtY&sgt%o5y2Uha^~1`K`#k`_ zm%Q|xLAteV{oHCO)PYDPj;>!Q3Lvesj&FXm?x}kyawV(>2{B;>Xcb-*yl%~dx z2>lp61?JU89P$Z12>h;{E?dSS5N!;?B~g}Lh433rJ_9V&B2@Q_f83WmmU!}aHGXxm z#tYZq5go=0^qr`@gvAl*1|lrqpzBN%3Lu>kyK~I+8U0;BE>hrgnl4xBWLP`d7148J z0Zuey$6e03WFx`5(Mz<)Aw`f?{*CPbV5QFh-PHb4m&=^gG@$h^^l6#UAvvWm+Lis( z%fzMrwI<~k=m62`8UKL#YwErneNM}LIF-K3SMzsj!y6R+jH8Nln6&fn#~88m?->gY z1U6^SnUAgHh6unKbC7xEMXITP-#8AP`c(ZBP!J}XyDHb@X)D$pnLZU6os8HQ{J`?# zUIP4j1P}|622G3o5LLX=PChwbCV}UgJrpzin1NE4p_B*UuO19LIk1Dj3BU$_=p=6n z;Eqz9ppkXl=YV#$PA9WC?wqWXgRv7V#H}?$pclvt1yNSC%CS{(mTyybYrZW5HEHLy zeveKI2*{4&iS-(<&d^%VlBQe^IVaV^udw3vPH*YkukC&6241t|t zeR{HSecI$DpP@PQ-p-njcMPO#0YUCr#!`m!Dm6%bGkzBa&}ftG5hB}^SlWcM2-5jQ zf6k7C*|5XqWh1D8H8kK-darf-nU8rRLQk$`))(f2f^W9i?$!MDT>xV`!K?+|(EKO} z;oa(mrJjApS-%H`{d_C=e#JjlxUlZMNFZ!<7DjA6R}!0Pyka4Vz+S##MfNML3^{G`K&`Dczmx5ed<(U~LU-ms z>8@iH+F5_*VF=to>E8YmO_))B#)#ke7iRh@TGeybDQF9V@!Xm&@hB{p&H~zQ_WYB7 z(XXw?SPq_O&F_6xiovaHA*U=^)Rce4?nBuWTUM6&SoZg)A(NW)usAFJq z38BKEKqO6oGtN64c;WM>M)k+M<@1I;Z2MPY7REznTY9nNQ>b8631@pw9%o z?kFE=_Aut_K6g(N3{dgrE}YV?OBvN?EGOPw+7saAKi@9nToZGy!bW-(km~r__7KDX zoMfDYXkB(zV|eMp5d!2$p_dVX6wf{6MFZa1527c+`)mO54AN#9bFgmOBx=jc>5&P_ zCPS1w9@~u!58{y2R@cWTd&`!~I{PdlMhXl2G|$IwxuK!UOw z@$=4j+Hl`)uyDN(v%bcY^UesJPXO$_zHsL0e81oamLC%U{KLnjOBsv+`5|kwk#00A z6{ua4OBzTsYz8^sI!Msr)Z-t+zI#B``{B0?0(q5D^ai%!AShzt^qadXHCB)@^c{U; z5_kBDXnMIS!fw<~lgaDYM@b$5)C##ECwmxHxsF zp+<0(ym^hqOWOs(K^*tHEu_O>IhU^0Ju{9PgX}=A8|dtMZHt3$!x)bf!Z*wS$BrJq zkH^Lrjsb@;Pp5Ii_6ruuj;^IM%x@Ivcoxr2|B#G2aGl4E`KyCFLGqfe=kZ(GKX{0;Fr3XOX)hyz-ZB0CB&lx)HD;Fq1< zqyF@buPQpv%M=tijmJP#4x9%&GQEk08NAw~SvG^{4eoY094y-tLPrh^C&Sr?!}2yZ z_lZv@CR`Nitj}5h1VNw&D;c;R)z|{8a?I>RnHReD>S#k|tT0AZ-mWK_^;9tP62Y_& z^4`2jmt#0>=aKTUIA_v#25Qb8NPV+^9^P`ya;zdMnLar;0|fy{C$3uQyY(Bny>rdG zeXb9>;JzG8rxFwYS9c8-T7Pcq&d-GXVM2@%-qyhV=EXS4b44Uuw8zNw!^o zZT^B;fMNF9B%v0=$}D3Zl2x$4Epqfp+LRA&b7v3#;fi(7mdDY0lS%?YVw83-6e ziLW*wXF+rJ`d%!9B`b8zgHw<^wyGQlEdsRGKGBG6<<9xtw%^-1er4%&*aOf~D8Q&} zrQTbm5fMOxrv}6`bI~0ip%@1nPetYnKixestX7>UnQUL$C-G*Y+Q@o}%^med~SNN!!Mwq~{q!HPJ_+&>rovn>F zTUx&d6S9+U4xJft3NQ*oyv^2R17(dTrp1{_ISM%VTbQJ6Fh(?5<8H$|ALT_iS|EP_ zwfErZ1cscwD6`bSgU;ij3JAjR_iX=ut~)IDOwnD@W0#MA|KSUMQ28+dfPefJK#!og zj3;+_p4QHbaulQdJwmywT_^ykUw}@Y&$Dwxe-rySTPTQenvQ)zDYP1@fNePb9HErk zF##o`cCR)W*_vsPLVCu|K8H;3wUTeN>0q@O=AC2DIl2PX2Ha8xfU<)^dlr3eXb7H7 zfROf1=f@F!hR(UCJ}DCh$pr8&&PX#euxs9k9Y3R#Gwq9>ue{6RVtTZKV&&Y?3}}#J z_0%y?@(2Zrdk%cO61A5axJ-}RgYAvvHnLNOQfVIVj3c|~m?4>MO1h~ZPqmi0up^v) zt<)5n4{VtwHZAfl0I)cAvhgQ$I4F=Hg4BwGPTsYLvrWfr$ZUdpdlv%}i;@OAP?iPZ zQt+yQlaG0McdkIrg*SFd$EyzqD5|@Srd1zl?`$m>hKD16_p*~7lvLnvA{Uwy1535B zmJJ4EePH$e*FWITKUoIAK7Ri(zs<=&_wn4qM8yjq;aNDt>f)u8L^Bls(I$5=hlOV9 z5&d6^S81+@)^f+~{B^;$#Jj8ded;%_&1x(2!5Mh~&Z1 zMa_N2H3ti=$ECb)al^|b-vm&Qn{J9cjXv8l6FGn>J)U2u10>=)wVi3%ONJV}5f!#` zAe~~S>QlA`%>;;Ks@j!4?~KrNRcWacM1Z@Dv9t*}ggzP9LA_@>{_`OC&7c(NP(%)= zosguPOK0DUWUO0q$TDbCaB|q&I(xF$)m)~BBx@oa0d;rsu~v2jULw~|G=N9VPuou3 zA3T^1n&Ir_z8IGFMh-0SgPmvMqSs5x(uM+u-TqBJC1c?#KbaTT6DH+2-TWD^d4U)| z`%q3lao=eg^*?oWyjp#%WeGWmu*D<|)}wEPcQVm3haB02zJ6``_V(lcAkYu`Jpk7q z0xHw9ifliG>M*BOlr&Q=LK#J+mR#;DW!JSV6yMJu1uFVy<(fkCw*Y_{DaVDKwx_l$ zRYc&V6p4n>pPadMzQfP(Zh-qG844mT$8awgr7a!30ag#5|&3T6NkA5>ySs=CpqAd$Tr@ zP5;4xaM+$FQ#Ci?C)}Occ)pDr*~RXJ;)0zx+kfrq1ILP=yRiayd%Z8VP>xc+4b_7Q zKzF?(C^$NlZO$UGc|;&=-TsZ&y76trBdf1$E;sXX3_IWKKaLE>rgMu#FP?_rU5wAE z<;VT|PnH3|bp-HHG-{9Cdz9SCdKkFpvCmOh0kG@^kP@<6mcRm<%;8ee^YyQtW#!%s zx)*=V;Y2_{-X_xYe9WOSfYGQ9>^i1%Cqp$#Epez3&)pWIJR_Pm*12>;!EAfaDG#@R z4)K3uQTxbbmCg>|6EW(Zo%G#Kj2v1Hb=ENZqyj{JkSYfjiW->*jBJLrahik9nI2FT z9Uz25<2QBEXtx>8c)GiEQx3UyniFTGvfr6kt(T{mLcW2=s(_?Q-EJ9p)mx`{FR{LZ zr8Rbu&XSpD`PY(O9hkq%A(cG4#5olYaq=~dzWe7?e$apOGDn&th7OFBl|zk$K3NP|UfTuheZS9&E9Rc&ztecD*;u z;6JvlSc)%%Oq50x{Hy=BpX~_Xdh0QKodsyZ$Z=5u#o07VdhxuJ#quf*J~8@4iU}Ro z{wPp^rgcP#s{_>D>Jx#Ip34&~PM3EZp~wLuDUS3ZCORYc-B3~V+&d^u1J%@LdnP-P zRoC~9Pl^I-T7EriLCq{ygdFPF`Lp#gl)jZyhsx2~+OmFH^Dx{7v7<3^=8b0_lcGNF z?PwylPHLN=(@%hTJsW4|hlg-xW=OB!vuvDw0|lq~eDGZ?`K zO>M*QcD}u+hpv!i+t`E{%}8g9xvQ4oj)DYn>c)?ojIWWpBg-R53rxgt)QI~Xl zruhjSMS!kb+}nTvXt;qLS29TGYe&HiuTk>Q7s=Wf2C{z)8d7NN%rXZri>a=2xuZ>e zKCG#rXtDoloB>tbewEM{{Gjqf0suRI2*?Q}jKRsQ;EW7dQ%&U9VYF}`zrFF8%ZK3* zSevY^r}46}@$)h}j&xo4OFjakW^Dw7>5g%zL9Jp*?@GI3kbU4i*U`Bv3UzowS+ z16?0Sy*eEW%`}+kt2$$YY`022eO>xImc{0bLVl*2kb6CX4J-?cZ3E0}!_uZ?v>hEh z#<^JwVjY^zIP(AcAHO8HcfBOs$v@kC#isWW3fj+h1n`jo=utl-LM-Y-3CqtLnIi*9 z7;Y}07da=ic>G63@u(e(#OXh$f327`rTZ8^!Bm~3F?z6*GBV1`iYc{al{!2CpCU1W zB%gl8hSMRC1{r>j=nWEh=)*1pka4=Up*i&OaZYdAxyU*3%g)5t=4a6_S&U7$Nba$HhBmtZ7#a>}wPBX2)h0O0tNSQL(~{0JH9 zdXR!00}nGhV&a?xBQ2FsY#oPyyhGV%v&EO7&HUP*l-&dgLHHNDsba=#ejl@sngA-S6feJDmZXyt4Qd@jL@spz0ElsKGV_oK3DHG z5p>3U=rRKVsE(u_H=ll~LA)Pedax z18f<9t2)-6Y+ROqzEd%F=0h83R=Q|Au|`J`>R zVX4U-o%wiF_?p_ zac_3W_fAf%QjnFZM{~NC{rUJnoli6;rE!&p+(nw}C~58X3BYj=W;~u@76w#jaI-Sv zvyf~59FM_&Dm6K%T_S7z!n)_(~QatxzcrLzU? z3i=PT+8OKP*&H+0smU&BC(jUFp69`+@l2g*1R}ZuH{=(yM_!Ue<`yM!yQPWJF)-AjH2r^up zJAK6&^xlDBuq` zPx<^`o%-Arbl%9oB|}i{MkGogK6I6waQX}f?(A{nN6zYQ+tR;IU`|7>eT}U0*&wHF zHt86d9)?z#^&^;IKm=a{x~o5K!l)0NA_gZ%sqQ4tLSsDLhCv4H0axs{Jam_VwXM4> zd6>do;0p|@jGm82(Llj zqx?hxz~c`Al`^qZx?jjh+3NePtXzDSVs9mM0h2(cw3!7C6T=K(`T*p`Cjvg*C6p5g zeKmG2>=ba_hhp=t9nH`;Bk}Vv0)b&d5=i)pnfGV>m^vF{(X(&4q1CL9XK}4izS}i} z2r8~2Ue21Z!#46hM|Z|Erdx_ZYhdk%+s{6h^Z^OtlD8dr^|QT1Dq3s{jTp79hLIYH3bUx-5Hd#Rlz@9sIUya+2!9ywy0IWz#efmFo*59mQ#>Qfxju{jrDc8sv;}YMh z73avz1pgVd1RfYFsNx+ z5?}bnT!L#%Yh&#?pKUPhVxGCzdo}!A>_(_E066id*VVu5JF_LcC|)>31fapBpkdmO z?Bq!{+%|Y=?4ln5^ye~VhfLdtx;l((Qt+Rhr$cSJIr9t>oaF$?!ti?n(Kptx_|my; za=NZ@Q~J@R-E_Fuzu&6-_5r~ApTBUldljej3gB($Qjw+~Q0iwz+@>J0&ZRDmI%?4L z)LRc~MLfhP)Ga^q&EBZ-2H1pF)(lUS*xCzxOvUv(!53Laf7A33yJ-21qwh`tSdH9% zwSMxEiPo_Joxz&7hcbzz5>dhi;stwFy4AA~*~emSsPB1hq}Q_E zbU#W{#vTB^ztbNDdRIM267EA6+l92f%8&VjK)-ze;J^Fj<4yfaxo|e1lr-+LO|76h zG43ZS%U=mB=gjHVEj`wqL}d}qNRg&9YrT%~5((jx`pXf919jG=fYno0oH{fDDP%e; z#=2;U>KgIicgoVvW~W{)&C7aOCb~RNc3bHPTI8_=Bz3=zQhl|8{>60K=@^arv(t6r zhuVm<0lqG05SDkgSe**1Hd*v`B!!-(jV`1;o}eFzWo6|p#1g$fW80n_+9^; zS!#-3MhOLi^Dsb}o#}aUfFNG@@vLLxf3U$UiK#R`ywdF>IJub5IV6U3ZM?ZJ!+`jX zJRhXVOWN;@E5`!yY4^j{gWD(SjAAm@yL1QH|0qzCadWC@yY$>uZV?OjGZ7L-*zeE< za8TrrKr;0#*67A(p)>J|R@%H$(@I~8b))vn+>)XRH5sbQB7>6nG?9O0P)s9$-0s)& z2sTrv6WeThX=W+MzyNT)3{$$q=qR-<_^GbYO`6K(6BkBzLTC=qX?+&8Kv=pZtKdStQ z-vjW-03h)r4C-+whJY50UXGp8;8gewi+5W#T)k-88Qb$&T#;oaT}i!#p|id>-nmY$ zjpuhJPqqq*?z3O>8E)*Li|(%UqUFD`*h16vigr0p&+oulclaewqsFzHU1M$=3;Ukc^+KL{?RNA~~0_7|?!Ajk-E`?OQWdPU^ z_bx!}atXFA>sbBSLM{_$>Eu`ildon!+J-LV6waeLu(y*}rsJqr`E^(-wPk9>3v*+JDV!^T}7rU)!H~x)Qw_Sqo7lbHp2w zuh(yQ|1aWc zgnD`1dIWme3NAP(*(|Dq)2eXRz~YzuxK2qdR8^Sb0o4y*XO7|$} z1N6-H_5J|!PI~#~KjcpW|K6=;>@N zfYRzooC#+1ABe@^oPLDAHrOKR1kAP@3OZ5$Gu?~3O@q}Lo$C_muPb_bkBqn$a;H50ZH;u9ROLwaxFyQTsbjHyd-(U z=Au*v%!}#0ZEa`@GOv&w@$FbquGG^~MuO)SM^zXz7`-PN<*tPFvwR-uUPkf|t(N$l5`4GOJO1=!R;s z;~Wd{>8+V#sry#;An;V)S-^a+Y6Kd*IHUs|D>5)J#qm)RChW%kuX*?2Xq(YpWTDvr z9|41j?N^^i`9XgX@JIbQ;H!|5#~viqDi-4sYA9ZPXVsgsR-_!oQs5CugD4Rbh-Gtb zaTEffoFnq)V#Gr^ql#?Vp{SB7?srp`YGhK$igRmyIJJ740(3xjb21A&F=xn*h@HUR zxZUSO-gTtdjoVFsZ`L~Ph$x z%EQ`!heNQmo&QP9^o2V+&%Hj=27PQuWW$2et*l@jFsx<(?D|(h!ZJ3sVceeq3HRI9 z11%d+%wR-57|22L<`2hide@P>#ZO5ZnGh=rAytM4}y2{qh9*Kc%d^q$ifl{6W zlue5w5J0&Fu+yidK1$#N&BUQJWtNxu%)}Vv<)Z-Ka6(=RRlc(3j^7v6 zG5rkQg>cNlmhNv$Kazp$eyp6DICHHZo;2Q%)+qSlCr{*2CWE`L4 z2>{ca>8HS)X@hhDI!S8?NdOpn!NGtnV0xEb8n?MCU7N7cPQ5zo&{txk!HzocW7AWq zU-VuazOh|#N*-%J=5C6|lQ(VO=^O_`j+)P{BVfqjh3@OPpx(GIlUOnc$}%)7LV*YL zodZS4qLEUU1#`ksp6AsroT}(K&$*3}KU}(ExYAn{r|UF;Com{HsQt%RH|?8id-ZTq zKh+61Wd)p!(jI5qf4~nYKj3SC_C<{BAko39&ENYcTRxqY^L#pWH}RlA0Yc1B!HJ~kGFA}L+&;|vww9AS{tZx z{5db^S0s7*zDU_fr;s&;akUwvd3jsu#S8?un*Ig7z~`}|F;TyV3*6O@MmAL8Ss;)Z z0CV3mIw7^m*xS!?1Q0Ho1^aNC*I(*=6r&KqjctGph0|P{4)k#~wN;8^;&jR(IOQfs zrhv!3QaDA6K-Y+8p&R3o)6Y3E*Wp0C^>vz~t7-O^5c^rw8VYa9Z1+~uLAE~=2f`iF zM>RQ0Q1HY$!-|~xxH`OCVWTyZHK1P}l=62-z%pjk#^HJp(5*7_V%&A_RlUoBo5;X; zQWc9>q@)|aa!<~k6cN5z+3(yp4LYn0Q76Saw3wmR$pE2ha#oIz(4n?Oi5JMlJvge3WE%kxxM<42wW zi|}c#!5^UkwqT(EwAObp39;nRk9d|2-pycDtWRhWF5DoBGd0KC8T z-08dX*pQf$L8VyqVmoAJU5`BpRidH5T&LwFT4N4FeC3=n#kBx2Eu^Ik>!)3~b$bNFfmdAx2OS>R5qYzJZw8>wtd9A-&8>FwJcDp1`b%=K z@UHVG-0SU!Zr72+Mk{fU@Mq3-A1me)VNrMB-SK8N!JE!sL-a`^UMgg=awH;cabKL} z@~q*b-8Ey!(q4bjn+fdaoPL4~z&m~k#of-EY<1b5@MuRd0x(1&jxttc&LCn+pBFZO zGDj>!tmACTm;nAhW z{o4e*H)M3*2pyry6vihLse0qxy|uZDCuLAp}F0w4FdQy@vRV5}Q_-aOCu25@hfZ3lbXt}xgV zJ0lp2x)!&T+DCmjb@hv2FWs{Zfxi+w1=ii-0nLr--srs}F>4;{X?e_9xO;v*U;b={ zd3;(i@+1Br&~F<6yj@=b%*YRw_T%*1RoJXiMn)@FXI%v${?5C9)k;3^N@#Mr_izTt zs8dq1nR(Qg@&G(jv>^iw$10mi+QG0)Xu`$Gwj=N^aoh$4PXEq&41<~z zIX|Y(Dm(M@5;8BX(g}xHk=JoVp5)3=x^`ZeHf4ywsrr)HLf*xYP94DSkjja^FSMX^ zQ{PC?W^+y{GjHPqTh@uTs_5($%e5v$J623A$EDM-LBsTsNXZ&IKKeGNim570uT;!( zOm*zcYT;6BD)=pM4!Sv&-_6GpQ@q(*pADMBw(5uGNYd%nx1tzFd5Eo^H$q%n$pM4}8xH7k$J8B@A)M#TQX)9*cJ71H zw>DVs89as^{-@tO3-Fr;0QUa=SF{X>AmDL#Kq~|rid~({U^z1696_GF!J5uEcz+Pf zo6aK`AW)ATwx*78l=ud!DJUohf;5m+=m3?jAFjVIU`^wBfl_xV*K?YO)r*onlISVO zGqruEf#=1(r?P{DQ(bSLXzh9r^dMR)A^?;13Ryd!+j@%-PCq8@&3$O(h5dL$2B!Nv zWV{p7y0Q&5Z4UXk_coWPJD)i%dQSSnatmEm77a5hMO%;6I%Yiw1WO#@`S1*3v#;N< zv5h*$aftJeskuXT^qke(oP4oFSxM-1V3XJ{F9GQ7f2((gtQkg{_gTYn46r!2E&a{G zhMJ{F9~@j@w5jo8qr?G+1QQ4E_}C>eu@^R-#vli8(jIMXnrZiSoA!HxIFe`0irvK3 z@A|EPMs=Z&u93$rRzTMIYVr1$9RN7q{u-&QmpRspBJ|55pxJ>L;Tk~38^Hpn?XLRk zNhxqku~|@$$7Mw61QHu-*XPu>UhF_FW;qz*!)c_9`l3MrusUlE2y(6wIYN!s=Jo@3 zW$s3TdgJLk%3?};BY#4+Y-q}*2;cd z^!uh6U$i2S#|R8H9t0*xwU~ zX57zawtl)*qXV`!gs-%dVJe zusxkKBf$IHZ~q5@e&cTeynkV=`tbiAvNgsHRpK-plx!cWeWEbuosC`JAh05kh9H#B zphk{fjTgd78l6$_VfA(~$f)~CzK@GOhS#SA13=%sci*U(_(V&;tL&EajH-e(2U>TH zF+siX?c1fd?M@_|T}B+pwFXQW=AE4~B*f~vwk>U}J{h88Osh}4UvqyR!&`UKm-sa5 z&oX6sWOe}6PKwD#vF-QHA4^*_(TGSp7*-SS&7TCJ(SB1KziF%L?ZQLE*$GC{&RbTX zcIx_`z-gaOaXMBlMq?D+YwG7+DKGqEXT7Dc=jLY?-rX`TcK-Gag3bovFuj6?9LMS_ z+b*`?gIoqz-mS@LC=Qq~O{SR*P54%AwccB|0V>7o`Fvh{4$J``UFYL}@NW_QpS}FH z0f5_Iv9ja(Ww#MyKN>gyNgW-~PWSB@SJiHtfX2YSzbY(=Ou;AVg9MT?mOR}x9xvdd z>$asx06sGrbWnWIIJN}?OTSgAD^G=gZ27es7PCRk_(&&yXm`2rHR+fLJcnVOC*5Ef%3=|H zaDQswZDQ-!*Hm+_(!9?;yDtI9COM`7bO$nNr@k(`ve@y*(0$imvH52IGo{b{yK_vw zjE@6K-tuk&renX`wex*lE2eJ!JAI|SRS+KraBz|tj834LX_=&>9}UFfmaI%v_^Py` z)09JwIBZOE6#3<3bF$z8-f!^LCkXXH=yE=@H~)g)xctT$0RQVs%a?CFDu7a>icQny zdn_s|Zw3(un5g|#c_@~mf=02d&j(kHdtz#XiR<6k0pM<$o=TZm%nrSS2RShBbo%|X z$aBeY*%KvPNpMqqe_3r}I4bO@OstvZG8Bz?$d1YSAm^HPWHUG*q>%ou4iq#FGs~0o zHtv`pmT|dVAB$1UF#@1Qy3jD%-+|%6``yC!Hj6%qJUIXXUHcQdLXI6$?=t(?P22vg ztyy9Lg)`1NOUw*Ii4>|D z%~hX<8*5I=qd05e6i-F(sQNR`$P@tIFhwfvBB31nrmZh^Qd-|`zg2(VF6lTHBkk>= z{_u%S6hJsu-#Kj5ijRyWm_>T-jZs4z^iC2WnfWrQt|$vgjXKk7@8b}UyhZiaW-j*m za7JG|^&>Veh#b=aP19Ab!Q)Ly$&h~99UDtuyJ@%eNqt(x1%P(@T9^DquupZH03|D6 zYLom;pu(4EYVuk0^l{JW`{)xp|80jKDfqdq!We%mw{5+UH=Q=yzX>QeHEb_di~V~# z?A)*s4eKU3eRS!iO@b?M|ne1!IC!{v*vFV^(L(;~rVS0mp>m;ES(=mMs24>H1>%sWlAd!A*cx?NoB}&z0>FpT9~z9qmcXq=&Km>CTtUHu zPtid&tdgf1>o}MDpR=%?G74h{bL+m)>8B$&TRm^(wrJuwCYMahG|Fr*x}jhy&BnDg zhON=@;&p8g%!w+$IxncR4!v}uH^9-0Ue_5OJEvg8Lp|Pfb#?ANC>YPbUDYMj+jdLl z`X0+P^AR?I8KZFezh3B@eUfYL~Dt9>yJW84K_WEV%+wgirmiC~lP_MGP;X21(8W^toXn<~eRt6Ag|N%1I8LfSi1 zr4uKhsop&!)}s|yX1w7!4R|X3FZ>AL9lwM#HxhEW(2wJlOOmuWAzE4X5qWyK`-?LD z!l5ui0p;t`n!)6V0=D$v(74znU~O6#aYP5-tGfb0@D^DI+rX6PU}V0_u7$y&Pv_g^ zNlSlT_q}7JZErp~KfCjc+lCx#RByBZ2YMOE7|GM=+7o7p=H?KES1i}S3>4z?#xpwc zDm+J5*UvqNP0yi@J}aU0yF72_jGdp`=X2PtTBhE*Tl?(fdtDcUI(_ZIz~58;EaLw5 z_IAE&D6FZYfs6CpNt-&{%rYJq!+6xOPO^Dz(o8e66|J7za^b+h8&1Y&1RRGzF33D0 zG|_e=CpfU1=G7Sbc5#kf?Y6JlfAP4Rz1n4Dep+qQfrcR`?NsVE-vJTZx@i1`{~{o} zeiL9%J$ZTI$Nv_7`QwF)f&=5wAp;1Hg)DV*a>jNBR)w(Ki95>S${VL?^wihuyW`== zW#`nLF?ySNmcA**pmDbJBKsi;kM7zLorIt70rF>7XG=4(a>CGh7+HptFoIyQe$}RzQf01u|ZO?gUZHXgw zMqf`Z>g1@yv7R8Kw-LN_Z}kV0beiZ{KgKs-jBg7PV1ZB9bw751=~#uA7hfYl>Z&hs zh7Y>mEMopNhG7p3dhr{g?LKI~e_UxKiT3RaMHK57)js{6C9_}f8<*cK0C@Z%ATie{ z_OYF}TCtDc4dCHD;uZhUBJf$=<>%x3rY`u&M$1ltl{3I_jp7ry=<7Aseo>EAfWd2d zeQNY~W?IwctN<9R{Tq(j*1I*O)XTGHzov8_x$qN9GLRbW(-yk9PGreZ&#puqAL$ka zK95gn!%h}^J?`YR>935`KJkQ3quDbQ-oeoK^~*Mf5mcqjjX|blY1pT*vESEjbcFKX z9^ZCfhS*kur#7Ys729Q}r=D2pCepJ4TifeeoqRZG2_Re@d+g#bz9PGaeC{{47(oT6 z%u7B~da)5Q!o1t!Pj9gu4djtS*AGJlIEcW4=K*YI?s5dMnbC$TTU!8Yrj&RL6kz-J z+YWr^`Wcw)XS>L@)Olj%o21i!JZL`Ngs(9^${+vkPrqpv;J3>FeEcCGGUM81lV*jY z^@TleUgpbeR*S-VUkgJo*jR?HsPraBW9`D|H~Sqvd_joN$v7M8Ssia^QmMc`Fu*|w zh~`?nE9-ak31E5}SbSf}v>Br`8n_z$bYHijH~?A5Zv5g@tOk~Lri581w1SxJ{kOq4 zlvPos~9zdP`=B$J}VN&*)ReLiPBrvPtr87Mohh zig_)qh)~U})s^EcXAYX4wGBr(WwyJELj4y`vz)U@hJb^IpfT;gf(ezw?xe#JZw{`o z5G&1c;4ScA?6Y#-9Tzim0do4A{qtOXFv%ZU?~_i@>ix9=+Gfh|wql@3f0l=kwq@M5 zZdW@KW$VX7u=0f9Ao41Ip#i|#$NB$JE}IG&jwMrWB=tomMU!Gm16=YZJMXnZfM-nednN`Y=b|c-PO_ z0Ju8e&{gYojlMj`lxr_CW}nVCf&=brDwJ_R=M4_BJA*4e4Vwxh!Az(*;o5J z`!5^{o36g)96j1g@KHPayEE_@=gyJy&NS1==*Iye6Fzi63rhCFsM*u$7t1c=nFt-K zr%&zQ3Oi)ceXQL#b!lrSa&OIiwh0@XGCz}`H4gr3EX99SHlOW@$!PD+neG4d7a9Qk z{XgWyoI(A3mJ;Lm|A%JyCB{dtB{ha#RR9VqoRBfauev~>F9Wb36IBOrxhX#)rl z`%)W$M=WesPbcF<8;!;_e~7{KvhicL&lw0di~3$G)8?yv+x%gG7MX>OY~Fy@O^BN* z6A835pjf$4yKBIDTX_t+%?LZX9PRNtd3u}VO*5WTPQj)=#vDR9yw#x%BQiZQdgkO~ z{G>_OOXlpN^F(jRH!w@R-})Rn#VsHZf8+Hdx`t&MxmnP@oLRi;YyI>^K61iC9yJy# zIlq8r5=6`ZGSAXc4m^T_-j3_4Pu(kP_iOd7z#y}JMNBcVJNBqs?7xmTY%b)sY3aQ5 z#ogHUSs$kEY(G{+`g(@LZ&S2jv-ts_XZJNLHIhhzkn zQKdLN^k+az{8lU5s0~+iZ}QS@)`r3{rOH*1Uj|6C>*#{SH$O9f&X6 z4%^m1z}n|RXte#_>vNwwDB>shF3;3}(G)OgXF@1D!4=J^KLt_|7Dk4_fNyBzS~h8P zRdP(p+qY=34wC5j`32NV-Q!NJg7u+-0&>RI9Yu(!1%xhC(*fN%X*7qOPo z=P~}2nPi7(9h9~rxdpLnoQ#HI(>a5evj6ZM@4xXc1NsfW1@OBs6-7^H=p_b}ig*G~ z?Bpd=VEnZjL(BDP+sB1dG*$yAz=biB_V}VnE}(e$Ab@es1aQ~(8T9@qmnV6%ZiKzn z2Cms}I1yFa$pMUEh%XT@ePYoYCe!oPvhoQqUMtx8psikV$tbea|%-tzJ*G z8Aw@Rwg6!FY(29iL6Wt0juCL&6~C$Q;?ICzNuw3hT-0{$%eA^{Vr!Z|w)AhMTQ3Tc zPLF3dR+{(u5+FG|KHtwaM@XBqm+PBNh<#ha09^jt`aQc}vlwh%)esWg^fu>t1`DLS zsg9s|+r10~Z@cOF6UAeb-^u_Y9v{p2^?6|-IdChf8ROHYc2aOI2 zYr1p(wS{-98yyZ3>g}j<+|+P)_90V>#`4`Q)LfGWykb#NV;f4sSpeZ*?B90fTFk1} zqULzf+3cN3?Y7D({~+u=(2mv|+uF^}-_J9i)8!NYQeOhJKj0`ts9&g{WqvGDA)u(1 z|Gi2&?bA3_=Lq$2lg*FT-he?aB6};&EI=VYE6yMi9C#a}jddvvrp{1i;(tmp;(t6t zf!lW#e^N)}y*ZA}Kj$a;>9oiuy98wd9@&}oU~CL_t|KU8N4iEM*6O+o>YoOz0l~N0 zEaN7SD)_Q~$q?Si<#npr9@=PZwJSI&!`qkfe2jKjB}2Iy7kR$tK4*^qm{LB}muHTDO!+QOx|8pnyN`X; zS+hAd7(g7h2~x}f`qZL*tarybriX-rj%YGMh_EN7HEZ?+Zfep!&{P~b*gcY_9C#$DM=j0V@T3(%MNmDU#E}7yOvpAL z0Xig5f(()(9whJG>9hV-nfZO0S!?gJAJ-SGd-wU*sz+8`PFwq^{YGn8sWlSJss>yW4>26 zUlJ{C(3Vt<({dOt`mmsLjw1u|ejlGpPIgW^x*_O1cwczEy)U92jzL+7cJK{tg4Zkh zPx@uhH;$jDXq)r`*!RhbIdF#0%)3kbde+roGWbxWXR!73GbCAeeS%ktkD3)WKL$?t zjqchge^BWIa{%o2dczX(KL2_yPa4xDcv`B&r^a=9P!`r9pQ)*CLTs=I(4R9a7?SrL zN|r-tO`U^bYy>_M4oMjpe?ia23%t@5?qOH*h@=;vr&m=#NV*f?*tR1NiqYEMt__gI zq=R*ZnCvh^e!!rP5HsY}>nYDfnl~g|)+|FBctL}UgZH_W!oJEZ2;0dOc77%_-KE_Q z|DpXtl{Uj>*X2U~MVr}N4`|N!Dr11XEVTgYCQErVCw1j$bC8xW_R_>d<&SY)zl(brE z>A`!vKw{)j5M?tC`y;lw`eR7z?Bun4fa!ya0NkC28&Y{dLMYE@VnEqQ1JXe#2DX6i znXldJLW+~IQ^`P&GA$g32|SXJ^!h0DFQ6;b#F`ayLsM`jzHb}q5`-H!H56>`lJGIACZnx z|6R@t?_}mo<_L#{%3P;jK{x7!_04+QjC@S`PtC{9PI=Yb&0`sD?oI}@hOJiFewAM? zeUN7W-t|$|7l0Bh&yfGJmzIL0d9c#fF9ybhX*Uw$0tQNd(s6o1Ue_tnQlA5!?FBBR zTR3C$<&lGN*PvaM@ho(GJkWL;UQe!#LNyD#6X^Zuu9MyMb=Qe?2F=N^XedLrTN53Q znoqnFsurn0i?1ot66nk8&;WooO?8E(>ALh$EkvVNuTA!b#uC7>3pXw`Vnp~==4r>` zZnrm!9MA8j{65hL@~)eOH53sazHCIK`%w5?A9wsY2R$mV)-q^<9y?(8f3~h+vl90J z>OmKsg5XanuUh@4|D?A@4#A}V^caD;qM18{K;hUlXU*^#e-wyqM^SWFKugd5UdsoVJ`e}s z_<;i#U=@acF<4MDi0}Ik0o_Dm9dJL-3WSYxi?9|bHd1aO!qe3OY(zLRkcT%U`puNb zJ~*`Laq{8E0BUJKDijM?^uu}jlDq)eS za|FM_6oJ!)g|TTMNY5_X*K4%BrB)v$}iyiWA>N)Abkp}m&* zmF_4u0+MU&cjKVj;8^GaB7dNJ54T4aF2%6q)TFV?G036Z+yH+-FGb zp3d=*(LQM>szXN=3pM|O?OIPu{b=tC1B+yYfO5%e&_KvopS<9mo}sLuQcuA@!CL;q7riI@cwzV2tHz{^f4Nss3Qh- zhVcZz)-^Dp0Gfh4*2sa^2f|Uek5xqO6+aNb_yk5;C ztsBYMgaYV`NPWDk5y`vd|2cC2-jmmB^%R9Gy-ain@(_=Eotkdend5ff>A1ZN-N}ib z4*%gZ7+)*Zy+~9L$D~6xSMN$r?JsCQDosk=EAi!oZHSN7n}VGx&VY4`k01yQC{ja! ztO=%cuLG0Fpw`Kcx^v_Og{v}M(=<`elX98DMF78a_UY4d?(mcNE#0ojSF)$QT}9Z& zx-O%7kv4upv?<1{UhBY$6}A+wRhw_)BI47Opq$3E)~N>EflFaWcRrV&*VXseRiA4u zH{cAu0PvdNN@GH2k!a`X{tEc@deU!tu3yUYEQ02wJ3~%;$yIfl(0@gJLT6wUBx?+= zcESsP)kbi1x~Y))bUs0<`doL$V_VdgaE;?$6>%!*JixlfC;>VNj*00Y{OO-F2jGnd zAOb707Cvk|C;~o5Ta$G7(D{zv`f1=WczXU!5T4>iWotV>$>%nnzBGP_U>qn9?`6n0$eRQh5jKFqvJ7@8ojx15t>1`75y=!b zt`gF#`e>WRIA!rTu;h~pTGnklZ>dhAfoPnxF+zah^e|0=`fId4cwWHU;wRB|kdWca zdT{*GUlqg<|0#049BxP*B3hwCU3UmniVAfeqF!eh?1r++Y}S}*Pj;X-PEhSMvz@OS zwh;m6$XlR&C@L-h+7Ss_j)02|N)_Uo(#9uWRbMq<%LkM`7zf~$zLqsLRUB(Nl_732 z+Xle`moz$cBr1yTw!pqEy7+Z7nIvRsWs5%pyf!MHiTgO7?zQ`5<$RkK23Xw0e zZgilz?PI7H#w6LGPn;@3=*`$B-iuYG9AOwjqzaf3l&Y#fiIjS`p#r*9ABLE%5l!v!OrEgh6-qat*;uc(co z+!@fx4woqMc*t&>NPW~YC7-`nWb^CVur%)Hstdnv>euK3%7f8LM*|~41xH{xd+L!C z2l?7~0*6Bl_^l#__!Bjj02+DwKiGmn&nXh9kf4~>w ztY@rPX=^P(XWdt^vecMdz#{1G3C5?Csqnt~B*~N}FF(sV64$AAOF~o-SWQu{&(cdfAm%P>L33O z_a(zlo9OqlRu>}-nzq)&KyA~3!OyM!qnujWVYj)&7sz4BYAMDws4bq8xEeE-G`m6) z*`>Pe(h=BU7q51{xTcf0N_G&OQnX(w$9B33#}5MC{W)_0)IQ-tcBFItQuuCptK#iV zz%$1muECt9vmjDW+IFZ-IZXcH#))UiN?aEB}#v;Zr}|=zrl;e@(ver+*-S_qYGyo6m1j zpA#Q6E-Bw~T6ptzaXw+$Nh|f5gL9w$i^6+bLUwGsff>ckQ4y{ekFVT8yjL2n)j9aP z6LervA}8JwGc?8_BIpnGJf*>V`RX zv)sPzVhiWBy))vwN(4@=fMaR3vMGn&GgRCi2*3aMM}9#5pZ~l6`w0G?KK1?Y$}jx~ z|F<`v{nuf42mciKr$dQ`uScT8gqx%w6!gf(<{(HmX+9yp($zs8XK_p8qxyt_>$JrxXxLP$RMXirNxOfF03RM->umhXf5ModXWSd<*H5dQo_U{<4=8<5ZvmVh zO+!Rb&;WJzu;@9L0%)ibt!N91h|66kU%(q9usSR8=S2dUkNcX4m&q`19E;hAUvYAg z1(-vfpdM63hY5_`qn5g8Aj2C|A&_$sg!3r6g1Y7ty?+p1F zKc4)@4S@o9&wUt`W7z(jdM&mh?Mi}A0S?(k3jmN4S>^A%0rpRS>@UlGY3BsgGXnzS zk9*EyIr*SaX3Y>z_46xwN# zr9(XY<+Y;;egBVvb09*GP|PGB4M_-OoIR1$bA4sq>wBT}!8iaP)lYaxDgKs#;=p}@ z{TY5J&YEU?wkLyk8is&8xm(Gqia;W4X-bhN7l`V2ObNxUh9WToz4KjiZ}71xu(2?w zV@Jbv0sJzR#RfXSu7(f^V1PHk@Cy7DT2#u6ifnnep}q9M7}v3Fn@Vp3Wx=)3a1X(XC;wx_`-aVtjnt+ znn+lX>4dLK9Qh1(l4z`2zh}>xQ}GT*MY)L-7;>M3o^*44Uv5vMuGpY9FhzuQShlMh zvg`(P#J1D0}SA5i*0901kx5dco=X)|51SE)HF15%?6muz!-VIWDyK+7KJSxU@Nj^urg0Cio4 z=uQwGzDlZ9_TP;bd~x) z$4l8M8=Z&2eq?=YW6AFn9mYWfMor!MaXz!8b$)6KZ$b3i;I;AFTG*enLx6Vv6!2}* z12}S#eM#0N<*V}Nj94B919{Y`8zZl*3KpHx7XjdM0+LG8snf^XCO&l31=>nzk$avy zMSQvLT$+(sY{&>Gmlj>Ju>vEz?Au%OusFN_OK(^n>RZ~b zOQyCqx24Zm3+td|l`HPhd{NcQGyyH@74*~s&tiqQpb^Y2f_28HI*IU|MNfkbMjp2a033;r~f9*xk)`!q=SJ% z@O5X(dDX2!5P19|S!bgnQ(_UF=3a&kS2gTs9zM2-M=OgVv>a&Pl?}=s2u3-&&Q}veb?cxJ%u+vz1%(E2@JTf$(lCuRu@N+RJFZ zjd?|ubf8ZI*cCjnuC&?g?7p*osYhj z4S$WaPyXZupM^iF;5fUUc9Bl13=N7>o?@n*kdkfQcbpVWGjH zPT`|nx$HVZL3v=Zi+e4_Q(c_C(PD#pH2Fh2R<*SC_TWh;npA*C2LTzaN^H`Zo(8ll z2VO+TC+O{EV?+SBr}+)`v{;9A;d6q!41qQy+UhK<56-KZdRg7`acb&tcaDHh&9uQn zLye*SG~z;KQdEop5IDg|!U-1K)^~w;kgSLCT^FHG*+dZ+kALIM^Zw@y`|r}>1RVWD zR00;mEXO4=#+>66!K@RwWX9rFaeZ;=lSQuS=CZw1`FEND~Iq?dO9UcLYN_PMm*&jEzk zDF_rQwseISm#MO-29`u?eo3(rKu|#*>gSN|#qeE4xCim5jo|8m9aU+?e1mK5JbBVm z4>8pQ_+A+mxTMatB{<=(8ZkHeF_A08%CHYGRzEjw$BCIHr10Q|z!3w<=#EceLn1?c zA4{WyW0PJ7cCXY=v$%Vi-KA>HcEhaVGl^4O-Y7Gsjs8~JTm|*8$n$#Vr$YNQ;OC!+ zjm|i)GXfr-)~Ck__$l+8;&XqzKS237@&7@kTcqJH{p`tu7SLP6&jWQhf0A`nQk9Dc zPU^**oFQ-JTT?6a{)BeLhJb)%7H_YL3+8n#*s2%MkC`BJAqO&E`?63Sm{-OugpW4%1p1pSY@p6zB7ooZeZ*P@>04JL4&{mAKe<$ zCK?Lss{=0&m#4}Wk=fL{nyqQo@R8g3m@g~1&wkcp-8@x2sbkpR>lYV8PN$*hJX}+V zUj_6(5B@pNieMu9ljeBf>$v|vzIitPw~lA?A8`8lAN#r6Uphk;YB4_J4#$A?pL~S& zS>_<8eNMK?1VOR~$g4*(Ci6gN02rkA^kA*Mu99O8_6uaT;zL+MgRh)E=KEFA6tuH2 zrkwx8x`>jWuFY%t0Mg4l0BWB|P;lF&v;n_;pb@;alXUdV$eG$5JP9A8>_*XWxIoDS zd{@J`Dz7__LbBdp^b()d=Uo>a!6Fg0RoX-En z{{_I`Q=Bq><4Z%Dn671E;ls{>XN52;z`hb*z_c)f4Sb z!3M^^C6jb^ zU{V_pSF$UNtALTku2yn8$3SwOPB4UPuoo3A zvk&#TGnCmyAx2Hy-5K?t;{cN*@_~FE@CR@PKtE#{yFc^5;JZ)7lVG_}#e=)mYCBMg zSvxR#t(~Od)q7iy6z8r@*aG9d$N&a1Nvj>A^{E3uMV-nD?V4x}c6BQ%49FBsVBFK3)jX6+M$fy*4hHkv>G%OXKb(3M{ECIOMSG>QPfOdMnBzy}14|AP7r9%LZ5sAq#?t;#N z0=@GOor9bUo~`ZI^!_iDe&Mek-#GaBSRmTW0+h&7vFzl7m=W;I0jj6v0puyuw@wNczvm1kjGPBG9f4M7s4TbyLfR zIk^I89catIhYo9?B|j{pP~Rz-g`R+HY46+S?4U)42+F3mTJjp2%0B4>vS4n8nTz}B z&+BMu$A&CFOBA(*_UkSjcW4>?@qRgUAFtlw&d}f$K`D;_#TfLZoG*}KBfMYb*UpaX z4;%P<`di0u4*bQRqRoxN6P}NVvLWq4{`OF$zb6rEBM&oUbqmGZ6y9uDO?Mu#4mio_ z3~1;X){VcT-W|h`J11IL()d(%Al3zMsuqn`AIwhze*ljF{HK7^Q(Jnt6m``rARQiB z+_Ke$rRIXwM_y_ZFj`Rj^tL+KSF*W&Ml*9ZdPFIm9d7&9X|%pFW8&3crP*j($t&|j z*J$Yt@{RMHAUb^u9R2Z(G&HP(!g?|cWH-3%D`}~W0)op#@nr$$z)9;hOGMW;PC|p6 zd&)2JjhkY&UbL&e$nI~FU|&w08Y$&29%x5TR{CjhKKKW_eV=bM0LHSFVek4adHimC z?Q^wWEeo_5KbG76O5cYh9fuKr{GA^oeaFx?h5j*3vNQ+Usgtjqcf0PlxP1-$NazC&0Aqwn`2ENAJeVfpl8n~oy{U(odfj$&VTTqJuCQs>G%Jc z{OAAue<9y~|GV;B>G<7%Pk;RU>EU*m672x!f0@>OvVPr6XSG4)y3$LZ8trO#?l#R! z#=i4>Q-Z%BE+WJrp!|k_gwtSWG&)1kua+YqalQg399dYCzGT}K(}W*s$)A@)famKB z?ma_j&JDhS!mkO&3B*XDf^pq?iJBq8XiEkKj6wyxMyjBsUQ~Wys;yOY#NxAzGhJpH z4x&BOO@EUGM;$Q$`sN5!+Gyc5KLy)Y(A2#4{#qwHn2{m>ZR%qm4y6{94+k|9m{2&e59*{;eK0lw`{89rfeB%$uH`O zP=6UoeG>pr_tW7w0h?j9-Rf)6h*t*D_?$&=K>rhOcK*)~{$Kk2Uz6Ya&e!Gd{?!#rhX8uA#+h+zUcq%JtTBy$X0aW0aYnV4aDz$?AjP z#n@?%mv9C#5Ly%AZC!Y7{FxpWGaCr9+B&mfxU;-6UU(U2>w)lAEm8f8@d@y0*H+6} zQWy_9QI%!vi-?qjbB>v{tvhW%YA;W7s$x=Bv#XrS=p(7jQ_A&nVpIW$ZBx&{E2L!6_Um6b zc}D%0w0B`|LG){ic6xuG_c?>3T+B5kjQ?Vg9ve$pSCEg?Sz7=r%^~2&A;vm~dNt^O zsy#ar=dCp?Idk*T%Q-T42vY0Th;IV?#ozel*Yd*YMIC@I{^l>g4!;H_Iwv7qDmkkd zTcEo0YKkh$qwD2D>j;Y+&7d+kZCA3}pqeb=(3bj`DWjO^&||x8fU>zC=AvO)Sb8gT zQVgSg14$JjV-6OCoCPgBO{(s+C)nA5d2Ns05VhS{tZ6sh+9Ep)vScW{ysm@GFZM~F z!t<{~-NxTV`J&fK+(^lFvYFiYDFXJfch#=X`bJ`eAneah6~H;3sjePs7#k1d#it78 z<8BvU+nNp`N-S4tFDH<`MA-kodh_RfdDP+8|EI4!s}pcLukhw^z^A_NlN@0&W3`(E zV11&GHQ8HU8+lObCKwz%lC;#zdWaF<7?B}Dw3GTur&U#^pSyG++i^V84_u4a`+P*< zUTsXWHM^nFUXLHrd-3$L5r8{+*Fz+_j3(~H#eceQ)zAtoWhd3dVa2X#1F*vgSa5%i z*hB*zgqg@bt9ppLaFV35pDbscu{KJNZYmA9)d)hl%UAs27r|BWvn?+z>tvFLic`M``EdbuO) zPKK`gLlMK(A0&b6Xs?4lq8ZDD?~r_#aa9!h_%gggHb3&}?vzy8gy$Upj5|3scEg%hwG7(9dJ_chf=C`~ms`u`B| zp6e+)bEMO(^9lS??23?XVCcVY$nsIK|4szcu-Yp)1*e=zniZ#G0vKmyj9~Z42wUD8 zj_JME^1|uG9RLX>RT12Y<60~f&rpm}VOEl3cFg>H6;AKTC5D}g0mQ7(MdQ^@g3A3# zod^7k?)DULSM!jh)gpKM)bVmqQeeR6u9p`j2`O*1DqO640=^2`mC3B*uW>0ciS2Bd z2$5@t0qYgsm(p^!Qk5|g(3kO{#h{46Fn={VF!s~=qZ~B4&sT7e;0q!FW{pnd7oo0GoW|S=zv@N?faUBL0f%>=+23)Z{yD+_0QcL@fANIQ z3i9=<-}o0dN8!1WI{`oZeed$_f0L}(>4zJ|lBM^y+D40zpi2I#qdR}6rzdbkFoQf!fMknd~7_IxH-Dl+1u!(|CY%SCS8{Xz)=j`E*|~Q<+ZNzF}R1 z&Qcns#|SG38%lVee*!woJY-zK&~sz%*QSBs=ai7Y$>JH1gmTi}A>o{f@ccy`yKXGeI}G1a}>!L~xFzJeUn^W4g_bcfq!(=IhC zaDe~u13%A|4)8z1`}kM`oe(WMqc45^*IvX4pzkiwvQBRa`g%|O$t2YK44Zo%0(9C2 z1)ap`kO8r3OH}7Cbt2}peCgD3B>vu#QHZQQW8!{T&vf?7XGI~_ImMi_eviy z`%gi~R2-(3R^XHL~U@s)g1mqFEHbXhRw_mdN2>flSoECjQK>8SPysbPVZ_FU53H9jM0MH#>>3#ojg_K-K4AK_wp(x*bd8k z*Vc5Vvg|v3d`|0O(yZfp>S28$P|U}58lP;;2O!t{RzC%&!FTx@W;cP?;6G2l@K^rh zX9fSSeRm!3E8^B{w0IHuz1DeVe#UijtD$isb)En9}Zbx1a62Z{S8&B#i zFN=1Y>!VNHzDV*?#u1;_;{QP9xThsL16zGV>x|c15Gy_T+*a$4&QM(I&}nfHyyNEP zR}aOc1G^^88KGsF`M7RLYa3(oZ638dHCQhYO}cY|^`oxLXiQ$}lrKCbI*qHOGPJ39 znrSSb+SPJ$0yM>8q!~Lczh4Hm)az$$CcRStKfjNn1ag~x6v)AT0j$AcEn$$K_&?I^ z=XHPd=j6GPgTH^t4;}!<^9l4=Lc23`I045S0?(C>a}9s{v;SAlB=tABQn@KL^?yXF zZ+m!pRr6zhitGR_l;OBWS&@{}8m$s7UlimfVTHgFzdX8h<^h+tXZ^bLU2ivw!!QR+ zOAQXEMwIO3zYXw(zX!lRiFV)4_)M09l(c7b=APRUDg(1?R*QQX*KuE%{+h}*U z&xuB%9-;dYd0Avw4J|QVw=r9ncK>umw$j*SaLGj4c0g-het|`E3arwDKgD}zU zSd?fb(=Ii_J|z+UMBVbX;$ORqQ&4q0fjs=u#SuQ!2cuh-CJ$2KBZCOXE@O*_40C`k zQ3m~r{3plH>i(slmFG&|__IHdU-{jC+`i$Dp7%GAv{C1eIX)gCJf{=zxgUHjf9rqE zKVxiVj)ONyJK4Je{%FsvdhW2#ag4QL{|$oj_G zQwCdekXtzDD(jU&uqmO>OV*F;yW5xOy=;162S7g)SEn*2W|LQ?;$Cnz&C9@<*bxNe zmF}b-oH1Y$gUs-Ibuf3j>GT*6!;mN5m1~v!g0{l1z89kC| zo;sNKdMfv?LPglx1`x?g9`!!}{q5EYaGMkaW8=}`ki&AP=2ClGpf{azp(y5ICaZG$h9O6bW7Hs5k0zjmDm z7gGk%)E?KbK7elneEA;((sE(lXpXX!lVNcZ)8d(s%BBqgYcaYCc{72lq+^FHe)cfB zDq=hE*bzVjp~K&0TPe6}U9gFWFG^iAy=USyd7TC|`UYU(M&gC9)=uXp{^thl)ViTk zEnEE%(0ftgAsnSmGMlf*y4Z&>vaYVM-e!hd{$x_|p4waSFD%*6%94t7e>z{?Lf{vo zX>@HcAT;uBfb)4S)>jTw543M2fu8TUF;tA&`-M;ahtCWCfBFZvu>ZeZ;I9R|3?@4w z9RzIB#u8@)-hBN1|M9=PeQV%zrNaq09(|0-kPo>xy-jqWtk?q@nBZ>O0lCV(U}Rv5 z6s+z}3F&(5Yh;CH;uUKg_zwP#de+nGXh@h2cA6L8;_Q5nKLXHK^7!}Eu?}Sd(c;P5iQ|iJ)8^X88CvBhhmMxPR5tcUTQe&GoPOwQCTq7vDVRXyxnh?yD zi9z7A9fRvWfb(K zqWtK~q+7Ou)R2ebaIdITR`+(dH(GOr_BeRZ1mF55z_j~E!U2-dKg$XCk@W_dJUI+I z}dP#_r5EC@3;To&*}sm4$#dB zx=`Kw{Md@IyE-%NB4AXJ^-MQJ@Yy{Oo;u?wraKW}3l#r@fh~z$|1JdpJE7rLge{;S zkB#7Jave@Vc`W`~UO0UK-vpSq;Zd1nxJA+0Giw*j6d-Rqdc1cj-<4OIn6FT!)HN6r zwy#EjA{m;_imEhWGwEPo0p6s8cXQO(a8Vz-#{jG}J?Vb7O0@wpdmZm4R!Bi72iEg` zh0>So)@P;XP;5)=wPhQ?2R>LFrnU>gyOFy11c|Dm6J6aM~B z<+;)g{5|X+Q=$2xK5Hl!1OHNGC2xIP-+J#m+1E3r^8n<}%45@g;D1$zUPV4@O4uos z00(c_%$>MmV@FYDlM|78ojzv%40U(~VJFT?PIE1dVxM$)(|I^Zy;9ooYq1B|l`Hud zzw*m38U=V!2jI;Fyt^(WKNWTcEBQLC9I}hIZ~ZGqW$ug$bg-drq@vCiaXV?CEQNch zXnRXL5hQH16hIuy4r?pU0t+#LOIV#g52JcZl1`bG$wUjJ(_rvVEgBc3i4=|Eu-T=Zvlw#+DQH`K-H%c-&}wETME5$Is;Z2v%HDX9T(sI?)RnxaQqMu z-s7Q-8V-{%hdDu!dwchPA6mzSEwIoM?mQY_*ybL`V8;vX4zC(ld+#!B<-WF?XkaFV zj0;e~{4Xg^kV7D{3EjYe8;HE7lJXy>nr|`#`_NyzmO?`WtZdc9^FjyI!5CbfXp^!S z&<5-8g@9?@m%uQLTchQ~Y2l@EXr;+jIo=N=Wxq)36#C9Z<1K!!)!FZa} z(DLH|5$?yG2Rzj01hw*Fr_TTQ8}L8A-=Dq_?+NMKcP9{k?c4u4fxV8^U`~Y}gLs6* zRf_FW(d9A~-}sX^QHTHG`6B`2_aMyp`g|#(!d9|bz!dGh=IeT1?-W%FT_L@7Au}sc z7ZHq1V}70|;Cf1S$ik(wg=k@xjX~dOoX)GwX6k70&a3ay2*BNWf|1^})S{rdC@Q1? z1p%uqmQu9lel!t-kZKsXzLSY2kCtwI`(g`O4It~-WK07=F08rob+zsa7w9OU*Y%}xEp=sJP@$g6u;Ma0CzYf@27pXU(G?Iek@g6|%XDbZox(6m>89}DKrq0`~AE7Xj zkm1--EcA~r4{Ao%?rXHKS3s$8v;@RTwozO6WQ9RP3z$#fhPYF}czxSrMltLX(j77yfLO!#OG zrE&Kcb%!aa*Sk73zrJ%H&+;_~<6w=O0+*F|ep=>@4g?D88k=U=QI|GH*{8n$6StrB zeNOQI`@i@9mH+yW;I+K!2o-TwvMLrfi@?dUZJsCBLI3mm776&R=Y1S-`z?f<6HpwR zjjTL6>7f6r1wSN!-$D8OaNDKQBD%g)_h`#1Aiy_a$8Di+M7o?sq2#r25C?X|*+Q4{ zsBL*+Cw{FWcVZ=nzOL`YJ|i!fUd{oq_ukDDzp^~4qkz3OM!RKQX{HtG);<;{mc_G; z17UK13eT;zxkt(&tTYk@kZK%(-f!EAkbr~{z&xoy3|VLpqZ-aVdLaccPpd5iA2`2O z#v>vy$}`031Scf7T3u?aO?P7Va{^}{#t&!5D7j&y+k zKmX=eqOW@1ffkGwuRQY?o6H_K(r(v)R@47867Va()4zD=Dd}(me&PpTQ(oOWJT%>3 zRjE>wgrzgF$+LVU<<4d3*7~dtrAhtXe`{+)6TSLM9rKViw02z()pYcd5mUcPqq?GA zT~NK*F`helK4Bfw%Q*la(RcG1U)XE+Wp8I(Ep`p2LI!` z`G5VJUyd>P_Z4u6H}liS4!k%=7;UoMc(5_X1&+b6UcdLwzudD^preE20oH#p{{fO6 zKvbQSp&kiFWmY;aTFLj3qE$D!1SFR$0!yVrK_Tb9S4R$rx#a`C>+4=%-H1U~P@JpD zF~C2}FW0q;;7f({3>1pHF$u>90sz`v@G)%h!BQ^eSiR?+`hJ6UqJ`m0v!wj{6oV5$U-Fe_z9fK-X_d~u`aqV9hg zNP5}t0(ikQ0Hz(>P!V7P$X+T-&1NxoiFXxOHS@I~uJ!=Q)=e#3Ill+8)gU8gDM}B1 zA`Y}ptr-;lRQ{|88bE2CE)go%pIg2C3 z&ksLSI-Gzb67cZ3e1PnGJqO&n`^U9jf~ZjUlxKY8W8xbW189 z%Y&&3^oo?QJjEo2d+P>b6;#8W z^=C?T*R)Bh{lu|Txe6clbRp2>Q9^Yz2e#4HJg64JNTVTXmk0Zp>HduCba%XP$?WCNa5BActg|YaG_( zi%fNp4$U+!wFvo9h#hWNPjy_zDYqoIe|VbwIcov3GAdX5cEHaHfG#?In%|1|+g=fq zv?cZYz>9*vfhLUJki=MGUJSw9=h080%dGchu_F>w#kocW-h3WE9Q2${z^A_d-S`>d z`%`~?yQ@YA;Axkx>yvi=#*S*W@ic8qV6Apt?zQN@RU6YTX(3j1J>lQw*wVC!fkg~Q zLIyu%IV`W_wY*?@!9##^=wbJ3?Ob>9^} zr|P(AbAPmD^M+`NRvt>!gwGkD6^al9QdIcxPZb1nI!HqhMNH=>MGvGfhJU3V@m&yW z+n>N3m3*hA<-R&ZL)bCPfh5(Fw@$jbzN+V4T{#a^V=LFbs)LHqql+^3;9vR7 zLp0GcZgb#}2g}*v1pK3a^-tuv(%}Sr;ZuL@En3)c#dox_sE3#bpZHj6lz%soRZdrL zsRJNCfy6^U;`ZA0M`2yf!}zPZ0SS`|VY>PaeMvEr=uE=Yzm^wFFL(w(!&{|fOCe}S z;blF~CZj7dId7X1Zg<}5w)Hl#g_Isf5*ggMeHUOXqnxl*d%j2lAaw-*UJ0r4y;~0F z)yG1bv-4nRu?m9?po={J|9`LVRMJ9~@N3|}R+0BWB^moMzyk=pB#gQfFCvT0VS8?@Gk zI~QqcYuw94C{2$K{l*qN;&{RIat?sLi2&Hr6L18=>|c!x6@c=q@IZICi;cR{uc!Nm zBrQUsgV6YnvKoYGJVxC1gw`Da$~KiFe^sW4M0F6>wF=j5b!5ng!6;gzVzpX+?L#(o zrMFe+%e5=eYXQIC*A!@oV6UBB`ZH;c5w7ul@}mz^+gw(oylDtxcIistAFZIx?2=fB zP-s4N^&EekZeKEp&!`c=@H0aA2D>ZCA3cfP?#g#(A>Vo5r}F@o#V7LY=_fw^`q@JN z2l#s!JuEh;&*^&_cvd19bu^I85ILLqjs$8G&x1XGCB29`q56BK$2*@Z>@@ z+NhXp_M$~NG#`J-_v|4+^WQRFKZI05F)ec3+h?M39kcJ-DeOp3O*rhhClG=aV{t(& zbyfN}-EbJ+W2cDw%k^Xi8aQEP=*WnOfR&QI7*?1OnFoN~XsM$Ejr(RD=pdR&`Bca- zxOT;y(pA12m-rKz0UVgPkS_;oN>>g68uxorosvPEScHsir(c`Ny*`SWgE$W-Px;Fb z+SJ_nqK+)*BBnN$56%ThaV%hjZMW=n>*N3*&lUPV4$}RD`V1ZAzAg&t^UCuvlZb}? z$3#gz#OF>@08yFnb{1mi55UcHIsrfa1CN^;pAlm`Bl(km`Sumpw%`x<8MR)zQ zKfS>cd^v=>jU-YxR5PTr)GJM`xg6&^Ynmi(G8{JD0t--9oYj~7L7cM7q$`dZjw^ zaUqcRMH6HcjV)WX+`H(z{Z1c&T}!(THmti8>JPwQIs$-?KvqFKBLV_`bm>RY$~_gnvvMQqUD80R3$f>|`@y-gj}cn)b22BaT&vK%j%e_!{*2{_VI ze)aE2-@g0y!z&L7+d77f3G>0XRIC6Jz><<0iI-4gIV>ZaybJ7XX3WbtdQR6m)~We178*l;NW`OU1!{ zq3y!@j8e(^DqvYhVU@{@W)Mi4|4@y(Zpn-OAkfQ10N#;z?fv5d0CxF7w%x%&Iu_6D z(m3v#$^&*(W3#J5G`!@=Dp+UaY#@#dZw!i)&$3cTZsCM{K+xL~9kgDhPgSn>=KgaZ z|Ezrehdw7Cd-bu~GrxcLXWx`B|It_FtKa$^=}y2j&^ifH#tVaueBfDy_>p4J+OTC{ z1-lVrW8lsame)4Am9*X;-FF9}`is>T?AQ;MEPj8Shops$i-7Q|TL1~Ni3g$-9DxM- z8hXw^k_L^l+c$MhiLQV_rv74FIy)bh;BHNEM5g0WxZ6Et^k?NU=^KCc2l6Yw`;Qag z7C?*^sVrpYS<<1QDAd{Jb3gc5`P^Ul>@8yP@mKHMe$3~lV}JZR4-&h_rh^qf*Wf?+ z^ET;lu)g}ozb$efpzF}_U~4k;l<(HJH%GuBAZyluTLho+<3t)dBw)TMI%Uwt6{ng8 zU(*HHw|DuSnPsJ;J=XU znAV`{UazHx=msfWSirZ`swJ3~M3VvKI_Dz8ihI3iD)Pu4E$zWKyCzp2EK@2fo-g;f{Vu{k;- z@DfFF(1J}8P;tW)9{=M&f{q|M3Z~LP^2lyY~p!e_I$aZ^t z0YIN>q!enVd8qt{XzLrN`Uh^`vH$r`{AA#ZrgI<$1!$F)5 z3V|dr2;h5w|KIuSe>Q@@rz0wG)R~{N+QmIWltD2X1DK?$J?L;@ow}Q!){I4?Owr&x zIDL|vCnlWgxtK6Uk}IiZbZ7s~s!T1ov`OXEMWgg4s|`PnyYa8^oRu7jyskShJQ(OS z>+TMD7hPsFPp4%X7S#;dC)=F_vUD(%}Rgk31fl4(G(r5$ux+Ctac`(3jAZS5j=9~$K}vzpfv z5sVNyz^08f`ph<&pC_ZGLv&W|`D=jv;ONaU z0A>^(H;_JfU4)fSv5SsvWBHL6as-3{q=CB(L$Jy?(?l?}mFi4C^X^YQ2>d-APQVv__&4rfOp-;YjkCeT(0x0>e(8*l*B3ix#H zdYEfB(%25$AL$?ctN-8ak=0eI;dYKnzK$MNMvZ}W=c5efMDzw~ow zf4(-8`fo(}q3Lh}{`3Ftzj)&`{l>P=SHJbU;UqmMS+TbBrY`Mw^=f^*2#&Q2=!>FC zFiG`oEpyvw>5?X>8#vwN4YkU_roUJsQX^~o4ZK!ppk;(_?mr_hlwRfxz@4qLK-EaE z4|IjX8Y<09G4U$aJu)b4I4e^hQ+o64<*Z`8DmWJ1UUp#}7~^C>EIzgInNv~vuq)`8 z?zLx!gJL|eH~;@9Kl*=`w@t^HfG_=<|G$*k=XC40l!rrTPzUn8jEt%Zogs+&8Va53 zvHrQTkeIN(*>)PsmZ0aA;w!hO)|LvOlKZ;4hlIyYYcDq6}o3S4(WaA-~5_<`@P5i zyf19D33RGj91hd3zL}5XVB)9W`LSDs@0h3KP~z9V^RHxrERxLv9_nDKWsghK$+HjnE}G)ep)@u!|E;@ zac!&!2zn%x=sgIJ+1pRFz(YTj{cU#to{li(r{DR}H%8+3WvgP%aq_vuI$)s!_(K9# znI*E&nuA3Hpb>bbhFBsixbo|=O~Uw=Nr&c>=v+Ak_4=wK3L34cY|f-)9c&}Tp!w^5 zes3Tvd_?Eu?(C;eS`Etwec|s2@O*B4@)gcT+(}&5R|RW-et$d)_~+mJZ*KQL@+SO# zoDulWI^}OwR?8w;(XDU>?%8BmaU_pW{-;0oWAe7?)Um&Oz8Qe3uKh6J?towgf6trJ zvBRHV5!BsKoubeLqRl}eu3KSvycCD`)>zU`raa;6dZZ)hLg{E*D@KWQm8f{gs8^+V5SkbI6_i22p(8oXWad~Vy zjMG~TmYop4BtE4$1f4{?Zy+yB&+FhE_HD9k*+$wm|DsK>w$NCim^DGiVIgbHAwW^E znf;tX3x~kjsRJ@gBg~-Ba^3+Z&zI2iddQjR;5|J8SdN@O7v(nq{C=K%E%_}JEGNJn zA#ZXXU@og2T7;PA#eyG-)V83l*`pk6YFmV22Kv1o+Cxlc=SdN!Xl+DB;6j>< zT3U9?2DPp8PL@acdIWo?t-X(@SO;>lbSNl1T{%ex{8R&6ft+>--eyBrgoYb^gu|ev zKkfatq*G?v6s%DI6-nAEpS#jFRIMzkG;l{TC7%)aK%3QTpTRKvRAoH&@Dm2zENo))hj3dS=K{#JwG!l~4O-qPE? zlGyo&Yt`A#JY$;3*?l$H!%RKZo&FnBvHZrqx&aH>C4pa{O(36ZlqMq&2fD1MSxmp+c2-xaVrGf*#&&?)tk!t{p5_uOlM{yPBDp4s?D2aIpP1}y*^PfWZJ zdxe*K>eSF)>x(>CVXz=D2Z7Z4`=vSr6a_GypTKN%mcZ$7r@^X+VbauiDNQP2Sh#0M z4Pp6Hr~1ejvZQHMtqRJzd5A-Si7jY1L{qfnik?jXv~N~r99IC_XrrhtKMe=7gTo;3 zmmZF=-f5*_$m=TkW`qyhLy6W0W3L=UKoL}U9xGB-r>*ie8OSRGRh@$e zChSgk<%2W3qm{Fe|JuN=ldZ;`AFB!M-nB*BY;brmMD9k?ZDSbYti1Zch=71IA!SJw zRH8&j)=mu{3y28QEiW-Q1 z+mPu(8gj)@(e*Bb^QT{za249YbGj{^0m;Wg-iPZ{#fmeVL+yz#MK0H;V*e50tx3rp zaMr`|*7dH-V$;kYE93~0RT^m01fF~xU;K?t$%9Mh8JIlipKhWJ!d4p?ecdZFL6BumU%# z2l>vvXHdkQx`H*%o%;gEVVby)rB|BI?(xxpN;(qw{6DTGUj;-CWgcO)skLGUSlZC| z>b=Uq2h0)hi=U#>BNq=^*n1Mt(6?|-C-r~ZWS0yT9Y-|u&Zkh-jYMZ`Ja;ATbmgwy z>EOK~ZICn*8|Wc8ud+~o1JjLPAhe%I+S!B1`WrWDD^B6x1SkT|w>K%y6VZPB8z5Kd z*&TrT(}nI?$yRfX7S#4u>=77skK|hmik^!=-s+&tgmG2aYh`Izo3u+G;5@{uEe?7O ziJGVH{SSi;XeCIY&C^sL7_RrfF)? zd%sE>>sx_eh3p1>;uL8Y6-aqPAD@TfZr#us)9k5+=P|791`)M|!l?zQ5$LtZ1@5XV zsJfG4O&$$EJjaw&2Ot^S7pkkT_GqI-MW(j|S{;`kD1+|rmy@?hSC2sE`tr<)-76Mc z<-f`ZmXZF?`m51SqCS}l%R_&xI~Jg-U?-yd}u zZp_=s1IGJHDhSoj;YAOsKAxU73~ZqWAu}BSLm_*}N*VJN++kF>clt9S3cb zw5z=P_kWDcF-051K(-|8a#&R~|8CN(tk{YMENTWNj1$Wy;=b~|_uqe!a{$lp0KE6! zYYE5AF6BNZkFA(z`gFAXIoY;OQ+A)&TcI)*U_EV&rbmi`9sGmpKwl)lCZ)4!2(!YR z0yfPG_KoUm*s#>+`{T8!$ENc)0gBaRJdidfi+_Me$pxr$Yr|M3H@Z&UG?mlNWV)_( zCqw2SSF-J%YrUs_7%briDl%-c@-Px_sutLxGhhb5?)_N-EL(js$T9F3mDR@!ehFq) z_;6u{{&DBubX61huc8M$mtFrI_|Yly9UC76wAOdfG+{a+qSo}fMF!;QZvmtVn7m{{ zxtqJnUG%yY3{6ED3gwl~t$U=2o5z$77(3Zja&d`&d?bXXNK*p*Rehb8_w6>jSzRijMT|PPtxFa{V)MH*dTY%0&q6~Jv zRja2u0MC^+=J~A>ozS=HfDIjP^*<_&jKv9mW$8&}0ohRrC(_%r>Wg=FCYP+O9GBk2 zgEb}_OmWgBZAnX(Ox(Vg%;0{FjU4uPY``6SL~cI`{OsxZ9e`K*dZ)BESk_ewz15kBorkg`;mYKSfPi>8C#z2MRjpHZ z5O{qMa37aW!=^9?KA`NA=EBF+s&!svGPq;=K(n^y+r-=GE?W>CjC?Fdk*UhR z3raY6*Z24%Y>$Q|Ko&Z$&VnRe-mNnj8^}ZeGn@ah9P?ZM zI9H&zU{ zGCF(lD7132Y)nL%E#+R+&FNVu!CiQaE2@RjuQVyT+6vrRMqva@ni-q$Hhul z*SDXwgYjzGZ*^X9%=XG&RHSly!+x-*Y~hYJMwjx-l*ANfFuRo zGg@1;&`{T%hwyr{PQyoH41mr13lCa~vVk=>5g82)Ldpa=XWlpd^bh5+>0_@xCWKT> znm=(jATq3r8-~)Z?!?D6^m@ZQsP^jB2+5;lb8FsrEMi%85|I0?Ut+x{2kkt_S373V zoR@Nl6UUWP~v=MO-<_C-@@A1Pq?-K0DskV@9ZdzB4{i-a>mVP&}Bv1S|p zOaSP-OWbokod9~!pirhUmef$0IFhD&K@$YBFuInR+XQ)X= z@V^RAkUisZxjavgh)8-?J&BNdfB1xFR5GdsO9~sk>g=WX^aG~hL^`c?AMH+$KtgcH zOy}4_|7-MUMeT=K9XvoYO74ABqOy*G>Mt-h_fUSn0zG zD%G7S0rX&m!u^9k%YKOlNL#!D7$B~|A6P50TqMqgE`ACCB9HI*P4vg4A2|*I##mKq zXpay#0N+>x?@Ph6--AJJ>r#?!?#VDI(}v;H-AZ(&*KevIOFEP()T!4~BgJJF+3o_{ zfxQr4I))_ZK%CuaJTAb{e?YYI`H{R=GK_Jsj}S}b!Mk_h$#>H=8c^G-u;GM3wX}60 zT#P`TXo`zDh&Ch0cgZ+@KKrrhDTj1xdWg#L9D$s>-c@};ohSWg-Dyz(0A8un7zzY! zB!M!VU0(yh4wqm8@3S(Vg~8uDm`8UG&giQ%O^*UWaHS~;PEr^ z0_g=DfV+2F*o+bj#F{rn2Wh683psg|hWXapVfTi0LV>MlhO+QF_@X>`y||o4tPJAb z#HzWsC2)(MP_$K++5n^=9|5@XMNWXQ!;vT__nU<|ee5^`;6|YuLj-6nAojF(k8_4Q ztg^G*DOOAEQG-a2tdwiyDdroe-?m^agAVLwcv>-9Nf2uT{!TIR1As<$*sOPuJ1G$i z7y{tFx!fdFc zJ6Tg=q2)jJ5MTrU`(*u|bfx8~U8PnNtPR*#Cw&x1={l`-XAQQtY#77T#afleQo$cw ztB3Oea6y0Z(ZTVZ{SN%`IH$-Y%iIa_XwoCh|K^YTDJJDjX-4ldpZ3c)LHu5M1fZ|p zrIV9bBwcpN|8cMo>7W6-FEN_Jfd|TFE2+u@eAiz%w3K8J|I> z&p~w{Xl^zFPXo4#IytCsub)SK+w}2Q@02+yRx*^i@LySTb}-}0z|dTm)C8@zdq6_{ zF6~STnIf*F^gFWBS)7LNDJ39*oSx4cPjkNS-{0k@(Ehr2(8sW=8z2N_7T=5xICwMd z4*IpsfFCczPj6fEvVP$Q$7-EkI2@$^0_ri#%EFp7^dc;0kY6859BrS?0eGnVJ|gAg zqiU$6>$T@a;|u*q&&gmCjRidp$py)(|56zik;H~{Aa#^41a36vbgg-ZXGpMflDP%) z$YO;D)NR9){(dUnPPcTz$2E%YmDd3GjNS&b4hP~u!?3aSx(4!~IAya*AixnWBEvli zm=3%kpPr%YZF0V`RHUV0kO41{osPnMi%Wv*C_^8V!s@kp$Cr&fCWT=`nsrC*;}2hE zFdX9SXo5Qpwal&8$4@Qy_od0G0SVN7k}6f%tODhUY-Ano@AGGGw9MKj$|C^DlPqyx zrqC+jD_kc?C5eFnowEA@J$Do)@bGJ|>Sz$Ill(B&o`SlU|hMyjKuk$@S2|8Ev+g!+bN?YuCAA zEAUJOp3L|29Dx-Q?yK;D)&%dSYr=Axj}p*yq#I<|$0}9JS)xZ`J~d&F*LH64?CAaq zfF`+>RI4ICtM>Ow1fVdgO%s}Wm<;y%%79-7=wR<3Wo{dXSuobhk~KK{{n_T5ozOV}BZQXb>mq^q)9 zd7*hm#hNI77*gM-hVsf`Fl z5~|uC>Ej>y0eMWi9RQRBtL>2AVw$Wr1e=ocu_2g3iJ4rEQ9lw~gZ@~c6>Q$*+&NEm z>g!k>b!|%}Ukzl(P$&XcLB5*vbV^RXgD+zv6o(RTbuG@&YV;`rWTO*=lcUZTf8&>4 z%QL5!KLltOR^Te>cnNfE-);gCw7%iN3Imm}C(2HMNvQ#JEtMX?+}*lmJp>Ru`i~{4{8_#mERG=L;XQoTUxCu= zF+Gvp$#ilYfR10|iZve zklP;tP;^7&fj+K9-K`xBy#l+?0KT+ACaNN+{tXmBhABUSFaDa0qVKaN5k zaYQHibUQQh1aj>>xDG6a><;xmzY6$x-7g-oO|xsjnfjQ{N!1k!N2o$m*+^X(ohPK1 z`8B{Houk${AJeewwxLY#ivm=zBl#}iU#+gwM@Ip9pw+O{E&@8Y0ASf89|0VdV^D64 zLB>E94P)^ygA%f0hJB!Q%P~JR)HtP2#hU;szA@li{zEi{yDTYbWNeKMX4#YY-oBL>j z3Y-a$i^xNnU3yMm^5WX6u`l$(vL<*Gwy6!Ce{h0y5YP(kU9$2C>HNCv$EDrdIS&Jc zl%KJ>GDK3lDzsCZNod_>HT~b*+sLxe1`Op?^HEPakBgAbF5+p9G6Dd(ab;1)(#HfX z@Wo()(4i1XeYrjFU%USE*}oA7lMSq56x00zKM3@!4!{?`^2@K!t1dO}HF-+xtyUL= zLb)yqUSR2z$ntJ1D}qZkCcaFx+e8DXB2{lNQlL=J+b9CGZ4@udjQE|PX0kRq+}C{F zmOmu|kgqsdTASDz3~NBf1=ie#Aynf5O~UJ`Byhs zNb$6P=X&8g>i*mx4P4#bdwV|=*g3>;qyqBJ(}?HRj|{H>N&+|5%YJ%7M}VA&rF$(( zuqHTwe6ep;)~t23`pNsVi7hps1?|euoSHm#_kW~s{K?}T^SzOrs-nGHZEvDhXvD_I zSU0iUCsK=UdpX)=nEZU551ff*1Hy^4Nq*q%0AvL}BWjhIythX_1o9OusIEPsEqMcq zibGsi>rH?a0Z3#}=*jZyytQzSGkYiY8F}XPyb*x!KcD~O^BVf}WT3v2Cb`_y1;d-P zPn!h7RlP#VjT@mg_#l7@saGitX3_;e<$?ZhyoU(@s$U<pPh$u^-=Qu&_>2~kUB&G1@NclC7*Wq zxE^|Wojt<(Tdsd{%MPMQMw=`svE2HS;iE0qWF>aonH90pPS-&|3B!QgkC5j6kSLmd zIh_Lq*>%(TD*6o`?p{4g0eT| z3S$}WUTIgqgbaZ#cr=-J^uUL~3YR)IDF{hPX`BXk%OHv>up(&DAHGz!V3gu6PzRzt$0G9z&Nhbd%N+4*(Lc zW(3B!7Frz&lilGl%nQ&L07he;!oa42KM43+zXja!Q9&)A?xArdEO>$(KQnwRG2Vzu ztiQ1>(7t`B_Ql1|O?t}L0OuJ1;Nclkon-=VvPl96rb0Xan(qni=$QdZ1cDEGUQLD5 z)>XG|lp+$A0xB3Wax(0|3dtKl$yu^Ghv1qxRRbGt#q4`~MZM89R`Gou($gq%WMfX9 ze2E_fdR7NOU)|*o7S!JYAV9qrox%X$(%qemo+D1EmVQuHTv*Y0056a}{Te-3_%r|? z3*b@~>^>5pQ^8u9iS5>6(TeaUwj27o7nb^N>Pe3P{23>sPj*|KmZ)p{;cBIKft**y z+jbokUNk-VX=dw;*4f59@>eS>Ad23#m!(ZLDkEOXcmm+9*C7W1fZX$HJt@wEfBMeF zjc&S+*}eif(jfk&I}2yt+-4gs&{d{=+~k=l-{Yxn1a<@x|3eX^17B^yW#)0EC!GNR z$J`@BDvwNHUud2Kbw$YOX1k3{^KDLf(% zVV&9_d;2Jxm_F0-ML-^IeB1Qn@BHQL0}XD>bKx_zsjM++Q(>{Kt#bW~)JnCKE$xl# zO$r5-KI?c|EZZHHl5Vm-9*C69Lij@>_g5fG`r z?oHP=%^u|{EA`O+PP*reOnpRso%KmezNUkztBrwTsF#65aEj&9NH)z&3_uv5D+8K- z&j(?xD6|5b%0NGuuz(@gACk$CZgGit@D%5miAPIzwvjSpUg*t3?1wH!0 zoOJC(Nt`Ul6TS`bBkv4dD=QL#jPbatWs7QM4cod3Oew5SNxP}VGMk%59X2i_sTi^W z%QEy`ecNbGK#R}Y6Wq}d`m0d+K>_RvsQ66ZPdI0&6u{5NISdXTOPnLYK7{i9 zKfgy%59h?@d#qnW_X>;Pj#xfNmZtyyD8L_=$e{N8`rU4pjXp3v_7LFLzVr2MSyhFH zrwWRi0zP@BwNvbz^iI1zOSQppSg+I%yR8z=V1lxO5)eZoAP4A7rVL9J|0vZ$$^riL zU(zzTEO;a!9F^Tr1O0522VLI)2uPPs1InP}(%k8X{1JfMoxfNVL)Q2iqz9#FXa229 zcclO;TW{@kM{owqY;pm*Knm-IVKyPqjce^lK?B zu^fMmK9G|lgW6%HA_rL~&N>Wox*gxe@IL*qACt!<{}P~wB)!ZlHVbu3tP@BSECf|9 z9fQz&ueS^U=w|NPori9xBPtWSU<*CPK2xpSNj0G4ZHYQvnPok<@j94Vqh?@~KxhoU z`7g;RIS$Efkd9CEZO*B)f++T3j{xW=7I=G{q^>U3?OEx{iDevR_P7VZBw;^2h`7a0 z60ogcB3fsxi+#eMVtyJ#X`?pgtI-r87_m|hoebok(9y?Il(R(+Xu!hE>Z5-V@JOG2 z=f{|5XRmhYX)-Rd;k!C>6poZR?ea@%03!SeMTIx6$1_=QM)?{)mscV2D$oEn2>kIZ zddZrZ3?Q6N1%)C3&G1>aIp~!U;jXytx+S9qLUX0tdvqlDz?M;6?~5K&2mn6Xg;2*L z6N9=DYX)^-4uq#E?>9-us9~0W`eT1t9-C?e;7X)z$T>|y*K^jNBAincpnf)8)nY%r z&&dE7^&5NfWk)gM*Ew89}9-lELAj0L~@QRT(Ex z_H|U*fQlwP1d3RHO<@ON;<0JzTpJsl6m*2GkP_3-LTMnSU#wsGFv0EVliviWV?#s> zww6TuTzfWQ>kHgU9#+vfeJKS z56cxom|zykC}-C?7_&4wAk*UW=kf{f=6k=w&+_Nd_QQhABi9w6j*C|h2e#+$pqi^< zPs;ds#W%JgF^6@qVbk%HR{+2E-TNYPJ_l0*Tg+(0&BIwY26~h35J<@*x`P6S{+G{a zJHMV96iPqz3aSV=k4fJI)&z!GdvS+X!^Gp-DLB3<7pW^o(}fCxQ#x6;zE+^4;_|3u zJCR7apXl4BPgk5Q`r3DYUmlxoUj{TedDSR_!z3UAvJ;zXpo(&5 zJ-Ih&xuzxn@>a@rVPA#6+QwNABds+*K{~MsHIZgrDis|~_e*VyaDALQ+J{sHi;n^eav%gHVW@-9>*oPHs^zVV z4uCB110}DNrbNp$r1QGk8t67`k}8Cdqwcg+(h-4g0QA0bjKmzwo6kw~CGzeUzw*n^ z>I6LVBLI25EvsH6wp#y&t-LMr-7HYIx++als(=V5++(ex$DBYt|fEyflG`mfPbzaQIK_}Q5;UfV9Lp6o)8)z=t9`Y}7 zIH?B%9lUAR3(4Bd$xsL9jek%m!oZde2l0G13jQNX0nUsR`mMa`Kjw=NFFpt7r<7<6 z)2P$&sULW}&Hfsk$$5Yl%xP;!rQ2nnM`JL;$lKYrw5fT>Ekyv3=ItW0L_oGOuR7+Q zfBu2fFhmj~K4oD3Jy(;E0TZsC1lFL#)oha-BaVqHw`#f--loU8`0#8DAT;)N@!ju! zh#i3SML?rK)l`5tbl=^l^;f^dVZ8B`4dETSLvRkkFO{yqp2ozCpubRs9ZwZ|{rC%z zuTFsoi@PN6!2npP5#-pscACnci}vvrz_%aytAOVj0O|8u*rj~glLk zHtFmz*!P(uBO|hvkwKiOklF5&NEd1$msXNQ45L~6gg;ofy0?+C>k5m#$9Ey(i6rI-~ zme!2qD4a-?EwJ0(CPrp3jAQr)Q)bjF{L5FzPXdpo3XD)~eJg+G)rUF)a4^U79}}5^ zqwx>dp@!jY=ZrQ5u#pES11;2Mfx#INSXrT!ROiL8Tney&g$+joZX16WM$roVDDW%w z5Box?B!cCdBtG+DZoc;2{i{b;>GmeT@w(GA=9tpLBRWWx)!j59Xw?a}i@60>D5G5J zMO!QN47v>yH`rGenG&uS2Q#A{*a-lGRCoP&-E2LC^|37&)6>`}L=G@K4+jA)+qGpZ z89U(bMxEQ>b6DpEqY>l`R2@7ErcP;IJknr;%GB>rP&7;rP+Kc?kNd|S0z3`?>O9@t zx5)jBRhxyj_;#Va&D0ZytZb@}S^>0|{NQw+MGob%B>}cfWr$25`h78FzJ}ftB1P{s*4jS!Fj@3sDQuRs!mR82C=)DiA1MtP){N>l{ zvbZd;a*C#CpH2rsNf@?@O=U2N0XhZ%E?sz62g*E48etK3>%9+UM#xZWm1OLSFI0v? z?OD6sKf_QVxIZGcGm`o2$TFxg6amL?WZzMu@di zI4+Z1umyCqSeptiJZzO38FG-Vr<KIHL$D3tq{rS!SV2vmIDQ8n-n^Ms8#_U)h3e~WHlPCDspnumLLy^nH)=Crm znufJ>#SF`QjtoCY3B4``L4ql>X3{L~ZhCb}H<>ZRDS%N31v%e;b@y7HF+E=dz{CGX zVj&ASP%OJ$i%j08uR)vu%?U8B1i84I_j?LYS=80R+coD`i|eI@M@7CZLDZlT_RY)+ zD~(F`o<*v9R59xHv@jYOpUe2FO{d9)zvrL7phuz}zVDB_>)5@UKRcIj9JD!& zlKn{OgUl@dhw19{eof3HfH2Cn!5lac8?>F|x2i?eb?JFlb=%vEbRk-G%!ctIJFt%V zE17SfzWS}-d3a^r*o2*}sn@nyFAQyftkO0*a>0H=E;<{*jiL-?1mIf#mvk;$pUa$M z=B4W{X4}!9iXl^wxQrsry$D1Kg0-`MbDI*vjYRBj2?zR72AqL5ra0b#KE9G?{W{?1 za{yi~2LKnb2$rGYcEGNlbk=6q=PXOeNbAjX>H->qvlKnh&Z|K?u@3%=Ath%4U?r}F z`$Zr&8i33IUlqDBA>F|!js~?a6Qj@%Bh{1M1o+$!zD|%v9$68jXb!NA^F3(e5UkjJvz6@0*1pYbu2zb>7XZLCB1Sv=Xle7>??5b`r7x#fi&vD-S!JYE z`;p~jkQie>4&K@w1-$n*__>b~a69MQc^{w6Zx*cW;Fa^}fTm3ZxNWwBF;6PFXnyW5 zd{!Qt^4B@bdQo3?&8RcNjrbaEAePmrW&nQaGtkVs-GqJ>XxCR>PsBXip_6d-($|aC zpJmPB)3&F-|UaXJhYDkwgtNP$`ZuOgqKBQ*= z{_MSe0I<4L^*RO4rD4fe2Y*bsFtJirYBb>$7F4mAUm_N00kE+Qpi0&!lZ!Me@C7du zIAenTsGbgG1|NDsi;!gFADC1vdCHprKk+m;)HdesrY zI@MfixwcJRkuu}xbQCtjP)LIO?M^d)3Ds)jho3}xh*_y#E3*a43cqrud}z*}rSr~9 zi``Ghfx`X1>oRa$gdYhw#dAc(`500L}Azl(p>F9cMpC80TV)`%+e0%6GBIM|71_7Q=Aj^k{KMV_VP3+XtdljFja-DU>1e|`U;^mSd~?I38zJ$$_gHI za^-W;H0iH<9tHLZG(BI7CCN@pzKLw1NXtD=f(&If*&x9=$;Zj#rym3~W*7U$6vm{~ zedtgMNo;lw(N&r2bmP&x+Fs-G4!{t8uT84oDK?-C5nB>BI0LxRGMGQyc+~@KNSk>u z%0hmY5rQ%yzUywEoPrA2L)UTkLDn--bOH7K}s? zxhj|1%N~0G@T-6PJ5K4MR<%JO1SE)$NZ57~ev0HOxAQi}2EYd1<9R+T1Yfy4*=P|@ z7Wm+w$SBz%zl#0Qnptsnt#B(e1y#E}9baM7o!_Cw0s4Ur;Rf(tum5 zlw`gDk5q>Fo4E;(eCQYXUE}(_C!7PgJqD=kJMFqAXz-`ctE8LkA|L!z+w*#JpAi$D zp;k`^e+8zJ#9+xBItAGhfs#Qtq5)->>O1BkycqWmn*5wKY3DdHq|Wakr;aMj2=CH5 z(ARVo0Z@>IJbM6TTIjfHBCqNWgpj-_f;ltf%tPOhw@D_pu_dh{_5ZX3fM37ps54SRMl0LQjc%6FcSk{m`Jf&C!sr$@J1)lbw(baT2>X;dq(=#86Y|5%60@QzQ* zzOtH9y^uW#HHYb7;u#rBtv|jWAajMr=6zHucdD=D8PoGQ04DEh0(Z_w3Xn_Qx`~yL z0LBGWx2eG-wo& zy@+i(KGqEbCXnLCMgWe)?>*yu560&)>7u>M9EpO+2=-ICm9pKe(?-?0t(|(qvj$oL z&OsK8Y3xSGunN(t&p*8kyT-Q*PM(eGVW^$@kjZsI$AJ5-4hK3CBOP}FeE8rH;G+bJ zZ~&N~STo-|FSNKdPf-8;e&4Qb90yT!em>`q!yb|FD}Z&^!7e}eSJwG^^}pH?Ahz4( zW8Yyvz!^*|uFe`3`KNQcx?Igqo{Xuf|Ka!bLmgFeI&S%8 zTD@L^igl>L9}5x`q!hU1UMi|A_|ez$jOiI80QSkrh)5crT(MG~;A>&LQ)q;R7P1!s z(QUKtmGYHd-mOjvY;^@h5M34jV` z-dmkOF6k$ZgHIJ<8_#c%+WG?e3XfK6eFDA*bcNl>-0f6<2pW~Zmhb3AT4=t4(du2n zA;ssVSuZ066=3V@fQbzqtS8W}Zvtp3_k1+Cr>gB|xjiZ{lPMJ2`T@Pu(U~eVjOTb% zud+5+ulP^IN5jqwq59lkcrA}j_$E&4LW`8T!#mhXassLzq5h+I>4sMIbj1)ov!8(M zlr`d4vM&VIlcF_8AYTDJTN!A)v(CGJg}VgogaJKwm{!@cfTIc=Jcjec7tfcT@ht%TOw02f25pyW9lQx4g@4z?RIf8;7>uY%+0CPYDW6V@ zfIU62MY!}=7$(DE++L+C9D(@NYFhHzXkb6q+qAwk4PH1#k{McQpY)G60iN=WfFFOg zLZ1-X3AQeDh^Gh)6qa8!sr5O04pqvh3}v;AfKAkakF<>rZfFGhkNVWmyE_Lp^pCsV zOU8pv(szEO05|)GC{yShB!6``-yQ)des_RyU(gOZJ?9fFZA2<`wOg`cQeKG!&yOCF z7}LPHV4jAXjUZGf?rqZJe**Zs=a&GCAlVc(EQIxhd?+>$FE(BqooQM-f@1ol@r>Re&8k)bu(ez)_PU2KZF-tyF17{+m zS*(M$n94OqT|G6=N8t2U%h&RZ>De3ry_+)6#U>A?T4B5gWyFPvs+vY2A`9q|t_g>j zjL_skeRWcyTKk(2}!4RIpG%{AQhF;oiHZc&!TfLxH`^w#7Is+Oq;xw1BL?=bH#bn2POb`?TUnC<8p$N}3LLT!#&j zOUL$DPPxyFsvR!+&bRdwvvzs!R!;an-aEmJF3s0@TL2!=oPV&1t zWN>8GV2`p_yfzyCLkjP6{vgn^IRK`IXHte16EH(zp9!4h6ufh-y6H)x;6sssTN+BU z4j$1Kgj^xd1-C&10I1));c0b+Y0e`MfEZ|mdFVJ0;qqrO?znadj^>sMUCH}Ayh%^_ zM!?Vi(C2bk(YFV54k!=CURhW*KN7z)$`}Iq2>GeW^UE0tO(@egchnj4SXR5C?TC^MjH2xep z$@!@kHX;H=H7TkhSU=m3D!WOf`ttbi|3A`~|L`}b9cvC>%Ds5QHS5uT?1V#T8BXrr}U%K)PmGU9Xr z9#?N3pBPRK?(*IJGHlNdgph}dO0e3piQ>6eKbQBAa6I*iloX? zQBWh;!ti~tD!i-D!+n0DAKT;S+3hI{0mjDMI%wNQPE`5XY7O7tataSY%aDhtE!~8P zjM0W=c-^r3cs&ooovr`zY=9w_7|)l_L79RWPg!*5$*i6RS2P_xZAAB01ZAK9#81j& z)7P5gjSAWZ$e#`xb!We0*1)a>|4@dgRP84!0qLZN^85EiIDaTDE(O@vIbyDBz=RQP z3H{7jT2j0o0dSN}c%LY#`$im8v#3C0eUZ@m*?OL0CAt(lGQ+|c2s@TR&!tnt9@Y+gULR5XyR{|fe0>&#)Ea%-IO-8F4o06ubuaHt&zOPNjl98N_C-+k zl;{8X9RMP2Au2l25Un2vVoR?u|jd6odeXF0smZMRiPa#KBrDvd0rsCltkb#p=gf;3{y)x z=yf0O+MDxeWe09iH|It-bCwPX_H`flw`)rpVZ^}+SQUXbF+%F)eBnXKhK~knS@hS&tz$jZnq{a4COYZI?!G|{nawGO{iC-i<zk<%fU^*Ll6>>~ml&U=dami^bcUD1&q~|PMUjSsl zUKEyu4v_PI_mNl6_Im)&69IVV{C;8@>A5Ic1tstRtu=UZX9XiVxBn^Z1SHLpoB>?~ zYzIHX>9)e_68O3c4VO~W=s2Uw?R!%0rzIUAM8MKuhpp=NV5sz-Xt z7XroC0-Ie|#Nuk?$bSa*E@*abjtbae)mL{o& z+Y!VAK!Z;N_rhZl*b0O#Y+LHqaDSe39+F9~>pJWUVleIs&Vg}okIn+LO$Q1=a+ZfO z;F({?KbyZxHAxhVD3_;im-hAA>~DDzsJ1s}3U0Po4`<0IzW$^fd+`fB-&YRQ_6yKXR1g%01* z)EWzX2o~0}flrm@_L%@+hE>Y;$edO_$3@(f>83tb2g@0G$b)d-f&fW@EeY-s3!!&srt`sd&MoIE!1_isQ4xB()2B(mN8!?jhK5dn~biaHCo za9=2|qBWA{&$G+Az-}I2&u)5(YZfryW!8)xcn4~9NX>Z+_BHC82stTUkTlYU#G|xT zHFyS0F=3m7&;vswzRz(b1v41+vfJiFyxrZa$Ay=M^h{>}-Xk-m=t;UzrNk5q48rUN z1H({)MgRmAc0REPD1~k*oU?SYq+>4dTl;bTicygfT7>&si+N!;_cV%1aX#`Ala_r^ zmD(QLSS#Y{=c|B^{XT%>48Z3w3SgCQkr?N0j$rNlR-olWrq<*_IV(FrTSO>QYA~mm zSH*`O2`qymngHl^=Cdq`5pH^8s#U!kvauJbHGuB*!3XXKgE^Ed#n^tCeN z7J*!seqVvWCq=rZg|6!$wk1c~MPC;81{K@er0G^@mht$4An=kCV8it;`PfkuZK#9! zzz?-`eiR3t(wiuiT2Z@zF@O90?>y=I0O)rCrsV67o!>iMdQI}I1pi80D_qy|(LX8O z)?KWEtRaXg^j3HLe%$Fbs^DA_rL0=6i0)uV)a zwd28wav6rOssejISjVIY>Wz@B#w_FuEEC5~TC@Ts&HBO#_OZ1ZQ#+ljFkHc>@_fV2 zhRGL0Fzk4^>vNo6`J?H*h)}nK;d!fkw^w3pRMQcnrZQ*AZ*OA4IZ=QxiR_ z_EYKetaDBrJ&RsF)Lp-~&HPG78Ytqul0h=*X9OW9O^<(YqCxfaRPnI0Q=yT=0x zb;-GKeieAP(ito$JyHNYrAH+25r?%F9Yfn9b#4Ioq3?|3)CSl0JO9+v@yP2*4#4gC z|IkUZZ-&Asw5gh|OT9Ww-uSe_0R7Z84S@7DY>};MTakSM{edd+hRTs~2lR@5q6_OE zAw}STqip1*$)v8;RydFRHjS*gV4H+f1p^mw3Sb75YB+D<4k+p#Q~-PNW;6U+o+&+# z17PwxciU;mEgoOOaIH+86;O;B1pr^5zZ@hY!#J(5(uV86px-=Qunfp&1*zC3_!!YJ zim;`T(s}92|A-FcOX)k>DRcqK)+LdfDvXQ9BRL@80El?AQzD~NP@QK?Rksb_xPrM18w)z(wkhTm z?Ue~`i_s2q`?H8bBs5*w1K0?0MFD2MqY|mEi@aFW@1jLcwvy z>9*Ru<*VjB)%NMGUz;DYiRX1d*2xJun0&^s?~&(7YM)>rU)fdbCV^fxS0y0{qU=fg ztn8kI0Up6MwO#_i$r({b0CEZ@h7b{~h;@Y|oEM&>Y@_9V;#XK{(NOpVDBhPo(Dk(1 zU77nRJLlyqfAlZqvFUg(n&?fbfl^)mu6Q_0b%kWOx7uD6?P6dqn0 z3?v}!I9%nzCz%n9byz?I#Tts|Hk@ep4gK^wGSe^~Gm3o!a#sUQe(S0HN>_&+W>qJA zq~U5*&uQ4krnKn6pqe{zozhcw|6l&YuL=x2ZIKoGS?~SY+mSOcIS<8#c{Q}76&(@G zRO9pPI_K7FsR++~B%W`BzI^wuQ`w>t9HXeYsfVH5oE)n|(}W)s7r^E;{rM=*tGlQa z^_Ob74f=Co1$;kwLx}MYXV?_@L(8_>9{=fwEdrp&GYJ-&lXa6eT1qC;giR1zjodhI zf)fKkpU?Tg2@vHr=oF~J{2G)4Z>U^ervmNOnC{IV6mqmg@QIQekr(HuXxOd~+!YiL zwe$V7#{kDc!1!jg$q5|hvBKgsb6#efIX6=49^r_}_z;A)rw7bXW`t{l!3MXyD z4$DDU(ODCbU6dfhu@X)KM-JGDz+D*b-nl%>{P9EGc{|Tr=c4Swlb>qzlU|A@JUY<< zs4GEKS%W#6)X9)X*~mOpNA-txRbHMN{{QkH{kOskzNr}cuKm90k@Z_eI<>k_Ag_z9 zPjZIMfE>cLayOBi^jvN-O2n_+rKsg0y&6$+nGaJhVD6!+sel8X?Neqn+Q(Q0Hgsi< z+8zozu40P1ra&NOnN%vVPjG3BUG%e^$rpd)mtM;=r00qyyqgnorrTtg5gO^FMJO3( zK^jMs`i%}}JzDK*y}=3aCJ5XhQfz_o3xAnZhr5anZE2RzbG{jYv9`MT;)?zPEc_vE>P;p&*|>0%Us^TBWcXk|T< z_Uu!987xGOucM{V$@iq_7s9Wp8I>bwPa@^JW)pV|&fGMr`RqRU31h{dEzG}o^7-)l zFzg5v=#0=DX>)RLtTob7RSE(u&B?&NboT5P@A9Bju@yJpo}Lo^KVJR&#-Dz3W{`AR zS!XL_wQi*)_SX8Ja(cG)aQv;<$-t+}7Xg|mfgH=SMcX*|Cv3J|7jD1cr`aKbbgYTj z7jPWBKLZD&;7-^Ka30)Lk!3ewZCy4M+eMiO(-uw&L6eGzsQrSz%7uUaWM3)xd#6`kW6+FEb}+0+BcmO&v^ z$~fRNwM5dX(&Be)=EZ61#xa5XfBpwwk;kSleCnrz+Z8|O=g<7bpOVL>U;m#Dy>b*Q#4DhW z`tN+2jM0Hw&+B48JDr)@6-PazS1x-{YW>mGS-XV$ab1h)7mo^;q~pp z#;FD)h@(M+0s@Ouq*w+N!%!4q!Ma|j8dzT~MT2U^P*`&uy5B3}yA`>zSW@^iyV#Xr z9|~g-7@X2$YmtaSL!mcIZb9Alx zA`JEz){RgsTB_L$$aG$U>Re3s*mhfYl^2XV+j#~sCSCk0YhypF-tEhO@SMwAruh2b z0Je#V4Hxdwx?I_mFCFml)8|U_`MzSlS<^w0qHpdLzy#+N94KARMvgSw)pIWHOyC)l zycaCBjPm zD;dj86N74Ag8>qu&%V1%!-b%ijs$-#Z-BLlpvKpocaM5`eFY~%hdIet|EBW+#QR`~ zSHU)&tXuM|Li|J|B5-CIc;)cF-`7VESqAjGsT}#LzgECEn3;HKb44H?$l;S#~3Zw0T^~*;GiX1F?H?V#z>u1hciibt( zn;gNP<*0A#X=fj&-awyi=qXoP@HTnP_Gw#^0kfndqNLkMXeUysmq9#x0rk@XM^yF0 z;Q)xNZzV!csCu4hWt)|b@J-Z{1hG@;dBy|CK~ZpiYCnQy(m|AjgO{p?I8TE+)jfGt z>O`rG>)v-QLcm-?T7t?@4FfqhnxsjF3|ND8l8JTZ>nV=`e&*euik}F!i+Wc1fK*k% zqyYZTxxhS?8sItmwH;R~HS~YBUEo@rgViL;;)Jtum_0(`(hU@b=W$2xdFLhc>rO-& zLfutuMknYjNRsZ!`lt6x00FzUDpNit91l5Jr1D0lC1u;o86zh{f0e2eU^_M3lppEm zfAnYNvFQx|57Rw`s+<7?{89g{v@;=)uC{qyBdEtpm_yXLh#38GTFq$;R#8Kn8zJa0 zFx|87fK+pNk>U>-iGvExBkN4l3)d-42cepFEznyzY>t9h5Mgx4zE*}v%opkotW!8j z9w}UohMjBk5qb4mo*_Nm0r=>9uWz3&c&Bh$MgugJQ)$>p@O{*b?{yDqSg|OywSvzuFFlJ>TE2*RGG&+TboF^U-i3 zt!hMJEv*_zG&Bj6-H2|+H`KW={EtRlhpjI0fjh_bIjYJeQ*QU}@zy3DuxdsvMEoqq z&d_saT`$?DtFj|K<)?p-bcX*o>p4XOX2H#JD`k-n2EgeAJzW5!0b)v!2Wzd8QljY= z1k2I}(abvw#ULQzlNj(Y54VX(n<5)HTJ#M262e|x6#`mhXU#2W0*uR@gORbEI^T7s zEDK<8BI`8<9^Z}r-G?Ru0JG!Ij>@XRjh-%mf@RePY~dj-nh_=dTC`HtI-r0PgK^K# zRgHM${Q7P*fP8E@Y%?JhS%LngWpPczdX{6ZK#uv|+=@bJfl7lqCQNf;XVrV^+W>T0 zI;KS*)OKSo+U(YZcBgE5WO{~Ap~Jy|9FGGIM(i0InRx2L>mU+50D-} z+1tmxWSzQ0<6W1wd(b`-aUW}jPT?_z0*y6>MI^?GuR-<$W~;wJH74BaXDvz}GOdZX zztX?^lMm@Lv~3@6es7;od~vlDz82v&yb$(0KC%I$YBhFtgIyP3L1d~ARD(2m;iJUIItfP zo+ZyGH_-sND|FPQKJ%1#m{Orbjsc-^UeoF;kY8;=!F`-kSoX0ivry?P@IDRGfL=8m z$TrO3KmB*VA&*VRcLIFw3HE8}L{-%B&BwG-IbS)i=U7h5A+J6x5rFrO?*QO@~W&G|X(CYqyw`L&C49B0>4{{pls0vpc>_ThD0id=Wm z@xi(-(I&-MK)0hzTc;&b4AOb|lrIH3(og-+=J(Rwu#1eYS)IAbaUhV_V*bE>P8+M! z_~hXwo(d!2sk`%&4v0QD7X;E;?t|yq(V$Q@7+4CsYDNcIUFBIL!waBa+eOqti{)B6 ziNM+;0ohv}gJ2PgEiQE7wbrR`J7B8kFyMpueMs6>^X#8^!r{Lo-SnvHu?p*oWJlo<+1M6VPXpYgs?un%mj1Mn+2bgG`CjSe0j z44_APAz~*?j-d@c*uw zXFv7u-?!iU&RppBjcla#I>gXm0GjX@CqnYIKdUsUFK-6=Y16CG9QjJ;(x{dcPGgvU zXVAh`MA3C#+(%yjDxaZS#rsmLOd#^gsZOjzIgt62`mBk4Ojjf8mFJI$4?6 zE7#L-QOT#I=pRPivReR9!HrdW4sUa~eiv%Tx_OGZ1Dx-s&+?);1J4*@$2<>P?w+An zx&-dh$3eRw6KP@lmG87Dir|p|DPS!^jzbtj%`wp7!U3?!fk0JF#)nj#mZ`?RXiSF_ z`;^0fzy8gy#11i%ZS;O})@`tH=*U;vRjbU`4ZAqVbn zg}>XqX?APS7t)3?x!=>QX`K$pH^FIHPQRqNbR9~*G)Stz*xk9W%&ZTkmckB`S@6uc4A3eUKo}Zfp?0FuKo@uCxa;Hj1W*TO0ecfyNd)@=?_}cv zR-7AWr9^CGtW)}9E?auav;X5)|GxU~e|up@(dT;IbhGMz;m+sUx(v|u0&3TP2RFnq zzd7~EYk*yZs;CFPpza(P^xs?qMLP@GK|P<78;omb9+|rkSL!qM9H!axf!BmI_hWC0QO2h5lWjbl&`-=p6D##vdWTT{@*4DtObA{ zg>=b-@Vb~^`l@x!#nnpQl=RXNhrF&%gQj?*ura0LL!szHlr~5$4r<+PzP8!oVwRlrEmT8`sgIz%>+|Vd_E;3=BmR zmMo%iWaoelZa5Hr4bDh92Gha~{Yz~p>?By$tweYiBLMQ!tZ$nWT$pLDkXZxJ*$gXu zT_7`&#Pz%{P3>#e=l;U$Cw=+Pmwx}(E;=**n;1CK#o%ebt}Z`G2p@B~{^zow(M>r) zr_b#p^ddC`kDmyjE{V2yGql&kh6AT!+UF^Z&z2!TAE@yHOjesg{Ys*Rm1qlUrdiC8 z_<5Tc=g~(&SOeNQWD^0H3@jzi6esk?({ubF&@+7zkj^t47Y532xv9q+VL8|JLqJ_e zeEKC}xAU;q2Ze<#3^{`&9=6|#maBPDN|DfH&08V;8bbI|fOl{yo}XaUt+Yv3S- zG;7E@4FdoGhd_A0_!=quXEyTU=GNO;Tfnmpi+DN?{xorVydY&vv0E07eB5X$oG}P> zQS$q-Z;v9>Ayo%!HQMsC1NEz2`$X>nMRN6+z|+rs^7HbP^wmH9U7_833Mn!IH#X@1 zFnHL_7lc8=B4!PET|!`CqP{g*?0R|DRI-xDFT`3?mdRl;25p|FkQ=VnYfj*I|%JV^n%SauS49FYv$v5(leX^@LvL4_Xtex9?78O zdh0yD55Q|FO;2e9&O*qqmWfl45U&eT6_Um5Mnc69=mSg~dcv{G7p!N(%UmJN=FU^v zh{td>J}FqKvhOVC3Pg4)2C{RH6F82I}xe2B>Z++TnbyTdO_CtAFv!f0c1WJhVf& z+YjAW;m|PDrH#NEg@Wx;ejt=4d(pAv4I@JsXEJE3&`n1jeb3P_JCz5Xh9Mj{Qj+@g$%b<*e%DdIcnvhKLl=7mMkH% zw9qg=O8wPvKDNtHskXM<9V>2}Yf#B?d%2<$kx)?2J~)514+n8KvSXM-J~ly zxk|O#&;RJp$y3soz7FAk1<;;SOtgQ34O#kaK}%To#l}Hu0Ej0G9(Ipp&{0GyCy=My zL$RdgyCs0G0BuDRw(il?8;!%|99glpZ;7_%XLN*;4w}GDKii#Kp0U-(x;`p>6;VTN zk+8*&al_@uF}iqv4*YbW_SM~Md18772VfGkH0jR!REFN}ZKBReu{2ik1CX!+0HA0X zYsf4un1o<#6|RDNq1_Bzw#oAc6{%5VfF~M*2oMBzv`ZJV={Fm@(UNPGNYSE!hpAt$ zJLLb%C;mW?M*(oQ@zZbWY)Y+f(j0;SR?W5IjTKX@&-JMXliXob9YlR;^!7lL09jA? zXAND;%x3|3`~ap`$dNWYuNbYO1dvDcrXnb= zT}%2BF&5XQv{JE31)edmrJKuPP%vO7!UJBswec&DMcG-Ax)UdIFxMt>WfYU9Uzf@g z4|VPzU^Soe&45Qbq5y-d)L5V?u?MjRG?wYnbPP^9Gw9GkKfzErhV4Da*ObB9c~_86 zRW_zM9&2qKG`ati4)+c9hwFWwjh54anRevpG{ta@uf1NeQ8W09Os`~$$mq-%@Hwsf zWHP2PJtaML_y4Q^_FoM83-*)BfLVh)tRqzkro}w-4d^S_AkUG$)XOZO(^v_oTPng) zEi9d6k(~|J69Q>d@j(VUYStJ|j;|Pm2H?KLq5$iHRhsfOf2A*2R<0Gyy(P6yhLRgdZ(LTO!#g zztcdA)ex}#>xNuFc-=AReHu%a6vYnS{XQg^>yYA?axM8hiBQ)lo1`(Ex6+=yn=$?B zH-6*EQGlOVQGmw2Y?cnjpLWsWI!^9KDBr-&DukJH+nvQKWT&ZUDiiDWm5acX{z z)SPEYM}wcA8gv7P2jyYOX(bN|c|!au-|!eM^Kj?yDqan44p>+nSDqo*tBjyt*DF|= z1Y$3q(a$|qF4I$Y|HrF;x9`pvqf3*Hp}yOo|9Gzj$%^sNJRn!|5v|Y;TP%3WZ9-_u zCQE0{A7N$vt`wr z5FlA?h?uw4>adlTzMO>y4|cfEKeJk=tU5|QODIUC&fO`LS*@qspXb$Rf)qZmzM&RK zAF32yR@DRifAyK7047rXLsC}cKYSJd3Lo-09RB)VvbU~u3!u|MFtWGaaRp|lkDt3x zzL)hK`Z+qSAYA61A_@TBJu<*`cf3$L%ekRb*@LR&J&Xh9QNj!;ja#@0msQn7K4~50 zQR%{OeXI0r&;E}T9xDke3i6s~?K+OYkM>s4=E08Na&mbpENu?RaXOe9a!;Tm?9d8O z=G{N*u1l@~%K~-Og!La-t9mctz=N66rT@WA`KCV4R~0mI$T>}IYdh%?f2PSSb&Fj} z%t^<mbfU*DXdUT zk>culQ&1K+mBLEWkyUW&aghDK&@f!gD*6Uh75Gvi1&^gSZg0@9Ye!UFMga2#q<6A@ zVJt4{)M3{4A~dYy@}E9K6u{pI$VF#%;u?Uzvd?yO_w~Ja@MuA*qB%3LrIyiz(#{jU z3W)7)WiGykW;FX$Wd{Po{?H)!n!~BgJMG3xo{=63fp>)dq2J_FLnf?PJPPF-_hDd7 zN&VKGY=WLGT>*J@4qP@KM*05q9J~MHoBxurVyEJUli_3|G71QP)&GiQ!q4)(|1>KM z-cI6{6EeK4@&C-;+r{j+9ra-|uWi5~!Uu2@zWpbk<}Nr_NmI2{3KCp2CQ&c&O-bUL zCJL2WRpKf|TvSAg)QU>I!fA3*b5$@GC8{gIMG3w$RF#TTmDqs<2tHstg4l+`JAL=w zYi54Gnc2_tydUS7CaiPb|K5A;wPwv)YvwnzX07LW0GIq8jp$xh6RuUXP{ooG27Av_ zA^0XJRzSp%H%3crrH&{fDxFh_q4Ed`)A3%`o(haY-j}WHf(3{D38f><$>@~we2_@2 z_MubvX0PO#>3I&o-TD~93Yi}A?2NkD`1D~qa{aUZ*sFfXA*L?x6`y^e9oQum1wbw* z_)Kh!X^hEv0mmW$Zsk!(F1y>>LC@a{1<%?M4~GfqQah7lQSKcqt}Url=W(!JZlm-& z561uJpZOy}fAgEZr!^B@G-lmWmnu7KY+Vi^5`ZW8r;q>P34T>XqBPz~8#z{PQ@Bkm z=~0IkW|uC3b+5dJ^YI?T{UW^%jY~Dwl4HS90d#zlv~LBt6LEl=L|*HcmG*__is(Ng zO->-LL!Lqt(+9rcyX844zW8TLF2q&;wdXV2sI!a{dHzDvh-z-}gbc4Xx;$kHX&>a3 z%lLOfu)%lMQcM(RNZ{}>48_0}NH$@JGnt1iM#cK4ZYIbitqp@KMQaSSYfd^kZEp3B zzwL4d&T+O2vad?xek>$Z(t*qGI@o6Ke%mT|_`AE4XMY>u^Be%RcO7i){93NG7V~Z= z9RSe~!pZ2wSXY> zXa+%zt6eCY%hhdEBddVzi6ScM!i0T1`(-|BqWY9#?C61A%8{ij7Eh=(ti<( zGMKR8Hn0utopYnY+NIrUX-bL(0Ll6tydmOHWM7(!4f58|TQAdr(g4kEOKIlbmy7$%$8pm%Vp z7AttWxGaf$>8!>*jER@U(4Q7Wo&ZFJ1h1tD92-x?>dHKW8`wSP>w&klodtO3`lY~X z_|KezQ24r9jk-$LEQ`+)PHL=ZRfZ^lHCmL64Xtl6xwjva#t9WoC(D);r>I_Iw zfh`O`P9sNMF3RV{_0VL@1N1EPBZ?1mB2;7&%(p(h|LeX(o|E>ye_Rxy4o*g2tD%>) zh6?XpF2QhmdENrjbQrA5R2W%iqQDBuaO#$uS%o$w9Bw5(D7qxwI6IsnUkWX8>+^wY z)CBHLa@5O;pjA>~b;y3!5z7AB@IK6qm(-;Qc~2PL9IuMi!y@9r0Dp-c0MmB`>sAC* z+(-!-!m>x+wcPMcHO?tqIEWd3)RE+xfh18IjBB>1?LADf^JXCLmF7~?>dmEuStZZ3 zNg1H*}mW4A;vdQTyGV<~f9>dId)@P3w}9pE1gzh<~2%0uN;uZq-| zCb{+TJ`qdwxjb56XR?LrIHcys%ME28nV$QLf3)}Sj0ETpgW}JQqnPJc3(qZ#PlWp| z4J1^KyEH^FK__DqtIpN#A;V17=pO&|d;T-YLkP~iS~jd7ajfE{beWMVxc3>y zPXqY7s9HmGDAHPtx`>?ZZ7*&KItcd(Qu>~MI4XS9m@%K;TGBsj0f$Q1(KqY;4<6FS7ba22KSTal&!b9;N?d)Trry%@=Ve zB1$eyh=CRsYTF6@i(YP7evjdN4(lk z7el4S0kEDsS_WBew@l1nm?e-bO2DFUMsCDJte-Q_-Vd_e1zB;Q3kQl(jFBD8tz?V|4AcO#yJ9JIaFkYcc*oM zpB7?;zFMJwA+hpIN|(<+`49zo&L;x4^ucd>e`~L={*QTeC!u%M*s$04f^~*4=MX)h z)xPzRdvh3q;$XB}U;4YO2abdAK_{RRw9d8}f}R5Xvg*RN`(D0wHMD_^iiE`mMb#7J zwOg$Ag>*@+N=xu>rfn0eIzH`v2R>ge86AD`Q)Zjx6RQ zY5XIMDn)QZDX?ji35lvhkY(%Mib+EwbQWUrYFR)s3KbjE2no&s!tROlfa}lYB+-QnrFxv6D8(^XX&r#MUZVc{|ww)jrmiMxaPZOzOReV9(uDvjNkd&25?Wc9hB*E35(1sz^gNE%&}kkQ3k> zjkWeNCJa7P!eJjsaUZT%Hz>b-G0^j)0N*3;y!#5lu>SGa4*`vw$aB(h^8e$75d}lwS@7&Q6Z(IWD5^9hx1jFqijQxC zZy3;pRcPpRFl%D7V+kfI{;g%Q?>YB6z`EZUn-2D&;E$sg0Ih1v$uW8-eudR_ItTqD ze+Il``-i?{JseZaU463cM}f*P5!P?NPGG1HfZJs3Lw;7@9S5KJgFw&x7~pmY!Njq~ z6h5|x#%=Hoj@vXLM&AXcK>{b@C}=*DjU6k@)tnFs^v0~#@jG+~plQu=@fM4rG=@~d zJMzel`-K7$p`y|q(koW>)@8ed*g!+i=BLXpGgXaGrp@?2_csFe1Az~rSZ8yW5*0Ay zLQJB;Io@mJQ>fAEN*2n2!JZ=pRYrW(Qe`dW%fYs;i0jJgETTYL3~eS5%49UAGB`mg zc1GjpGUkp}X^eT)$_G4`u3S6xH`SfS10A}@q(0lzo9BoAx3qumUk8JKDQtzZM*6RC z4R8q~=#E)LyGleMr2}OMp*fZRpWWUJYS+?~1OM}eYWcN%lMaeDYG+XO6r)uSco#K53f zv6#n;FHHns{~;h-oM~LN8MFo5qJ4zRagw%3GAaXNm=Z*#wdHZbeJPeUv?M8FXc+b< z^hf}REZ8z2WqFOxD2#{GnE)H#*LT1oEtBL-g0U-e8EmgqNoC}*7MYtuz}S8x;Pv18 zj65f82Lk`>SH21!>TuZ_OEe6$Z|(mUX6f)-sRQUJwKXkmqc2%k?`YV4^+O-!gO!y7 zIYt3+HKhe?uuP2{U|%qzaj=jE!(~{tjE|N3DvQ?3H3z6z4RYG9Bn0a5edwdyoX)z3 zZ{Gcm?cm?@zVdhbzW<;7&5sL&tD;q{D}KZWOfC9}yeAf!;Y1kMYYB~UG1bOc%(c?F za6CryY4ES}$J-hbnCK7~tytJY@ON^Ia%C)`!Y0(P;3GyalyrWIq4Ac7AIcM9++*yp zHo8;}YZlwB-pAB`wW=f{$L|$7wwq>~X=KVA+Lvex;LFzP|M(4q-1o1DL9-|w8K|s3 zr|=xnk2SF51t)DoI!&P}dgZ-`h>KNa-oda?eE>FROHsM2=YI{XqMtB6NT;%YOE=Hz z`@7PmDW$^M`8y%5<9Yjbz@PkAKO@ggAN;1jx<>;j9B7p#V+dIA*;{hEs1LaUIxlz!k(JumdXr4Rq=Po3z$o*J(sl{$_G;M9_lv)pq(VDoq~ zkRGq^GaY3IHgLm8K|YaZh4(VhF+=`R_h_Ds-(#S|4P^8Uhs0n#tPFu?2=CY)mPW~X zh!j0?nry`k;9E-zB5ma#-SmC$!>C(Yae-yNU|Qq1`wHkNwm_U}e0B1}|L>7!q^COo z_iwyLeii_uh1@9odCK8O&q``Mcdbe&TuUDBLBN%wg>=>%YhsdZx{#$40OAo~>IK}& zi;z}$*eP6DWJ8li@UN4UrNl;4CW4+c(!?uvwwG6DF>!@S1XUS*%XFu}` z@`>O1lsqSGhqC_4AN!Bi5ZeWoHLkb{!7z735th8>>L!goo;he>XK0+gm%PQ`2DGls z>qr{>S5sY)O_711VO5`G^%{!IQNJpTc6K zODV3FmAZ?1mh_?PN+Kg*-ys*^&=AcTx~jafNG8Bqb~D~|i)5Xr=$}FRRWFhfj{hC3 z@bfG01?|b9e7f}4<-xqX6lP6Y&}hGT<|p~(sVRO4NT5^R;rb1JWyr}O?!#8C9LygI zzBVRsZ>Y7WI8i3E3Bwfzh#D%UmdPdwf%-*>NSOuu%*EP@f!Z&9u1*lTwK8;XYEy@}yVle+!dv>t3q%3F^WA@O-wKGsWXl<#Q|hIk?c+@Wh|*TT5vHe<;dS3? za9}h5g$e?+uYQq!&#zGcq%q||#^NM(Cl5PnA0Hcd8zv7ANJ29?*?`Qq?C&oodzK5( zlrJLJe2cSY>ikUUB|`t(!9V)W|1C`mm!|(#ba7colHKE9H)58VFmP;=$YHd)Jo0TH z*ykrlK_KFgG%J#N>4-wPOkEgm{%EYjAEI>8VabNQP166M0d22nhzbjpLI1H89z8D2 zqreUUuvW&#DjD$u#VHd&v10L>)5u=-BeyBiw%qIUeh}yx?gJb?*gI1+6+?(r(2An3 zC_)2|)k&va>iD097}ds5*#;A4z)!q0;uAeBUQtT)(ZN36tGAtXp~23k)N<=STwm*D zRXcsw@Q#?67tspKcZ*gi8MZZ~3I-J{{N0xR>F<2<*&hqs(zX@w&bu#Ptb!X2M`5p6WHRgcbI7)qcdH8+RYMw!JUJWa z3~10Vcw;=Q36tsY_?ZQ)IXM{$?L-~)Iw~)PX6iqd%0rr-jpH5Tpv%b6J3}~5x;c@- zwH`YEN}iFP?f|I13XxkzZ*_QC$-PiYfuuAjSr|ZH!91573HsT#u&@Ea0b&IWyUEZT zwh4NuE(jpN4pg=r2$~lpj#A7WK55^}og^9_>*Z-RFGZ*zFCNOf(u~!%>x>33-#24`e#zh%Oi8c2zbze& zy+r8$mp}h&>)S7f4k+MQyo-N04LD)&E=+nXHb8djD%w~AJ^E!p)C5+Pk{ep2&k?1a zkvcM<07lx9gb{5X4&c2yAtw;$&O%FJjwb!&`m1<$!S0KxIorbXdj;x+vVqe~cF$M* za(o4X0w*4oiKq~?g%0Ina&jsjo1U|Q@EYT9d{rYL>;59I0ki^+0hYxC9j=BeI&MC5 zL<8Y7ug9Mbc{WMh=pYCie7vFVfPuEshscBab+zEEQ5oslfZ@Yi(Nm-k_Y={SRX{E% z_;Dcc$A0an?$#ItDx-VHM3WOwMNwA~KMx^lYt$4&yOV(bkHE zk)K5U{_qZtlH09+doGb4ydEdwxnnq+6J7 z{4>}8HPGDr7fUJSBh@t~mY@I2dE5{Af#U7o1+Z!%3ZU$$kBQYj>GqNQCw~<18CwAI z9x>y1ew$$*hDjl9B4yDFXr#IBHQOiERK1U6SFpY=(rk8glGN zxmKQUFyOtKfwGh|Ag3a~mID5mmUFg%jYZa_f+ANB89(|je&X3%0oz9czyCcSkgt6E zSHMuYk}ck}9||;K2Z6*u%08x6x(R$$*4m1y$n6wqsGUwg6CF+1YS!CBL#?%U3Mi4oZFGnLio4rR_Yx z-+9mXE)hiV1A|?S9RWd}1?c639EnRI|NXhh=6+{s*!dF`wd|Z~6oBNu4z_}^SE2s& zIZZkkrVLP9d37tr&TK4z)1#8!R_r#iHxfH2Mg-}(>4$&mLvlGfM;AE{IHd+Qy5 zhfci;Pt{;5YDlYHh3e$#dR>BK+Ul%HJMlRIU*cbTnAgqp21L137@HDB)_4EYMeR2xDvHjzuFR|~xpZfpZ&!%8wj5`~akd#qx zmC;<&h*UXs8hsnUPIV7Yp+p1=bXbW)UF~R_nlzF{|DoXnzEUS}1Vp-V)dFp`48n2E zpX4k0MDJLOsI&^b!S<3rbg5KOQ@g9wM-9+Ifduh)T$VEsj(fJupB_s5*Wl;g-ne`E zM**Mg06c^?((CY5ga5QszF1d8nKcT~S@d*I;AWA*fmZ4Mn+|PS7zZ-AjW$$AgA26t zqhFFfOt57Huyax%r|C#s3LnynUoNL>@0})I+xv4ed5YM&LJQfakp}u8ANm(R{_L%Q zExrGbeaHUGZE?yOSKA8FAqY#xCj#o&YUWV{0qZTJ>Ck(&cRx7=cwg5>3h&0c9eKDS zCQD}sZITg=7^>ki5=k@8Rk+Svk}VjwTV<5Q{T8`BCnX(xOZL*QZPovQZ~Sg~ZaO~m z|1+#hxCqj!9nv|+FfZso9^k8c`yh#ur2?HqWQrS+`B<_mgCPo&lRCpjOnfctWukTr zgE6P!tT>nJoeHgQ4ro?Ewh%_^2-<*Aw%Rw#{%El)_%zWV>*0$6!B2WsiL)5@WO7g_ zTsZ2~nv;0gQ-3ITZ;YZ!a&^dxMKgB~Ro?z3*a8rF?GOsF^hzwmdV5X*hR#-L+-lvs z=|B@A(gukvG#Gdyd?^M|km(7{&Afv?5YaoTOSl`eG-1 zCmY3imM5jF)ig_OTSnWy|4XDF{(nDo(l{tR8gGmcc)6zk0{F5FR>&|G%4@t){>D>8 zO{LtdlPg~=(Ki9o39ulDwoNSIjYV|P_wpcrP3DYx19e!|iVBRDA^M_s!w^$XO8+ShYwKy+$MLV(R?BB}!wDcqgU^{h~4!>y_ zJn=n><8a{KuY1&RzgM~{c|~}|x?1ifX($S*b<9Df+HaYDPKIrTHs53D!>l~e(gK_%PG?s zsm}dkW1L)L9hEC}OFD}PAm}PKC~5rN&|+B^L+X$7=lPm#2Yqk?Dv;EV_nm#uL6lwP z;u_9@oQ^@sxH-W>_)$qkFTVXFZ~OB7Cw`xM=x9dQjHKOYmm<> zVob=uB84@M;x1DlU+A=+4!AXgN#)5YZRRwt6{@MVL6ltF!l;L%h@1&eyg}r_@*D9S z#+^GW?bH3x4)(g)2NTO~NzIsD@iGtx=&n zeV05jJuL$8W%9~EXxmklZn=!7YF4U9lxa|Dc_9Xdo~kQFmht@@S1%E!)y@Zaaild$ zho+Q!C6)P4&S(q?Y0lovqmmWU)BUxwRoU>pE4hzThSB9DIANin|HD83v1k8c;Fh)( z-VgkVzp*<5zCZ3pln%wE(!pxP!l;?pxbi>xlMw|Thn(c<1myeZx$v6Kf;Y@_Lq0h$ z)gee@0sH#k1UUGF&jaIu-vOYYw=rI)7P;rQMav`8q=t?5RPT(~O52x5y@c`q#BYC+ zqgE>E)vh@RYlVL~8LOU_F-miCkW}Dbxs=tFdzQi#d+ICKN8?$eUujg2e>Hf{&_8t@ z=+fK`I-iTM$_qO&5e-w|Cup1hk0O2{8I;3=e|ebB##;3WM+MW2rf90{SPjR$1-1uX ztnMn|DJW}PeGW*B_Hnv|lgM$%^Do-m*Q>w^R9z$RV zs441orVXSuCd{B+b(N~X279BH0x1SvuYWk1)xutr!0A1v48@FzMnzcxNua@F?t;$1 z(dueqVUW^no$+o#&l2e0dE@i)pXqXD53Jgv*G!;iHw0#`-%z%HJU| z4CmMDrF0e@aMBn}zSfqFd*fzRsp{g_I&C!E*i2HMP%BVerXI@hruk<=u@BMG zx-z*~>2I0)j{+^7-9PUi*8AwawlB^bXuHgynO*H1b8-J<@AgR!fZpA`>+(wUn36oI z5EfI|J!Ipa5l6LCiw2{RlU_cC0#uuqW^NEb$j~r5UjckbhES9_QiZZ$@UbCWDNI0# zRk&XIzNr1xIMPi)srVx6+kl119WpPWQauqbD$V9OfHbt^X99h=G*qe}(6bCAG zraP(sMM!u?S?Be!gtw3TedoXT7v&|=hkx~dJwpH1+u2jB_T`HHyAuGi1T_4Feb#4# zjr7x*P31zQ^?TNTHe@c324*rHQREQicgBb`^qj(2QJ#^LUFmo|FN=K>xv)8>)j(%? zRuv`wXbf5Xi3dUbM|~^|nNM?Ry7da2GrN8vm z-@dQ>s2!7H#441)%3rk^`s@pTd=6LRc%4#44tg0Q!8*zY5Nm>r59M*6D|Nz+RR;SW zKo4V(TL1;fEZ@_8c0}r!^gMadbXDSwacDFCFY$4|Ep7Y$AOGAZq)S07*T+o2S+?hyo1c?J{Y}h(WuTk#!Lu`uZ9<_P= zslL@81H8X`k9W@P97^B<1WR63s)(|;s4ysA*5Em6drI-zz)F?E5vkW@U;O?jwnU}ke94yokl@K^n(Km z5#>Qmd@of*XhommWkFM`+IjP_3N;cY4ni3@9C*_EQtF3qZ%=xft1oK&KmNI2Ec^Z^ z#+rDLz?rFDOwk&6EBas0gWw7n*W?v*+>A}=iPTX4IjnBY#}P6-a5CPytWE|TZDJTs z8AR;_w~%*fE%G>EsX6IM*@B0LZ0(OkOIz|BwI2`(HGp(hRpd1|E{E`OdGewsD_bPbWOND+F~+2-YZc zn$Bc|ahDF{%8vEFON%$*XO>)3l}sbaZ9_FD&yt6wLT5u37e8qUv#YDV;5Wig`Yt@j zBfgk)AcD5~NU$DrH8$;2dp+5DKa|isePJPM@D~^k)Fv76h{wYFd!ZF7IcMQyOkUFB z>A2{2&ft|iF+I%zFnf=O?3H`CUN4vCbS2>4Qk5D#YY)nq%+h8f9jzWac~F{pAsv=~ zE8oCyqesi^L0`|pvdCHuN7sRx!h=|^Iug#lRuyPAVI1u`O;voSnTgP7-g`o6O5Kdt&>zxt2mrP5{){M!QS=l&^#ez4@Zq3m7{4f3T`KLRlIjqa~lJmAe& z?MC3MLD2ak5h9#W&TC?(r)mexba7LWvrh;-))BatM(4BSY-M(b?}d#2_9a!@=lzd; ze>>4Tz!1ejO1|hzC7)^QM?C1R)QzcxzHhU#(7PbEV9QP$Qe zH)3bCxdyQvVozr20GngeQ-2WXX%2wOYZBh9dxv1K4%Svjpx!7Q6}4<^kc*s&wGB;p z84sxdK$%gqtOT0U@Ado*fS~8`-dB-WyU>@)2j=;88n-$YntaHB=~}L5jha$!A&5Y=}Sln;(;pzWyKtcBs@QHNSnT=(~Ghw zAkWFO9mXm3!jdl%JF9KuU6VS8ggeN z$J)zlREI5{WJIfrf?IV zj&ky>y}lG#5f-b)O8FB(hele`f;ka5G0s2k&2cR#t9pKN#p9cKKlW??_(gs%z|&?R zKJX3S-P%$B)cxMTAz99VtM75;kSivp$@v)0moiSP&~eG73mI_-Zs&(10+Mv=WLp&} zkn8M-;HMg>Gzv$R#gg>RwEkl{7<*~sza9Gf+28v4)kM+P2z!|n0T(VPQ6CX5jCsW` zr=>2DXlklVDZ^L6+Pd`iW)PL@n07#FI>LzB06idnR-Tj2gh7RyLf1}lN~Bv6 zRsa>WKhsB9C&vgKBBa75Tv8TP$xzp*+nuJ~@@Pa01Lz+u--S(rBDOwSh_>MEZ+|6E zNKgGL;Me-p`}LASOlZOimIl1mXGbB8_)-@W4h(qNoGlSDJ_x*v9w?ccN~C~!;P`R>0Uf9KWr?q3!};a73c%+9%^;>J6p1sNr9hrj{0uI@83P>lAZ zBCG#K5uN;WiCG$LG6q_VG|EDR39&J4?MFLA)8{nHSGH^7gPn3Q8gPx)NPnQRecIzC zjsHhK{d4?1|KXI|fYUzsph>95o+s55aUX)V;}dvvxi4H!iAQuO%VB7mb>9l4csY%x zJz5u^#BztwyhS6qIP||b3VMR>fF(6`8L6&Lmy~MS@y&r{A{|79q5_qh>NK_I7zaV? z5o3thoq7jj)mkM*m8Ip}L-liVIp?&k3U_bl@4s~s0K2!>kl7HNSVi~`9pXy9iiR{N z7)2Ky0i&U38vd*;M8`(cAk1c{+{UaKl5jl>rSz2?5XNRqk9rCI{M=$agnkS@L zsL#t|zi6~AuOdPrel+gj439>@K}N~ANO33>q6{XV-}YgD=^wnP6Y##T`nLF5*tRkk z07qC6Pb*t;3}oK-&y|-_9+d$DD<)Du9@)xDG0upF11jc68zHl(q7~Vj#PcX8r>TEj zQZA<3C3;TV*ZY3(oB!&Iea?SN+xe3?^mn$>Z;p2vSToSIG!+2ji6u#-&`p^`=L~hY zjvt5JwY|4eHX>iaOMVKm0 zd643Y*+6w!AmN_m3}T&o1V%6Bk(?o9ib$|EA5m$EZ_NXCcndxCm@#VIzjY44L%Xkz z4yZqifd`~%Gb};g2R;XK_SE{6PXZ^+T#@vNyKLUHf`y6&sC#Us>Eu_&;0(B#)U3h) z@ytO!@>ugR)ur}HvXkqS>WIm}ir*_dRKxDxFdBEia#=k6oOO?~d60?rNJVHB{F}e~ zx&4y?FY(KPp1$QPzJCAO;II9%{Oy3)?Jq{w@3lIV0S@UXc$)V6F;C$?3n5)&vYyoy z2^|CxIsIOPS#^f-FLf@69+eXroC|J;^Hd(;x1OYl5j(#2`A_~$`Ac8(?ebD-JMq8& z$j{ykTBTuts(u$f>zNi`c=)GDT;B1MNNLd6Xt=zT7K)+A^C-u^DssViT3Mx9(37PD zdwtFFvD!Bq;7iLh%l?$ycRk8f{<4gedu=_DV$xv@_rBZ-Zz|+SbIV>6ornX-48aab z2w6lw+%)Be9(13CZb0?kjmhdb9&@oHks8XSg~-!Cg^-_)#Dn ze9dA4gGvcS3@6j`coyt*GH|$zClV01FlzoBfc(s#zf1cQ_hMwrEP~;=ajh$MLR~6Z`dO^+pj;qRN9UIFMa62$^0VgA$vGN-mMi& z08d8mC5>h*khJN)I}K>a(;;v(&k3Vbho1I*dQ2*y^WJ<|`tni5Y}U1td7cV zhX${m}UY$f6q|6X86_kT5gkaX{0WhafQ$_Id*S7u27o5NBlYUG#4>2t&O! z00bZ+2}aR1D~2HzBEZYD)W`qm!9V@&Psxw|iyxPlOzs41pAf)RKCjdk-$jOb&$T-P z?L5FWgNXfJ6Ttg@jDQXm7%C1rB%oP7_)u=E%FRoq=Nt;0SlPbe@uhy%&yySf*T49g zK5l6Ax1>5KKw1P}Iitz&_sz+Lm0vmyNb{(L&L~Qwzb86z&rt)DL6r?!^6#Y=$<;r- zU(af7cvL#PHE5F_0mO8OA!9h&SLY42p<06JzO*7d64vn!8G^P$N5E`^U!gANns!XH zUSe^4=}ll^D&oVFhVk-|n6VO`F?e$)cTf5{;J3?T)7#&8B@ba0^j=D5EbZW=EW3E_ zKa%9D87iwt@1h99t0goFDuRZ)DYAuyJ9x01w4A1cG-^Y1c}#t}rZomO>WLP?hvgKJyFmNABJkU-SD? zX*)%}IRo2Azdrx43Z%n|G4%<$XZL6CXhmh+Ian2BG~(-uTL|t9sN^_R2PLB{oF^jV zsy@V4g`JV;gN*46&@n3X5^0bD$Ls);$$Xq1^FlcW*0e(3K+Q1togtaAh=@7ts0n%+9(|G3ht`i__QcXOI zrV^>NM0l>Eq9NXJKI0%{qL`T?8SaK2-CK@{GmVnx8qy@ z@{K9?@bkXD^ZSdbPDU6^kV%+G4F6}|D&~1M$Slrbk=r^CX{OH?vXfk@cIou#H zmP|rv1oK|g%*p}4{*DdFC_*7Yn!29U z@4xrI+G@#el&a#YC%GF-WaSr4q^j{UQx2AJ5O;}?EV=5Nl zy)ypzpOvzT1~Yn#oSi5IjA3?bwPH}t+=16{77TETCz3ny8dr|nUpPi*caz=1cj333|@5I*l)B#~*jR&9FpdcF262=B8 zvJ_0@5hXV}n%*68Rr+Ms1^p7T6`B|Ghdkur$ms7UHgJTs(y>%REu;??w1GKq--t9I zP?36)-scp-#rN7{Jw(h|I%2}~KJu@AdcVGZea-JnrY+q3E${rg-O2dPhwyL*K-pIh4s;H$_3Kb()K+K zFZolxn8^57&MI@7vUxHfWI$AM0JODy(7-v!X+Gp$t!VF_cQjIFUe2}{1ZW!cNz-2_ z?V14Fgs~kWoiCVV4BEml)e);=H@%bABRtE1n*`M$N?`zX54Ywt2Ll)-UgBSfOvXFl z?C=hNW@Iue+(G7{)K{}EHmz@%W{yjm%c zW`B)k7jahtH%jV_;v^6A6Fh*ougNes7}`_#Xby;UbPSECntJ3}VJSF2a}FSXk|tCk z1NNu#G2AL`QRH25z@QaoYm<#0=>~y~gAp2i=OqEx-@Tbmz_umu-mm=D-3j>F&wN~J zxZnHb1_C1mkqC2?R(5Fo$tah4-VV2WU=2nCXn+4yg{<>d^>S2gh{ma$tG}fD+eqbl z+Q$5Y-|{^#deG0)w%7k7pZuTYm%s4qEW~vY0kEZH=-ql6fVYvO(6Fq4Kg)}xb75Na zmmLL6DT`_B(5OdvTVx%`${BI?19z#f(%OaBLD~CcB4qE54}BR8jWpgbr>yENI(>Hz zIO>+ocumKljAHO7`+fXTNn9B<+Vbcx`DCgD-~J-_-@ds}V|jPHvrsM%`KC_BV8CQH z>*HFmny!GU7ddX)=w2jQMRKG$JWs1QoEsee z2-BmYlro_JYx-k_Ts#F2Q?sJ<$U`-T|MYi0wSQ62_60vLowk+e``-0!yD{2~#=rUf z&)-xpKzI_aD!w#s+TJNTvC4I5A>-qAB2%iDr4rQRQ7I#HHsfpNr$AW0 zuuY}5V&!b-JtI01gPt7Sln<1nOY^Q*+wAXjsF8UlUHh>vx(KOw^*$pCNi*mg# z^y0+WvqBc*p8&oOFKf&8zJ?JrenjXXS*1sldDuJM-hKOD|M&mVFMQ}{;Rh_Pr^iPC z)ZXRoAD7ry(Xf=us|vwAe!D=>pY)YuIs#A^R_NK5g2d@+7sB*VG@JnsZ!JENgY3^y zKUf!LAvwWd6evY%v(OQ`vz2~nx8*}32Lo3Yb8#u7C|d4qdS^@J6&xpIPrKiR;eS-n z3`uv+(ulD@x3GHYC$5<2BX6q{+xzW%+qchffAE{WXE!7-oje+_9YFlwUjMm^{0Fb1 zeKlUOqagnjs;>w2BD$lz3OU;bsPx7(iEE*MmM+o-Iw!2{X>;B_@QvT~rmXt6l&Agi z8zlj2DEfx4aiUVYVoj+9hrryZ)#x3D?Q>lFN^ig!aXn!65}6LX1?|Z2HDF+t=6>T= zf#bAyKkAv|gJCfoNlMdP^LUhcO$PN88Y`CNs{VMJqj&!Ap`YvdfzZ7zjHgxordO~P zjWUBh2{Ey3-^bUokhYy6%V~3Gp!i>AEDL0CEW_d`TaQUk_!NM?HkqI>y5P{bk!Rpj z_=7U1VuWT4-m8cXUO6w56fE^|jn%BeIP1`4fR+J|+ztX;hSLT##p>#wxpDrG&J^H6 zl{!i?8Goh&`|>8Z`yd`Bte$=iH{&UOfA4=1;H1r1(Vm*6Vmghs_YS-fXg#ElfA0U5 zAO2@A`?bNCwgZCS`wibEfB(JzReTAJ^T*=jFp&;=bzEq>gmeRF)QC@6IHaf<+NP6K zWw+2Ho|wor1Ai@Ds=kfmcEbPrzx4xen(^QE`uDGselY$KNi1W_0-i!<_}&{Jh>zk>-{9uM6A}AK@rcYpIq@hDgv>o(pLPqsyCD7 zrPoy=8hJVdD0YEcprJymqk5<=c~daJ2c2K}{IAR3`=vL}3E0x+2>j5W{#)|FZ~klY z?st4OD>R~;2st{msz;!ihQ;L*N!L}r0i;ccisY=*?`3SUV{@G+rb!L9D9v`z@`wJ+ z-+J*A{+PDN&~E&{_*?rk;Xu{@zz-2$H1O6V^g`3j99e0cV^y!+_?WjXZ07x%Cd`<= znACVe3Y$qvLe@CK$aNKM4PK6}D&1Q=2&{hnuV5>2+_}3o`8rmGjX(5=+7qF8tAI8z zU7&dA6xtgr0Lf9ii12_Ni8(@>haDxw$$EYb3y8-MxHyo?-flk%WT5EyE@0E{U&$lW zqqhL;USH!Cv4Mxw? z6O7Pk5dSguev{Aj02zgS0S#*;rHa%fVidK3E2UOP9_6)$@a6pY`CT9rEw=OC`3J|iC~UOmZl2+(HZy~TY8s)jt zTXQLd)<#Z0`-1ue!yhc`WPu;3~NKl`!~H z?$O|D0o|armshFA6}JgK{l(A7-~E67$A?wsckc%0%}m?*fbB0Ffj#Y| zHJ?C9xKm2wNrpi|iGiE#tAX$2PWc4ZAp#HKex*+gl;qBmI|1AC-GPtaDvwN$KLqGq z0DB<&uNvaO7$_ff!~s#(fyfxEtb0@~Q|#o>3vWw}ob*t}5Na^?0dfGqCQU*^!QHU| z1Lk>E$&M-jBxf#fT^_VP@O=(b@-vmYDY;CFu(LW9wX8&j9lDs)Ubt~x3ols`_zXT3 zV0G3~(JSAFf*UvkXcT!Mw=&yT`);56eltEMSW`Fx4`Jv1`vZROvvPcor^Z37B}h^o zgBl^AP`{+}lgY^F_xI;1ebcFqjYhwSDA%y_GP~h_F#4PEe=7|C{xQE#eKv(ex+(2ixL)jE%A@|LA>niYyK?432$soTWT1Gn<#%JYRwE(LWx=%ik zb2m(ly?gw30o-giw)A~J|AVjO?Z5xYX|R_NmyZIn zpy^<=yQ2VQbTDyMaaFipOm605D4Xg{%?v$@dtBM$idIUh%c2`nr9;mHy{SC0Fz_!^ zor)DQ4Ds-;o=#UV<|4Q~qphqrTF(v~^KsA!iE8~)5Cv=RA`A%cx5H-N|LS}9J^QyR zef(elqI~qzACph~_9vaWBaxjMLaXI*6s2OI5R_DJcLtu5E;$n0zW!$Pw~tW1RcSN& z`&avJ-|L@YlRZUrk_;zO@KezqcFYekEm2<67_kS zAKqpt{DIzJxrR$a_i;4KXq=Af?K6;E5WUD|E}2$CaUtNxg~V>XimegB!3@ycE_X4u zhnQv>x#t3ZEGu6U_&!3Kr@}A{j{C$f-eB6}k;WhvQtDgk_ z{#PG(Q_lrp+CJL0{cQ$m+l&6h_I(BTF*M^owu6*X41+>{ON0PZGdw4@>MUwN^DF1D zRNMO_Z~O9x2*{s*F#7L(QxEn{>7$?iIr;Fv{Hf!?!3E?ijGK}7C8U5A>_G$FSRaEi zFDOEGwHwfb3ZybA{j5tG|E~WA$d(~{B_{!r88-<$A&&-SYrj!1Nlrzmf49iXC7iO0 z2?mtqhM1fVe0V&5#e_PXW-XXx(9Zn<3uL1#Cb4`&MiTc-lTS@WF5S ztNZ;H4cN{KeEf62xNl9c3Ruqjx;GSp;xG`B!rYx545Z|=2&|lstb0k6x4bQ^zeQKJ z@!YO&MVKGcHikd?%m2$ho-JfW`j6fK+n4y{7(aeC}UPSI;nER>7Z* zL_XKVAf*j>jxxSA5zayAhR_vxjM^TFi}5q~wqK4!2XZW!ZYDvcICtc`^h?p!9)@#nr~l=Oa^z9i#Gm08ju!E3DyuoOiLFQde5Fo`ve$ z;V6hGXi?gWq0_RARm*bQ*9U*%cRnc}{O0d@OSc5Jw5^Qy)$unkXW+MfVdup^LD1C2 zE{KbjYkeL00CHu#uh;Eu`?n)*UyQU}-)f`pX&b*E{pBAoU+%Ld959vU5Li`uNt_6C z<3?18>~Ya*$Egj2HY&srOY5B*E)~=zt37J^?+zk6!p7iXx#*c>NTs85eEO*Hnn*0j z#h9XR!#MQ*OgfCMOb7pz%9=Tz0Tu<2u8}1sOr}w_1@s%e2=D7bCeA8phW&YqQ@L}3 z@+4GrJo%00X0;XDFmI{2i=+A&?75bjQ~(IVNkrycx+n&TQp!h zxc8+<;S9*Jf4zOB@h?8`wehw`2Vj08;Y3Txx4Ey=Sk#Emr85J*%HMvOZ@a$L;r*Jn zvDpq;Zejnb|BSOI{t+EWK@VOb?9k2O!W&sxBtbFhkGzR;XyyYAplFt*+U zW_py!3eJj`uQG(J#Pb10$8dt4S%Uv%&e?(NqSGy zDJ|&=dsbhh8~!HaGGk%)u`n!O6n~QK8j*p#Y@@C)wKyGI2R}A=c1Uhfk!tXHUBJ#p zixNQHZJ+*284b84Z4SWZ2yDi0`-tJEA41=UAv`|*w*64iR%VKrY-uy@+mGxVM*g)h z_V0ejYipJNb#L0&@jf^0tNvgAY5C~uA3HMYvIz4)_*-CaAzjC6CeKgk?iPQqJ zXxVF?giHlaxs0_Q)SgZw6g}vlmJ|OBLj9D0v$6PhyD1Y7B6q)g|E>SllKh$3Iw_>Ma;$cx`<+;gR60a6NpzegAfXcw9?KAxQPtm^P51t|1jP#c}{Qjj# z`>Ow8ZeIW5XHup`+2AKauUcNJ7<(xSAPTD554Z&`1l37H%l4FNt`L_3x|FBfvHY1> z(RU+r=7;(Y3t?=lfQO)MLeBl@Sd>Lg4pYJ3cE=-NLU7oU-IzDON3)+}jx*w8dmrPX z3{@-ND(6L3^32CHKFchNvdotoHpdGNG^r9M20y0LAQ=~T4wYPBs~KJkZjw5Ali3= zU|djoIf{XXQbPI1Vf4P7tSWRUZx`}0C77*Y7_<^s-DUt}XgsNJ^Z5X$<(y3`&*Lqx zxWjNq%Z7!UvB&3VM{uuF8?Cby|5;REOWT3G|N0mIJNYYr{5#&VFR%H-G$-7mK|Koa z3lCL6bKQ&9vQqTl;mAt8q=;d0$YsX?R%n5Q6i#Qe=8J|oie-X$<@Lk-5nb-9 z8^kG;Pf>y^(TXWC4kd3A^k+<}c?#t(C*1o-9S54e*jaL5{^_%*m*e5{mHkjch_D@i z{j^|OjT_huaSU;X(&uikpp{#enW4YS@@tsKar6+Qnf@Dk|0X&B&SdD6$QB{U@IHG)2Mvb!HE#oSubk2!E!R|AFkuRq1`c_iP?w12?QI*QE7A3O zA|)y~>2@Zg{I1irzf#(@k|(Wv(c!d%P)?bqf`gz~LKv?lBgcN)>s~O@B7x~9h-*h( z!v&$#s7(P|ZyQG5B=NdzIUir6yZ;{XE3mz(Lj=me0Hhn&+wy!@HkG3Er72s}VkzYD9yo1X5){zmPDLPSV3LkY(lcp# zoOMb!kW?@wsOWO~9DGA#c2d5M2|fpg8B_O_{&8RDNTctUodB5o7z=g|q_u;yV$f$_ z-Bi$`14V5i5)~9OLFsWg6De{2Dq{qDh`C>rOTrV%IuV~AF12DeWKw2AJ)xs z^=@f06`HWpNnBG^xJ|sosDTzN5X#SJhY^03X4@EC9vgp`vmjL7q`ERDMJ^U7=OTb{ z?I46^8y&J$gg_E8PSKZuPN2Nm&|7!{#}Uk1fL-!!13J1LtoAl1_i!KH%m~2#IYXnl zNRK3~<6-P@QjYg7JleiMd)?Cb!DPdI&^Q{W6>T~SP*ntswX3a=<=4;>*yXd-dlez$ zkIaV{q9$1OK|`r}(hJW9c|M*sPoyhfGya8kT_lZOzXJ=7t$?#&-N08TfWr6zoJwYT z3e)30YrIiVVkvx2NQ2{1jDKD2Cx$GT(Nw}M>o-&whP zxcZc!q8mR77|f$lanDUKAC1yrk?YO-3`0b%-PAA@@B2{p&Rjf4nW4SEN2IVc^Xj#+lRKdz39L9+y6lR z?1KaF{;&H(N8lw=GyH88wNeeUkyR5RM?lWx;Sl`xC0#%(KEe!jF#MmG;PQj3xurXn zvX1-gRmP(`B0^5D9U3SqQqSZZY|b(thFRU*WW78r+hsoN;>oa2hMxP>->IBqUD#Kf zFfF)_H#xon_S>C*hypBz`Fv3tOMgGgi4`sh*6{&m>lAhv$F!lm@vY8Ob`-t0U|-Qd zj+l4Y-G>tIkw>JP9f19ZfaLe1vD$bMb5k5C^NB|VDU+k9WngTU2d4no+G6i1tjV3_ zy@G=5587DoULB;O$O4A5ItH$1l~0`OR=&J9X!oq13d^;spyL{b6ZiU^x)sA-@l^_d zL7apAIqOCijWQ{Z0w5ZC`q{(kEV!Wu&Vii97+*YeSW!yYzzYqi5b)M5kS#iJe2LJ9 z_HV-5e*y4o{_u>zW6~b#fBj?o&-MPB`!7l}=99PD!&Y+Y6pSh586#U*mkzs9U2uAZ z;3;m>J?@3z(Jm$5tW)k{HkpVY0290II)X(*fJtSl% z+m977(tx>bv`^9&MeuEd+D#gbFrb~Lo#X?lxW_!KgOO3JD}kj-t+C;UIx6fWm-(!~ zmUX(3wZhE^N?`D(cIK5*+5eY}08{{;oRQvs#vcM8H4XhS7P-abj)4Qw<_K(`8u-X> z{B&#${6YO3{U3z1o$B9y2Vpn-zQc0_$s+6LV)S~vK_K+9w_`&;r^u?6D^g5GhqkMj?`t=1VkH;NV5~@7)nCn7qF<@PZCrAIiLvN2J>w0DI%L{iATlLz!(? z8p#ulAk=w}23n$*A)taFEMVMWf`YzyoAK<%8u#8yQxZ`KgLdRp+{zTD$E8i$6@8(g ziFB~NNgys6{@~LX6MKjs?-lxQf?@wO;s=fP5kB+7mJ0K!t(|m0l$@Z|x{Q16!tW{6 zE(zAtiXTJ&UZy$|lXKCXlcZY_&p^KGK`ukj&v>l1J?(9kyM4Rf9u@eb|87PFHe*o5r3p7i3ZmG0HtFwt=G_qp9W~PH4AEDOXPvC_hZ2kP%B1*vf@DzA2Joy16}XN`$upmo&aHFP6iS++2PTdw0L8leKXs!N_f6_@uL+kf)V#wL3#oH)@Ibon))?nAa9VP-yc0rbB=>l*d#4 z$2*7=NE$&j!ootgm#QoGx=QCdB60#N)j_!Ad^~m=A?o>x2wzmzRvsR{lBv9UIRqb$ zG;L}BRlW67x?6PM|If+8`yc<;pV*E5zj@>HBCsl^)Uaax6M9qzaI9l8t?p?O%77z| zNWHIZggr<{vC6HU0T%F6w+L8=k!~pu_*S5ddYTb}A?oGl1wd;jUMfwwHNV6A#d@{8 zoY1ATjq{xj>$t9*(VlfqOgI{e258H^x4IxW9|?#Jw0Bc^Ii))c$WHtI2<7|U`PnEH z(#;+$?76#p$5;QuZ~wv1$_?rE2!PtVG~EuquKO)OrKvq!1P#y@xme%die@Hp0Mx~M z32pIS2!IHAh8Bh$g@F}GCF3Uoo~5uNu9bbRn5}i+peLC}{7o~xk;9?KZ}#{@&EOr(X?jTP037GFAih{pWLQyBl*8DOyG{r~!|mKPP8F)NB0 zpzQBZ{-ihr#(hctIQcL8ZOOmee~S#f_mBRG{l|FzAg9CN|N4IL@e}K3i%D|HU~32E z>KssbO1kCn6#AdAqRlBt8u1<%50dk#tqnH*&~RMQ&o$^n*L6HYz+I{mk>yjqwDhAU zB__DUv=!$0-rkubJ*6ocP}HEMO1U=0z1NO|fy0m|AU2NKu3!EvjAh6F>;{oBheeG4 z#zHcuAdiVNNu!JFVgNdPHpa%CT6nx0{ex%C`J#hzIUpb)x!of%20IU5_`>#G059wS z?B4-^;^2GUsq`8@^^1y{#=)61iyx*J1q1APu5{V`DoOA%JZF#^P~J3D8s#)zS*cRJ zMkkqVohd-B6o3uCE{6n1Z|WJ3F4K|H?M3#cR2NRwpj!Z`k3FF=(Q2!HaEz(}Mj8|F zP)OgE@pvP1#6ToNqA)M3PTnyXRwuxVkE=ryDo0xn)j?Dx(5i=!(21gnwZou({9pg# zzE{4b;}`jkp9S6`1n>Ux*Y=;}{Zb@1_P_l3Uwv>|j-Ms|l?TVAN<|pMDv0Blmb@SY zj)Mv7wd*XktE?a;GN1!53PvHEfM%W2kfh;r89!RCjz7y_-7il4@b}RoG~M*yI4?lm zFP7b>q4K^e6IO62=q!sEIR%JIMnuan4S5yQbSP)71{&7rER=>-x0QG9;4N7=`gWAr z`x3g@c``8W@x^2&t36x!!aSLupD5UePDiy#Q8)YJWzK&4*PyS;W+~=T>L>4L2p7&g z;s=2q5dqLw*`jB`dotoM#U|+p#KawC4ll=b#1+hdwgO#HOa;XR1=+_BFq&?PlR?HW zifVuw1~L@t$mAqAXc!BBHjVptrA!!4Y32;ei!fG7Yo00iDjE;{2`K~{Sj15tmppj1 zo`hD`U<`wCNsu8vOPf^2aNM%ow3?p{JGaw~KD23Nb*S2mw3o}ML^ohDMxoyzd?rGX zgB(r}+3d?^bbWQbeI2f+%^`5-;N9vLI(D5U zrlY0o!Yas5U6wHN#|x?Z0piJ{Oj+>EkWs^Mk zw+v0pLV_|F9Q1ru1U>yEoeCo86bMY72zk2hXjFW5BhBIr?d-4ax>gm?sI@yaNj?V+ zO)wg8P)_1jm;36wsa!SoQ;4(Y z4{claryA?Y8T9_w@IOTcT*lV8N^x3(l>*q^$qH7)G0tE4mcbEnpVQ$Gyi=~F*MIjj za(l{7H}@2cEE;BfkDY+$IGjboz5c1fPIQ!M`s+qV3LT+Ab^Ui9e9S2tIE;nQYqjDE z?NkH0&@7&F$Ta(lV+Wu4k2WJB;c_R5TZm~Q;G~M2d__wRhwytgev3V5qiPpTMRBA~ zn!S*GlpOzc`7)l*9`9HzNXY{1DJ#V6cmar0Ckp5HlI~=#S3E&swX$ck+_t zqUZPyC#=>p39slFCzyn#3|QyL<_WDzOA3y?H5(OOpk5V~Q)MW9M0v%9(U}P5N>syJ zjMW!71E+>Bi@|?PEmd-;9*NZDV-K5rePcq z$HpBJN8vSb2%Z!PK!#wFX9sCr3GKY?^Zd`>f02Gb=PWU3i(DA~S~LEo75qfFzAufE zj7$t59nTVhukcmYZ!8N~Q`=AdXP`$qR<0r?+9lE*JQ10;yih6|q-if3dLP%~tN@?6 zP%_|&@xvRQ<~c-&L_Eh7%iD=_L%x|=70cdMved?#b3j+oxZ?;{U>xSV$)F@Ax(B1A zrbiu@@%CvxLFX09*MXFbSk#_s8O7p6Ddt6#n}$FoZLCoL6o&8N`DO>;?$(0a7Xh&( znQ&M{Qi25m&YG_f6L3^@5<-&@?PyG(E~`lIRZDdb17(}oj0>0fE5&B=L9vdE7%r2c z8S4O#Dm`hv)Rjh{1kNMQ(X9+(#1+|B6gzMHz zz3+RdTn@JpxGfwu_^%jclU!BF0C?Uv?5{~T>^Y9}_z29?nc!4et@pH_XJxn-pNJL=bpk97%ZHQ&rb%g?ky9P<*Esm?q$7c@B-vX<7OYI*;?0L?sQp z71Lf=5tLiZPd!bYbEL111jt?Ks~g^?|H7iBSbZ@5m+mJK#1SPNw9G^Cw1Ix>2RudF z7PBTXQU1c`$GBgI4FN0z&mVgLI&`CE~$l);VqR99>B^zIQuw@BXNV%-O^gZsFqgB+a z9Mh&Jb&f)2@E3xaMuAq-#QfsL86&#V>ebkZm3MVJ0NY2y4Wkr!RmsA@4>*wcoU-WK z9Z^rRjF+pSK(;j!tIk1*gT`F@W&=+7!LuF%6Fkfe=H0x|`l zPPA%U>zU*x0D4WHrR;zt3hn($6$=mlYY`EU!Kjmfuc9osc9eBJGC|xq#!698?HV>1 z^SbH>#ubN2Rf4zV6z<93VgIG!l-D)sI4GqYCT;gBysb9W4lzpocg(*hJo0fXG9oBb z8Zttjgw%VdgBX=<#QaCQD)R^}?3Fo%NDqU#ZwqMlcZ}MG%w&4lrGAgxm~L_azVGLM z@HHh@Wt!HSXU(W$kz)e1OVA>vYl409rFM2ntRh8aF4~|g?4Nl1S@jSMOTDSRMUS`i zq_sEkp+mW7#}Xv`TCuHO-4PJr?|83;4l0R&83l!s^H9CtpRLqKV%?##K=v99~OPPfJjYw%wg z)k|psa0h2nvdf4^2iv&o4DDLdw*??L^3J`=kM+VO3M%JY3}5uqb! z3I<#9z198q-U|2-;9P0oJvj!_BP~#j(!|DSagCW3GAHM6BlFN&e@5-R-Wv)DB zm{v6UDFB63uvJraDn?!mn^A~CkdN=Y(`oA;{SNqX4w$Fp(ID&iC0h9`Jiu1du;EK|n!K%$w|4&9n(wL>& zYJnq`U5vJo2BBgLm`IZo16a)Cb3vVSTgrQEN!UPQ6LNjJr`LL+45Kd^T&3JBW(<^M z8w%C<0l8BD5Qu_jFuMf{6!?j`CEQZt-}AKf59hvHgPgm&0=h)Q9Ba}?wsiEC{enukM0Z{GkUx$$>Wa#VgaZO2TdSV4 z;2;q1jQMF#3O6NGc+C;OE0Mx-#Thi#4=`#c*HT z@7n>mRfksFwGU!#-0J%&;lV5{d)7{qAHsn_mSrgGMT)WCi(#Kjv_Vc-x+TSSLZLIx zJHC_0G*UBip2;GKoCzW_)r8kzRiEMM!CYWRosJ}s2c9S^Kgwb#vtc(Z=6KaezNil! zmom}_Q8461j2r=~D%l0JBS&|#7V3ZClY!_(ceIXJ;#ZWlyk9&T@N||!9kh)As!Eit z_$5O*qBCJMUQvd^gC*{hILeRDo4T1%YDT$Y=~Xq#z!Mt%Ci7(Q8WjbZi3qE}xWUAR zqo-1_<`@BE%MoL3(>bPHMqkN|={5(zj$Z=ICZq=d3gD@K*^h&l=EufJ8`2WzcpDqm zkb^L?LN?yOJ2c=8%SG)fclb`u1vqF$eQV`nPhRH4bG!1COXwhL`D~@F6m~juu^LnG zmg$h6y6_~`b_yOjHJ=BKGS$HQmD-Wo4;%9p|ErOV26%njAY=|eJyz%@q$I(+!PuY3 zM2?9x=V?j?!qXfClQ~L*x;><3b4}iyL|_YzqBX))4JU`3R(`(2PXnQm639<_@lS6r z>_QHREj-CR$TH1W)Ac}jfznn&hsc6O`{pr_jboAR&KxgWXHYo zGzj;{aeHb5#c)_lFbgt^EcV2Pvgwqfr337!_~CX%fwGlPfcbk9GK{!oo#z9rj3bYI zO=x)Oz_rYM7to&`ZOE-9TqGrCSodF7^ZRH0LGGf8!biA+o?XO~nr=JkKBH>AqK zvLwr#i)oO2;z0V2Zsm-k-m_hVrv;>rEk{`m9y}}p#S=7`Oa>${PjVV3C2717o2<_D zdRBiDsEVmoDO;$08P_RnUq20i!ilTPH6Mce{SiI~>GYL8t@d45jrZ=e)jnz%HHrUh zgum7&@3Ygv$iyLk*2ih(yS$*m#>r`C1+2FjZDD`H&`IrR)UDer?gZ$GP+c1iHUMX( zu8(Px&NBm#4P7$gKq{yskbC`D?F}Fx%IyI!XsnS3m86wrl=MHv)%7(6pz1%$tp!5h zv(cO5*9KMMGyRg-lf#9PgbLak-SlUL=Z>o=PsWa7IIX2hxo`NS+OSIo8clsvu3{vP zE|2ZemDK1$XCFu(8(Ri)kU0Yb>~kSizBCn2aKNIW(z-!#qK;msME@y&#-xNAt-+-% zXUA7S`S>a{&rlU_UdfH=HU~i8_8uWTun=fG_@pkWCM2|OG=%MtD@=Z;5WHK}1_e3Z zC_Qmo?j_+s$?}$P%2R8FySs!#hhol?l=f?~lk1c;SuCr_RX4^5z`-Yv^b z`~JvFZna1#a5c)~NnVkwhW<2BU*(*+t3<%4yD;itto^=vr?C>N3>D`;#_6UsRm<-pGK zBjOuApNU7!uhBs)S7wgsUsfw|qwj{&&NvFu;;69}THzG5F-}>!uY(XE01Y+$FfL0p z^`vwjc1~$gqD^-uL!`wl7R5waaznk6Mmm<4f>`%CleKt54z!Z)PR1}y&88Dpso@v&upEao z0`g0ur+^8V7RYPCO5_V>P^Qt=YtGcb2fjNS6B+YNYVYc^*7tx}F`t&-@E45v04@wW z-XglEeGuW({Df8uBa}uC+9J;DdjYALXBDurhR5GJIGh1j&a7FPj_5(L(BX}OHiS?vKsn?fjQ}+!SdW!Z z%X^%EC4ovtQ5k&t$uQk1jZQoWcP*P;V~8wR0)v-9V6Usl3G@@AbL{)c|D2FBBXYKH zPb=;b22eH54S9Q3xhc_@Llg@6az~{;dpU1U1wH~cIknQq6U*R&RcsjRArgQ%*7`ON z=V_utkZryy&`yaIPQr@;$Jr?y+{Ao%Rpig#M*%TTuR5hUcX ziKq(7T*O!ir~Mtan6fCaNK=rVl+?Up1k@Lm7}-2_YZf1hhbFD?Uomu*nE*f-YrFO- zUGlX`b-dFatX!NcgK$;A`9s0Czx|cmkZwK$5X4=m5gZZUb6$?IFo4@)DA$Iv?8#7!>G7+3txa|&oDosBG)IGZb?3qrM22$VI5>Ts+i2y0S2Au; z9_XZQr({^6;X0bDJK=VO7h2>z3cIOQ|EcSugcQ{Qd}Nnn#q_lsal|>{F|hxiTRGsEZM;SQth@$+1US(gvssVx-J43`CtT z8Ux_%9+j922}%rYJVjAs+ei6un01||Pc~8jzy}iFKFEpw{TGb@yhhFqG9LzS0R(J? zV4sqf>}MJRkc~l>J0&8tx^s5Qq+k=MTm`6btW#F%jthz_q0CmX<^o6jd&s82h->6%x?c9yH!jf7S z(C0ZCfiWo=fE3Qjax}-ep`W9OV|b2DZTQPE*(& z-SH)QZ@QhpD{8J;A(POPwM!pbiGv=bL@L@ zy4pRGEkbom#3M81N$I4Csa32cxk3u2I4=w~2p5*2RoQU$dj%7O)~xEdz}y+es(g;I zUJ){oM{-8P1TZMqsZYa`e54Z!hG9LqE(hMw+$quG7C>JO<+yii#7Il*GN3z|AAH8Y zDKQp6`=wNjrcJ8AE)^??3L&{c&SCF$MSj+@lm&PEq{z-;KaWAs6QiU^qYb|9^^YO2ZHo`6@o;FU=w?-L&ka9tbR!I-7NM*k+tD3?b?^xAWnx`2u$ z+rj=Y!*2W|OkWL^7&|a#qzD z^>7K=#=}Ia98pMn$wv;^w3ajv> zrGCK&)s#=r1AvYg0BV+{7{}- zlrv<6oJ75U*)4$ORe+$Ub`wrn#9gaXAv+LCJTP-X|Gmn1_ia?$%vY zp;F3SAW8c~ao+!M4F|5XYGWHk&2>lC7-OJ*=gEuW67FfsC-)QD9Uchw^L!yhe!s3Cq zxp*t7%jK$-mZ%wAMSv;E&@MqA6zU7`WlgeunAmh61|==zE3aOU7CwdD%i3D?^m5r* zWQh|QmU7Y@e1(;HUA2MSCD!wZ+%HV1=P#m68w`|Lxsb9gZTZRf@lTfK~Sp)?>E(x zcjfmnZ{&1PX!1HSKb1Wc5dg`6o?@lKr?tLtTg$nV7)$GhEM;E-TVb3v$HVK@$Utso z7}t|xu!P%AKC43j#{1OTq|tR}g#cZI!MLf{(&^^)~ z`#Z=k(TCS3!I&3K7afUe#DfQw<``6?UCW_!P-(g68`rEGx`Z?XAW(7ylq97_STjqz z!l39SioB;>u9pBVZk!Qg45-D*-*GQ+m(3d59EBd#p~B?YXd*H>2ZSlw-H~t@3~@UgoSgT{U}4n&09vdIJH!?}p{-@k z`Z%C;`)#Pu^rJw-z^A{QWscsMtk3GZKUk+Kh=}2rpL0u&PM=iFMN0BKx>Fs_pvJ=?Cz1;jc!S>QGdkYIwhe>C4<(gHS77g^0#bCwQd^hWh9@RXqhKfzCFR z_Pq?XVcf=Pge2M!8Hk_SO04_lCzEE__iU5q7);OA@RI?rb(HJEAT<3k3?|((~U|~Tds0Mas#2jCUP1 zf!>vNMMze2%LCh#g_xiZmJ4iyYB{gQCP8`J?@eCF0eJfxuLS#JsQ~7N8F2zW1+bUd zPW&&X&1s~D922v$!4_qEerxworW-%J&H6@kfGtv-eTqy{ENA)XNxQL1M_}g9-?>qD z=0C%Z$hd79EwLu;DuG15wFG_ z-{G@gadqTMMAl79S!~zAYfzL$5YHL8{Gd@u_|<|RMw60V=QcemF$dK*^GtW~Kd+pV>0(NH*#du}-s$OpA$Osa2t zB{!s7e++1DL<;CGo5fBL{3y^WLrhy5j*2hXbnGM<=7NqRUj>UM9Oq0|0d2}q1%>9T zt)!t#O87;}sw#38W@mh@ocGmdHM|Ls*_OADM$=c^yj^g9B7Ze60h|f|sxSs7r9WxZ z8EktysIx&A5tHUM=_x1<@nI5jjR)J~-qP#sGFyUO1mIYH~nPyivWR+}Dw_6B_kx7)zj!QI<4Zpq*3Jli7m{6Y}`yMKjq6|KVR-P`vYGnqyr-Y3)0xrY`0qKmy75SjfrpE<8q^pS^{Cx?ISa&376gLo0j%MS-5?0i!4+H1JLfh0}~d zcJ;4^~E#a;ybAQKf^byl_-O5RaH5h83ZBQ2ak=tH{O~8S_`?&Vtx?c(k3YJR{%gHBm%h} zj0aK8vc;?&rP`P&m0$c=2nzPa`OovLp=X*yWG-8=03_jxR$s~ic-#6VKoEE`POj4$ zbA!6y9DcDjxuGmlrm4t9uKwY3s8Y(TdR>;1p*qb5?MthNlbVKc5|MFlxf&Pg7>KLF z7)xl&aYqg__hlFkOMv?D*{m+M3jl|qkoOon!b(F{2;H{>F; zg^>k;EbsACbgBvpjE9`y+{NtxIj>WzJ<7ITO}A7k(jU56t&8<%bO?r(nbS9_Zz#O| zz7BpUX@%yLN-1xS=Ij)o4LQ?!x_qA*;{~3N_>-+`;&d@1_~{NM9X~S7DZ?TM3MEaz zIG1xF9;ETLKPTMAa8C8O|9riajy~r7L`j=TFMX8@ZLJO{;+n2}!R?*Iz+9Nf(1K4o zF4z*;ZS1{KJB2|iTP3sBi7_x^p4PQ$q?gI9(z{fT_0zzH?w;dbJ430d6DCCS`#$yq zujER)VGCe=3!t~Te}?~1UUyTD2|?vPdTHRGWaqU3Br7B2BmO80rL6lyW)xQ0DOgh4 zO#-;;=ZQY@fG348xvOniEgOX~lQ-vmSo8!PUoiQ77Tm^JUcsQL!|Pwq}<(U z3aV2r!{gJ_6+$4K+L`KQO9!+%2WL)0)MdKtfZ`NrD;bmS>I)??66e~I*rd`8l@%|*cdWZ8hlx|zqLns8M5YLU*JvVCRG|5Ca_$^3C)bnHa?T?fvfdcZ z6VyV@7V$G+U?-G6`lrV4gFbbFodY>pap#HsgT@_>qAJicL8NF}% zDY$e&a%05neU7kRsFm2&(=vo;e9LMs=^N;n#dFX>eYUKlU>tZsR5adXSRiJ3??qkK zDD-vKf4%UOb^XOXEC7MEyf-6x+P2A~3=Gxr2sXsu-|&M#*Bt=0ckKcM`x0U>Fs|t0 zbEY{*D-(Jo7$yS#lcv^Fyh+A87ZX(42+>lgZf*Jn$#eLc70y@md1$Sw0M8z-xXGA% zgd&V_6+jg{?T?=T$dzI-a0{G#)exM4(I@RK9nU(JhSsXlJo52?VUE5c_hi^H&kcRv z8(f)A)CYbJ_7rT0#+c$bgcG1VpI(O?F6d{pt7Y8En9(84p?*zgi)kl+Yn{g>lHNkx zUjzC%`cS_u1=J>_RB5aH`rdh|s0;U&OXj7gsVgaYM%~DRf`TQ4p*f$uk2xYK$39Z2 z|01}ur7$wvsfB?vydyuzokHLIzEVg%$^N!7)-g^8J}TXFUJFDIS1q+{pn}?u{m2nN zp3p%PrQQm0XT^wsd{B9iPds!ea0SEi_QZl;n0x_iFEvE9t5OVA~G?N#zs=Mnqr*&g@ACQb{E+Ikpo*XcjG|&G)&e zFc_dzVw29JHWB9c(N{5`#KIq|7BZ0C6YMMPMceY4f9xzoXx*%=`g4Na&_xK|jhiT~ zO1uMT&~Y5X*^vCAo&*&Ou%*7Of31mhQ32osL;Yy{7kdn_%Fk_VMaeM{oINmAAVvba5xg86gpiNk!$_}J}L0b4HfK7FrO)}qB zTNQ^=Phud2(JS!_L_X8Bt`CRMp5pAN@Jkf2@Xc zi1mrqemm$t7}bjZ+zz(^RNMSWp;3EbF!(rk7%oDYz;QaT`Oej%^#?KSmUPttQ1Oow zxWdv)y2o(aVY3vJ(skLD_AoiNW;FV*P!{VMH00ytUb@})@|si0;NWH0XyIygD%A{b zg#8TOUF6dOJf+XQl>24r*$*<5Ba85x>c=p`YD^$+*T}5 z?`l{@mW?$OuoMh`>q)ht2=ephs8BeT4jj#oP`!vS1)8 zrmB~)CNyzfhLs``Cu5<5@S2=KSH7#ObGrg9k?kN~A{DqLQb{#K46>&*#*+64j)V5< zrRDr;!*K_rHB(9-S7+n&tfbfTu5_iZ;_2n0QJnz6jtPUTrS-$H#pr=3VM6GqBBZYO z;7p(nTKuCaBXT0Y#v26asEYI(Dm1KwlK)p&BM*lwkhkQZ%GA0qBg zN^~7GtgBo`QxZ@pv~N?b-k-wwqQ&i;C7g%nC3}3CDtM7^dBs(IeOIpt-k2u<1%t{}Qr{gUQ1TKpTxq{n!f zpwWbKHpSIC{*2;3wk~Awulco?lD2<)TRFO9mL^V^mZ1S(HOZbVBWvig*~GxenJ?xJ zoHgS0yjHy`^`4!_$=nl~WglXU__ZM&SGCZuBk%Zre|I+vqG+n342!#4eh}!Q1F-!N z5E|`bH31ByNC+}hZU}eoS@E@1mkbRbl~Iun&ss~X+6JSB(N^P7M%vVQzK6Eac#l)B zY1orS3L~)GSEqtr912ZP&+wy()NKL}M`9n)@VVoYD{baS24jv_?+|*@!Gi!Vh37It z5?c=lAJ%!M)jUi_>~AeLI0}+>D8@v)6QyYpsBd)j`$_Iao&~Dc60>lrAscF}d{{vo zS#GRVn(?Pqy=0k*cC5Ul8+#SuD8Mm*tg&vukM}v(Wy?U*oF8O!1(?(f%4J#N+sZJ= zCAkD$jP6=G(?BDMGp@u?0A3uQg%&E;F{{f|#TXMbDcol2B9~uQLr~;9FXxF2)W~-R z!?h}`r42XZ_sj+FX7 zlCkIwc6IHSa}QwXN_&UQ-ST??*CGI~(fm=WL0)aB9>RJeWm+cb>dMIqDKg@)iXel# zDdSyZp&EzDu;YXnge;YsAk~+ECo?kCw6c{1iHrtRqnvzJ^DL51K`5C*e??hY0{c^K z4@!xU6ENcZ&`KKmaTZ;0L2Pqe%U9jil21J!GziK?2zNzGtT?A(YzCVdScHb{Obngu z1@vs8xf_$6+z&0t$QXv>Dx+bbRhprnR{e=Cy$urvdu-c*T&&DI04Yt)lBG32)|_() z=i;P;&hm6&TNw!mT^1p}B)Xja!C`W2z;JzoC}lx36Ea+Ewv3*o(8HO%ZlEO`q%}T*ozL&>?F7$%9XGP?ujE< z9awCsgG)Bau~=;%W#Dk2D5-Q?owrdsACIKT_3M4ilLJH+VA{t0iZVqhfT`&Bbm$Mm z&9k(ww?$Ui8LMUGG*uaT(Nqb$!3M*)C)LY!{HiiI1z-gQXh&UxY)jx5)JaKNn$YAR zn(r0rb=mZ?9GTLfnQ+W2I5$$+ci1ZMAzP=AVtWytid8*EgyA>Zi7sYu(??o_jQA9& zzph&9OA&8ny0w0-gI6oG>J!qkqF~lq%lWAkHA9qGoFF(BB3cZ$RW2tbw+rtS8pM%K zd}T5^j>5DI%vrBX8Kc%KB@vbvvMEb%!cn9lLC}HsRz}T`m*`e<73cTP(`5(X?a3`V z``C#Pyb3TCEbA*|6u{pNT3Ni6`uwq)sw~uw2p?Ulc6}sxC`Qj&N?I$}Bq)R?7ryReyOXlSjlE3&)?G5-10l z#$17}0&RquYUHEhx>gmygmuddh>fpIh&#V(AraTzxx z3Qj`|{;J3K*{93f0Xzo0MWEES_diT64VUkw0hlU6n6%-|ZH1bPz#@6-8p%n4aZ1W7Wu08AZW8 zZ?|592bfH7U@a7aL-oGeOPtDgvkX-(R21meji!XeG+Nvftzxjco?~Fca9EVdC>$GD zX{H4AlejQGrH+QxPOuUAILjy5lsa~RcTz>&2JzQY3yd8)mg4g*5CxEiY0O#Y!VI~- zq>M^`E(Pq|DeM0k00cjBu}zn$d#O$V5laVu3}X3tUttRvHHjAl2|Rw;3uKMK_P z9@Fzo2SDHcE(5N0fz4qsr3nKGTWrU(I@WuC_G{noOGR_hsKyUNY*99h3euJ+D@ad{ ze&Gt3h5-aA4Zjot6Bv9K`ZU%UA*lQ5lx(%*&<4Vb<`#K#kI<;MwG&cgy9zRbm6mE} zis)sOu1Vc8-?A)?aY4{9){X&doGE|(k;78(g&u7{MNLJdch{22O{v=By{cX!iBfq= zwbdfx)e*qeylTHk!_5Q6^xYzbBXtgxUOwP&@t{qHdry*^bIdS!pIoN28PZUNl8h&w z%fpqmgHMyTP(c1-@d2G!noGPGmXV@U`xrr=R4!>UCB3oS^`yeH4t++Y0|jzC4MRm; zGBHv#i8>jnQ)vL;O5bE1^N&A{V3zTeXrKv&KH*lVgFndUb~UvTx+6hR_8;6;hyKJ;~JxO5Q% zTqQ%P3N%{i3q}hpPZyIc1@B6NoS}R$bTEM&_LmS)H(dKdO6%ysL=p4`bpQpSe78bD*t%d6TDLx+eH+L8TGN#FsWN5 z=t!VYs@@2pCQnY2&!_y4$SJ&lW?(!OulTOsS4PM~K|nsKN99xJBj3T?vVIr0f2}{kjm&ErOxCY zXzf(M$O=&y;?1dka5%93({xr+8o*tw>q=en;>`x+d_ z(F6sB)=y-fdRu#;b+VFXlUJm{qjzo0p*6U_dl03P-b+UZF%knPfS@IrDGz^-SgOV&2e~23!y(%_s9^h%n%Ec zzKqoF9Gn_)lkUBuMVml3?-jBY>V*ay>*y*9^T67Uz-rJ>bWjc0FrcZ_!n$*V?YxGK zvdmW*aj7m4i27ikR2a)}1&Br6xe+2^@DAE3$)u~wnd(f>wM{*3N%}j>Pa|Q&N-KX2 z`BO=~4eX1_^FdRnFCYs%3h7ibca^`n7fYrF&^Q}EYb81VUie&CvXF)h{r0F0LhJbM zhE-$C#K($2Pw$kuFcFLQ_#q0f$yswF4c7UossUL6kND}az!Zs81B8=V*riV8U*uL+#CI08SCSmu{8 zpnFi7mv98ml3jVgb-8 zL6ZwJ)XIsl{&Ts?5g)|Hc9xP#jbes_58Nv>9%6(&L&sq`uxy%BO8k1hqM!T1<)9D3 zdQry=`M5R@IR;2F`DlJMJt&Hvn3&}vQ(#e~)D?G}(K+@~D5H8O7rzbg`fmX&PIw^B zS5JpA5}4y7<1nNk@?f>sJJ%h-wSZ^3Q6Hz;@}of^gmz-uR(|f?@u~dot*yF?5nQ3; zO1;xzA#VoAdt|6KsZ`UdyBg;Rc^bw;IF088E<9gK)<(447__Oq90kJ+=k&i2W z-$o(S^ETEnYDHNmr*djjpC10_>n&yDnOP_WO)jpuyLXeD zzuJbMrz!d$q!W}es+Ib0fdNuv-JQ{@1E5;&pMd@&&ww>ZK%|Ye>l@;sV;lNhW`&Go z1*`c(x>YMpnD;?yM9AnT=O$jyRoia}p?VZZo$09Vcc z*sIoQTiqU{$A#R6yr^GR0jqqWrtxpKDPZ_GX_=0ln4%Axe1~mXKui1N9*VR)SKB5#w z0@hzRPr_(Ww^}G@W7%&kk9DG}+fFO=T`uDMs9DC^U);;NRJbzcD{_qFO*h zUY0fnm{qzUNnv?`Pl0nXtNx_TsI{T<#&UO6{~a$}pP>@s!tv}hgd7Lgd6Tqt*&bg5 zyo~ulx?0++bSht0L~2Y&ZwLG>Bh7KS$#~#WONBgLSgpq#!T>2)EdzZNaPZXddC3N& zb@Zk$Hc?KotVr+uTAaZ%r>+-+rZlPoqZgw-U~ZINa@Yh1PiCxdBPw0 zu;eFL?bvD56&(0j#h5z>!b%|Bpt&)`=mYYv@E@iYDzBXr7m##3+&QR`gtJtE6=_yS zA+8>c2$^>j6|fE2~(+(JmFU@lysEf>ji4=L&fWPF)|7A1c1_#Uw zj2#Xo>HjL1zL%1q;3yro?+|3G;dFCPm@Dp!}H{Lq+_lpl<+w|&mAp< z6DK~W24d?`n^iZApBo7soeRS2z#yx^Z>T$C^|cWHOG^phs+xH11TuiuOWUH&X&~6pBNYuTJh3>KLH?>T%}Jda#BLU@i8ig zj8Q#QI?1SjmNrHMdoshh!jl|S)CYt9`*Wa_WPdFCMOzAprd42&&YA;ONMU-YjFK32 zb9zkK#}b8AR|~h-75}grr+WhsZ_5N9L=}X(D!3%)tDa(WGP6yFduBrk7yko z6L;W5gTC$}r?s|)tcI+KhxawD9Lh;mz~WS-Q^ZS-WELd=d!g`d=&Ry;E7DcR{>XEQ zJ}c#HRli-#$ag2Q>#8MBMF5NMAZ)$LE0-ajEFI(R{k>iOJ%CdO;QN052VcqlON85G zyBkuBfdh6?fEZrY-0GnMMYQkk>|{^T+{n5uDNRd-6*CqpG$L$RCGw4V>)Pz)j#=EN zT4D7vm8&asGG@W2gt4Shz47EWUQ!igiV#E&cQ>VbKv))%8-y*AnR> ziX8BeT8xF;LFCtld!%)uWi54e(UDJn=2orL6~raCY*>#58f3*%9#E!qDI7;DQA*|> z)vW=`TS(ZR>pRMskr?0Ko6Mt&kywSs!2XzbGnK7IufTT?_R!C+A|jx^iwiD*ku%GS zx1HPr4>6ni#E$`fnYeQcUm9Y$gn<|0^(ch)N9GFGH>wj z+_eafcz(#j((_f5c`Cyqq4)XD%6MqDJFp1PHUd^R+WlT`$gfS#_XfCd<{lt6406$~ zzPNC!1~$NHK&0x_Zyhb8%eMqB^SFUE5Uk_0i$xUyqpZ;GLDBsMBh}$~L%H91hi~z_ z2h3As#RmCuJX`&x@_>!WxTLIwZAhJ>>NtlQJ$Rx6@Vjrkww&N)jE3^#UGX2qiyCi!|0N=!4f&61~L8s6zQb zir(S%mZb2Pc@?XTo~ayK>cNmYmpdH=3htB&uk!1U0wMlY9TbDr_tO6`+>L`NLx&f@ z9=3a*vW`A4ZB1fBO=x&bV_eJNXE75p1)Yi357TQB3}#<*$!1 zx0nbEL3beZJ)Si&A;ih7@1wE9A#JSc>J(Sg;5$gVB+0+?;^kw?#K6HYYR3T-z%3eTgrWFU%Ihs!Zd3kFCnWY+pjmyDcUDT`$cat!{>x{O~`+6_;Y30N_U zJ5!^s*b=#A5wMzdAZtxmt#GMvkHQage=)a{Fe)gY28)y+&~q8u zV}6r)OM{elu?n2?t<@WlToemi;lyF=K;m^>lxs0sz9wx`e!< z=vRJgvZ7U&47(0xI_y{aSg^bB$g4JP73NIX0Eb1kA`8N++;s(@PF&T>I~p^kUTCo6 zW>%;t;n)Q==0O$SuSJ>Nr<@pZ0#*A^AenRmz~QAcMLvGMMPMnZ7|x)rQaItC?J2MX zxJw*oL>}{MSHAFtFFe5k(6_xO?{|$VvKo?NzkC$ z&BAhY0VEJD;oY=yCuE9BV>2wO4$MVo^PgxRtD4xL+}8BUz)AcDKp4wkmFhjB))*-TpQ=`L^4Jo}_W4;^P72B{Jp^IAo@bW7z{2TUAcCuAvr!s+4<<2d4do#dCdrffb^#hc z=gJS1q(NlEjVsm(fD%Ym(5Sl7){suW*Z2=!fN&3nPx_}6M!vjkZPP$`ReBp0!E6u- zsHX*6LWydnbFt!LWVcj6Xi7OW5YJDyQK@k6*(oFT@I8&6^4U2-+UTZ$AoD5{dGnWy)BT zWt7BxGC2^@H0VeUg%#Q!ZP2pPTvvzveUS{W^WGpRWntU2u$Q_bg!uk!(7Skl=VviA zd>Y*La%s4ecbxtnz=bVgwSDF|)PJBay#Ngo(21S%R1XiPOM@7T-vL25IO)UY*M3m?R!W{;C(Cn?#X58w>{BmTbJG6f0~W0P8wcO=G1+5ezv`bw=4-3MxorLZ+BN$U<;rx}B}#3%t9gJ!uOde5Clt z^4ss+&?-0u>AgFI=tP$8_3mzULIre2*2tP0|ERNs54Qjsv?1WYs@hk4{Fii7UaT8& z9|E!PaM$WXU8HGs3kqT|G7#B_d@NrRhh1^xgdzoDbc0nbtXDW-@W-e`yD9)$5=7Jq z+==j+8*$AF&8bl?PYn63S$gG=H;5M1JvHVN;v(HABrVqy>av8T*9DmnT>UTO2@K{n ztc+wm@@U|B4X|DChGM?Sa^=|=*9{H2?qsexR0zS70pf8**!T7ls6^1sb-8pIiFY`M zAseg{2M$<>77l6HFc^XqK`YNaoy~U|D5i_anDuCvP&7Po)PscAI+E@|M#QoJA8_K`+|a+0w`imI3s$eO2~>l72>K zmTK;Y{Ztw2RQlvPHi~i?w+wpkX4L0Ls|*_SKl_*l@X$kGIop4{1MoohRT@ziQuRMn zHcRilPHSDeTIq~tGX{3WZ)v42c)tWp2j+t|u5w6_GC%2C3XMn;J#-fGn!Q1XLLt-@ z4nqhZu5+aE!8{vXnV+5)?~2ycNC5NEBMuZn@PW`2vWNs6g(VyX?~CLrpPUnz{7M5^ zp7!i(RHY`imBk?FT<#^(H4tB|imwh^3Aau)DUOc`t?YTQGCyc7t}M$d(i>zfod~6A zaidWYF;=^ahiW`Tq|lL$_v9c0wg3gd@hnrvtJ?`-KT)Xw*7o))k5&s}zQ{P273U@r zDkIr2N(!~OtvWKbHtV<%ozy?~5Az_bC1wVefevFEihNiQRC@2Cd%QDn3UHKMZUlRT zM#t|CTITwov$AD*8nmNbk5~J%fr?OCmNSNCt?&csC(J$Z_6&@(h~u5HAg@QY?z|}6 zC#$gNJ{nQCI!cJX>TUGzcnNvpNUnBia&{{)A6r6x3!*^ z#s5(Mowk-|r-ccJ!2yD|A`YeX2p?iQ@{G6ChU#Ew6Awg&Iv4t2awZR?5>4b|>WA`j zn&$?Nv7*LQ62ll52=F9(6b77nB~q8hr2immvBj`jLd6V5WSF2patO^5pV!!uU!yK3 z=G^!@6V8#kF+%C$Awb7>pC0$21RE%xW2W7p9X#HH=1Nx%2aimcF>(9cAVw`_(Zj|bRwF9-+Q6uSk{)DLd_TQ99Fv292A2hg^Y9rV zqS1r?n8Ch1>Zz4^2ju0|CY0kTB|BA9DvFn7kZ6!`BIr5ioPXlGzEDET0YFP*=*R*9 zs8XKcTFVh|9&KDa$ACOwQZ(S&9Mgj(4H+P(5o91CA&o$lyH#a;cC8C(XM2&(wIImb z`Wgj?T-R$V1Uv<~?49xXq8bgu@>62*9ZG6bo4Bfwnh1}4mf`jcT2+xY#)({*!_Uwn zSUeZ2X22stigH5zJy)M zZ3U!3Ds~hw{Dr<)x%)60>Vex#i+smY=ZVzWbMN9UF1`-m&AWalp_glX7P}f*1K;k;>-+pc#93MPaDAfk8e##^KwoLU0|pqt8Az-NtFRb)))MZ0jJBN2U& z;#^2oo}@?bH2b*r{y(;T3R$f*@R6-KH4hD$N<*5jsvz7I>FrA8}8o@oBfFJ^b1ogxbXb4ITK|MAks00a6HKiFOB~E}NVD;E!fg{KvRI^aL z8OHO4+p@Km?H&KU3Hmwz7as2WVb5h|+dbUr|0zB5=s6}qoNVxP5zWe5kq=Z=r9oe9 zQRatliFuw$Vz{~Ia*fSBN=qFEMOv;gWA(4gcW-mdrj&(-ahK}$f1T{qHOp2yXI<@X z_b0B0f5`Fo__Ezs0RGh<)xR3-dhP-RTVD+J zG+7P$kmpqNb+*^#@RUSCTA6w?RIy>j61r+u>-bnUU)T5vUSMoBHk1r!n!*X_=)9O?P}OuJZphpsrW z;?~bP#T6&=7XeX+tiN*Jr;^DI+66dwp#RF#GT{ABg@Lrou`4Y8Wb_Kw)Ad)vl;|w4cs$EU8=n@Q1EGT(T4Lm zecD_k<`LkY@u`q83Iu+nba5`FYalfFmMAops#-MSsOv_n96e^$kE~3X&JfHi?mitM zI_cR};DZlp2M#8A<8y7-Pkvb-=uiI^#(lK$d1_v|8!Hit zPsKwd{UWy_Rzk~2x?9@a3~`xO`p5q7@nyRw06#AR8s`wT{LtIW@mw0O_**tpRFnvI z1)d20{NYhj-R_R(E{=bBIFO3|LaQ1eKv0vE3Q3?lu{Z)ADT%4CYqcq!x0~vE&&FAf zdR#(~`SP2wf7#Sg?fOyiH~w~Wp3a*#`Te`%gYbH*?55ww80_9;{8!l3IC@)+c|N}n z^0%3DUOH7=;qGtrkFSK3e$Vg~03}I}ix8r$KY+fVgbY~rj05Y`u~SAH{|~jNZ2(5R zRiBOpeLm!#l%gK-GMQXs9!ab8%iQC0T-)jhX%80}Yql`jwU2Hpful|N91-!=bH9Y? z%M1r{%x4`VXuzvBB?vjLMF|Cw*Evo~o3`pvCJ;5>Nm~9I0H7^u!o0YgkZdFs?iP%i z5kSBceBvtRE)$@2@FnGvoBL3J_T_?)9oK-~a~wvMe#y#=0bE_C&1p)jN5YJlq5`(p`f?NC8!G@5UQZV5@wx}wv1zd5YvtxR;+fA81#Pa#38=POKq{CHp#?g zBG$@LDwYKEA(>$=Ij&9VD4RnXT-xr_&im1Iwz{Mg;@IYF|DYtNQ*{hm}Os zwj0Hvyik92c>9#QrH+Iwg4VH*&-pe8B0Y~MFsowG?WoUFQkba=MOe{zUHp)3yr^Pg zTJ+_Dyd?`Ts*Z8W?z#^yE$`R;h|uaE=h39Lzh;PE#?Kpp{sjp@zX&K}|61aEy-A7Z z*9wb)&qe#lF>Sxf^P0~x)?g%(s*KPeFNwomPPgi>bmlL7$oAZfS~Ir>gD{$BPyEN4Vw=XZ>I|2y?DMV1A(t&lH$PXJJ&!fA^XKH@WzDcxiRl~ zDG)%!|LXRazl-1FvfUGa_bkB7p=Zi|S;3_Xm#M#RdEIsMnEe()3b0P_e=_+(BEV&Q z8m%S)xQl;JxPz|V)E4?H0H~yt$`m?z%*GU>noB9ekG87Q=*#85GDS0<3||4jsFQ${ z2>il35%bx%O94W2CmIb2Plw~$zw)+lt2Wvzo}{$DY_-P_KJV=-{N9i?P7o|Fy)Se5 zvAP-5FauddXcb=?(K37-0OeFD?7uH1`InqZq&4#F@Tk_R5@a$(yhGV|fm{de5wB0hW%m;1d)2x|Huzd(pRn0q5n0c`sjmW8BQ74iH zAF!pPfJ}~+3R9VQPRnd+tEF*4+xRmsT+TiggT7+o`+%xM#5M`k{2iLWy~PL-L+jyZ z4n?Oa-pqLNd?`@N*TgpjPnqW((LDHHv)tBl{g0NI-MNzC@;0DGF=JSeI*4AOI%tOpO=C_XFo^Y zCUmjsV8xS$rb+`Jl9mqCBYEtPzr>u>)vL!%mFJ+3JoZ}y)ItBEutUe65gz|%7WGrr z!CWnLB;7%2FX82o>3lY*=r+0y2EsTo&w@cJehiM3r5raKHUDn_J3x*@)Cg(>F8Xa- zPw7|@%CRoPSIK;F*kXD$t~VIg7y3zt&NBx~S+XDh2aK&m_93Uoj7wxcqDpCBGDl3Y z_gtet>3l>>+ITI0K`G`g5BW%hsX;oZwoS4aLw+(cgp8tCXNgR%pNf~*a|JwzklbfPB?9I9KLi3c}7p|S8GlK$7ih6>-*3=Z2hbbamd?jkk&wfibT)N z(#*(USnhckfUb%VRA^3fJC=?U<^9idAL*9mw<$7PL#rX{xu4_jcn?Bp!m|$^%P<>BCeYN!J{Ui;S>3v8u!Q^m`N9cGHq5 z8~kYtjUBkQLZK1}Iz~l%e4P6{jRX)NOdUbH27gHaakT;guq3)B=Q;pDaIPqu$A=sM zBoHZg6BItPm5)Dil_NjfD_{H2h(99^Y`Jbm1?-f>k)yr94NbGi3O=My8oL>u*m0%HAG?2h0o~?I>D#t^P~#yAnI? zS`1)-aXNpRBlxqwFxR3u0{YzRlzpD(wA%Nj;ufoY=EZ-cg3t3aMWZk{PY|%r2S%qF z1Q^Af0ety1&KS0ebnW21 zHyHjcP@>Xo0_&1sUi)li<_2&ii| z#o&1DvD;S)-#P~=1Pk~C)RmzR)GC=zRMf-K9}z>uS3d3E1)vw}F>wxvFP&k<;&~10 zPpnJ+df#+KxoV=DC@s=!PQ(#ixudBrOcT$1zJE|?B?Y{+L7j#8zhI})Jyqa%Lsksl zg!)@*aLMOqX7xeFB(EWYtxF=%{Ew|ZW51qAE%u3dvD8JMa;ay;&D1Zvru?tx>ei3q zfpZK7Y>cRKn3KFF;$|WWeR67v#O9~X^>?u^_=?Krz#g&l%|Gm9Lrg@3RQ*rfOI@|3 z+-7yK;Qx#zTr>Px<-9))@R|VpQQ`k)LbBY2LP3U~i(i71TVN^UDWH(EtUr#2^Z6hO z4Lx;vB(F3&H9c?R2ZH{wWECp3W4v0$T^Lx@`3X>T*UjT|%jkjTJSrdr@%q5f%Sf-o zGwj@W+YY1+Kw_pY3_bMc$^cxxkS*Bjz_JtD%WGfTe}Am&R#{qnlFlM$z6r z&T2n7R}YPA`v-KRLM!tcgp#3FqKxtF89R~;XA&8vZyG>GMjR_^`Bd^s!T=Dg3Z1J# z1OcbNk3x_fx86SX@LGW*1&=XCk^BKb^dE3~`Ax*Vlj-7t?DqDNOl8KZ{5{9=z;%w| zUdm$6`^~PP3nIhVTsLJ>AU2G7T74xWJ(#vJ<=JNdj#;92*KZn-T;*x#Od(w1e2rNH;=9_L-VXb#otS za5!sLlRwnfVcAipb&gXRWi-5AHcy_@jxP-j8vK7g-xZojR7y;aG~OTofBk)2w)+ae zKiBWeJs_vUO^2^cJ4UdebZr&DvLFJ9wmX*eVWg7!SwK6iCh2&LP4Trt1c1eH4LE72 zxm58Pu$Vl+0CExmt8~Mct!o=l(=f}jAK^daw-yq-93Gj$-?n}(*MBmnNdx+?VPQ%&B= z1jknMxj*I2s#xoBUqaG^5dkD=4~4NiVwEPw=nwt#@tz*a3O_BScf1jMs^1> zwYf7=ASwuArVL-I4-THeuovP3;7M&0w)F&`OngYDH6N*anV$rMmvfpc6}ZR`UT!2W znJHR@+0D~>ubA2WC_6yT@Dsd}+G4NQi^raXaQp@x7xv4lHT+9Rz{;s5>>w>;{B1+uiSByEgRSI{_SQLF_YE4G5z6MV9(p?Z?O?*A{k3D6qnOhz7}LhB;m0OOj6H#YVoI+sAW(PF@n$v)u5N1YM5pz@D?T-e8Ud)&R=n zE-Pw3^S!t_%PPBrQZ|z0$Rz76n)hKJ{UDl~Bq2oy=I~>W#o;0g{H(`JnKR~mANfrA zE(biyFvJ$elnUT=H3we-kiXat#L$5wL?_O>pY)|N6yrCDk+rO7VCk#FH47O*zBhDSw+peG{Pc&$uv9 zjtds(R}2`5)Ve$y85*0T@yGq2D<4it{vMa@hQ7aXnRvp+GX(D!B~1^dSEsx!&vzwL zJ6qYp1@owy8YIRH#Qsa8AA#wi#1e`YZyBCnDu2-ax!hKx0jXd*fXK>@$Z3or0WPFY zS3!`Y^YXzG!f8o%yd(qNZKUwOXVo4z=R4`LG zh83t{6Xgt%PXrCh9eKgGtUTFh)JTNp4Q&;3IfBQyslTils}{|9_y4jX+74uf3>Vq@ zorvB>fS;J`92=t3O`5~eXa6<6cS+X|e9@m&O_G}a=vgNR`-fqTDhvlAA# z+LAl5MYa!C9%Y0keHicLzhxuiX_oK$yY#=dTNA8(O@eL-kyg?v0p8|&uEfIliA2)} zxFX((w=QJ?P zSn_>jI1W+nVBtWa^AKDiZ`kOs}rDFxU3G9yps2&6|p3hz>LiRbQKbHuQj+WcgXP+bG5t!gx3KYe_<{`GH zrx_Q9c*Ik}BEeMcaX?PQ2-yXjwa;soUV(R#&%rC+q>H;LEq;k525#lMGuN2ulo&NK zn)Q4gcCO2Z(WzD5m+SZz{u!<;ifEP((D_cPYg zpLfFi;_LG_WU4G_s4xeZ z6^{Wu;l0|3^EOXhHu=>=VZA_jkc``OrU6&cJUn1OAT1GWfhHVFRhn_LFHd3*Rs?iQ z=|jLMIC|ta#49%KUkQNDYCGsL03m9Q;>g3AHw!E!j+8~-Ci#+lr3Xo2v2-868?2)7 zk)eQ0b_Y#BVBhcX3llvy32&SuwvA0h40<%>2*=1(_2&%QzYmR)>n`{#pKRn+b9$EK zwa*|>G>9XAkbu%puuJez>i^sExu279h9uW9bB55zk#w98CfwJ>yhs1yf!rTa-JE^T z6P9Cr=8$0DDhQZ-l~avzwl_X)-x@zu-H+)BFB;t-NyRr5j7+{AvSrvY>)b3Cw0=d# zvB|+!skszSU{4S+tm!|VgI*GV%D=CwZ94W~Fc{-;Y?GW$AORPKAG(TMS`j=-*JXbd z3vb+;40>D?V?0!qpvDI5+AyLH8F?7ZyWRz*>yl&Qxm>Xp%UbIxbl99fw77YuT~A6a}3f8+Rn?7#cfnN?rrN}*qmL;Gb?ekA?C;2G2!G6S!6?eUK4ia6a71D1;gn#JYtfmp|l_DVrj)NQz|qvSf$ZU=6jCoB~tYn za#9_9X}fq>lY$QSRHEg)4bk)qHQ78cNPW=9)Z9l4yRlb_@tH$kw+o%93_}~of>YwZ zB}{cUHis?2=s8dSwnEe@7F4Y^g=(eBB|7FZ7)wYb2@pqRO0^KeF{Obw4 zmy-|n%N@zPfe@o(q!6ySCeACDt8#{#YkjK|0@-6T1m0D(M+5^sE)UQ?GVYtWzTAs| z9Ipf*B0@pJ-oF=mX9O1lwNEa2`r zMsCG#Sl$GU7|zU9@w(}^mjXro!V)etEoYd%#txN$l{jmsG|O;Auwixti)4Actz^X| zXd{y_st@c$+>YmZh*SH_#)D$#T)$>IWKPQqb?nFgCDfUpiQybR&*q#jTRbU+ol8)Y z0O&t78E|+AbT;@9V`h;_yYRjt!^#(MA%T{|Cyys9cHML()2Ay-G;j>ZC$X!I1Cgfr=QxOYh#WO=FCacCiB7DER?aG#aHxp@Zg z7k+J*>}xPlYkzDgg{M-HMVH2+cB!%h)mj$E9xy{SmF{-}R3C+;l@zLY3On4;BxB;Z z{Qj0F!;HTzW!b8TpR)0%B+Iy9PnQAfRXTYwntP(9Xim^$EO|8UiQmf;9jO*n-+S(x z4WCKnrY*(suKbiCM;maiDB}UICP;tidN-G$mr4k-GgjmTPX-q`*1n@%pM(6V6}i!0 zoy5?hoHw${%1|obVtO@pV)!2d+}JMyXRR@26$5R=Xw4%(9nliWd?rdrycDPfuy_i4 zn_(<^uO>R4wTyodC}N_ZyKIz>sx~6r@h<+15lW3&&sfm=w7o{H!4C24l6hyeFoMek zph*!mMZ@B3?f*(?I``(|CST^Kh!9U6QpBjwTA&BAS8^p)lXml;GBRDSa!y4$(=H>( zh`7hU8O?Cili?cv6u%X};QK~@s7liGgCtXJcyO?^5@>dcap_yJdnN#{{CnZw!0VZl zMrGAesDL=3J9|@?sZ;b0m-96V7zdE{Iqfr4O{E#1Ymhn=h7MHq1=5!uU|Dd%g^ef5NvL8^gYro0{e z(nhMYOi2gO#`Kd6Or3DW6Bx?IG@JTL%d+K;s1v|7!F|TeNsw?n_17pN-w7}~>2UiF z=dH(|`p|&9#vW+5IWgjC#x@TSyb`?lYEzm0b_AlSiw(Q!y<|Q~fb$ZgOl|20>S=j1 z*9%tk&$5EmZqLsZ6EhnoCz%q90h(+xRE@3d6{#|LJk|y?rR|)nPWnapc%Y0g9%mD! zL*WFGW^DYq_&AzLsR(}o06U6Am1G34y}{OsyVo$mGy-eQ6~FNR<*RY?|H533zXM~5 z`&MH7CDLN&6fqbc3cM5u zvfW^j5my`->wFp?F9k~Wo$o5EPC6c0zwdJ>FJ#}x{hPM5ab)BSr zuX=a57hWQGr@ru9Ay*dkxB|3(2mb35(*}$kGk_~xF}dhmUka4l9>o7+Vn(Eh-&#sC zMz3VzHpv$fy0)*!2tIZe8l*>h6-=s{AJ2%&?COIpKOcGVe|{tF3_$CpKzUT3Cn7_P z%JuW-HA`hVHXMR^jES?fU5~7jzNZ2%(oR+!0O|-ByPdF5m*Nh1)#ngv#{Xr^Sz&DX zj9mi{`d21X#C5yqCZ#K46_#8ymqXLUvp$d_)*)T(pwBlUBQ^NN;}e;dw|)B5jH~{i zG5$ScKVzIf1-w59C|b4;=2R{k;XoR^kL7+5g3_(TYQ;@lEdfVaDte4SKu{9hwU72@ zFNHvMKDtUP%lt)FRuSu!+62aLpL%KF7*MuX13WD&NJnlSJ`Mb(Kypq4wv9Po%bbnI z0>u9aC9n#iL;buI2@~$SES$i-rkU$KRWk4?HQ)F}+dE(Lnv^2rBy@G!Elk_nRYN9sp zc+ax8tW9hXc9o495il8eswIkspv*qQsfWR^ZN2?6w~Y-&Vk^0asxNV5**YU_NaDWy zKN!@5KBS4=4n&Q{7qiL48yAkYN-O3%UJA65l*%gzB=iGzz{H=vV$< z%Se_+W{%@{0*T}W7uN|KBSPsc`2S1jp-iirH%m2HNdKgdtDok;fdpLN3WHWA2G9l{vnmu)Lu zL5G1o<-0n!_K~VDRy9|g`z=!Jsw_|c($sz7k8kzjZ_z^dz_ z>?)(H`h^p%h0o$25twvn0y9B2h1w>^k}ol9uD-kvK96LE7KsM_UE0;vaLz-P&MA<* z@@Ug`S6bnx8QADOxGHdtkv*3u2)wg;oVp$CV+;be*{cK&226}w-nn@~vh`FYjEpze zw~Acw6NQW+Q?Kf>*hJ;l{2EGu5Rx;mrkywObpYIY?6}n|7;kFRGYG#lkvx<>EM*sG z_=t#0VkbQG@psi=7A@r5pvR42WAO=42C--0`ust%3xH36Z_knrsBM5IRI4gmxgDU3 zdFbb0dII?j`k8+F2$Zr+^~H&$IxODBTgmP;u{KPsTBjFI%!-R6o(ws6=2&X)Yk8u#)p#X{}3w zE2^!T=CD>HvYyPGb0A3&|F0wLGjaI?g47=lotq7^Umoq3C ztb+dEadHw0)q}c!aOg=!O4!V-tlwHv8{8_vBA4yqdDja zNu-=kjPvvF^;L|*i0r4-N&M@RPzq&Wzv)w&;u{k)X!;z%C5I2Ms0>6mXE5!gVos)j z5ff$&-cNNxiavkdJZ>_so}opi@u7zdy@TWjwvT?SiBcjU1T!uOg?|+KK57_Kg5$o9Uq^kerqFXJ%N4%k(|k)RaaV zS08o$)k^@sC8!C4ko_Bi*B!M@;8XQb`UlGv|q}gBG<6^hrFB9w^1>F_a z5@L}~C!sjkN3O4`!{2v0E$6f_qIrfUV59H9Wt*x7MD1($1YuI=nK9{(m0S+dN75TM z$GM?Ot3gC(N;S@@S~-{}lXfskt+SJ8mAu(82UemVzuN!aWqgWJhw_5Nz-Y~mOTqYb zQ&CkNC$>1ld}0r99w_!GtWxn(%v2X3AW(^`ic|hRd-VS}yg3LuN_&fs51(N`1A6s) zAp(_pOuzPP%cf#%D;iZA&8Z{t!*c3_eCvM9e$$-FpGw5A`c212?V7`M#W})ARO>1P zm-&Ai!`=U5g4)cfQGVNmkkkn;-OJ3cl%~N;*ssb0w9+mTaMHP05uby)x!Lf<%1B!U zUR2rfCkAPQ8WM1hUL6v1pWsga7cBh@P%)8Z^!;h`*Ajrg{2nJ?v*RlO_=E2vq_Ir} zc%IjP=AfzL1Xcv*m%jjVSISV3X5hzG7W52agsz^&g(n+>^v~bV^W^>zq9+Hlx=`#x z>xE5=gXAct_jKEOEFn8V>i?o>6F&vuWS zYC<0FzxEM!{>;L>fAzf2M+NNHG$*Q6-xh?hSjD0?otKB_zu_i8nIKI)5tCsCeX$x* zG$YZiE}&VV3aY7MFq39Bpaxl@Uk><&A{qoVu+RB&V=r^uT8dKI-))|Fgr?S_>g>9j zU={Q}hOX&>A=N>aBk0(n*wp=UEq$rMdmx7_g!B@R664E7gndsP;l5cmtg;p_+yHzX z#~cRx+or6;qg`f^n9PGZ2I?=?evYS)+X+PK^&zYpOvD^eX7$Mf=4?1#m`n9!U@hru z5~!LSvM8TkrGLhz)?mqSdWfY60ZisYY!baSfYyw$;?UR?#G*Dw?%H>QnBxPeZ)C(p zUu#24ieGgL-=o zGx@VXtyNr(DB=KssGV-F1TOF1pKGcajRwGkOp2y0M#UnIaBOw8g*bjm~!*b!Wd5-Ouk@Eh_zN07va8+tT;J^zWU z(fMK!NL}1F4-j`N;Vi}WY*{$=Edg!c%%f`8scJ0)>pa6=d4GUjF&JY_ za`c?~^SkZ`-Nr_OhgN(1?#I14(bUxu8E$AqKzUYcCjS`mCVT-l5)+8GT}}I>uRY^G ziBy@ZiT|Tx$=DI1_i))xVxH4AHaYo7Ofh3)b@JVuu(0H~(P z=%Y)klryu@3di4??64kyIe;Cr(b#PXf6^rgOn_raUaPXRYF~{%_jmMLOP10;)}0L1&?dK=q3Flv>mv^@^;6xPE zkYn&a_)BO7hiXxoNi_flH$l(ljo9jvKuC)5e@ATf<(s78o1{k*p-lGenJU)tsEW)B zSs)kUTtR5F{+X{Bd|*-JfP@m4g1$E6X1H{?17J-(r&2s^9TBZ8P;0D6pG&KB&^q%J zG0tL}Z0`TF>V5V9pRccf_5MWy5YIIN66gC$DU2F|-lm2b5xh^l6!`8S{~SM=td$L` znIg+6ls&e>t42Z!Y4UCSe zSy`o+!n!4C8OI3)`8>yqyBKvW=Ev#XzT}^y z32oVuferwK%;qo^Olo|fP>kfH3jj#U9mmENBNV_w${cc7{my`xRe-Ta1g|#nnxG^g zSL$mI1LI@mZR`E+?`i%Fwx2J2l9t^yT{7m9Ezgg#!aSp%`$9y#wn@m0+gSt~EgZ~3 zs;rl3ez=Y*JiiF<#qfslm0}n53q$UYp&q;k3nm{j3V& zt+6UT9^SEnF$QfzxC7@ChdjE;UWP}Syo{%FHVGMHBl8cms-ukm(}t#i9RKf_vwjM= z5`fol7ui6xyc4hT_FUF zU11zQ;(jb**euZ@J!mM-ZBd{dR1W6H!QZn(At~CGwt2>`2=xKbQeH2LMX3CX#x?r= z*ysg@H-63fO!3|h@KEy!oa(e^ zz%@fDZQkAz2pI;;@R4+u9iY3~o)rlVa(9ECHfnhhx8?`#NDRO{yLl>b*KP8)h2leg zDng%`9;Z0LY>zA7H|h)x1Q&J}3-)32T{_S~^5E%xvpMn@J#aTO4haY@F#q{{qdLUs zja*0D#u@`lpqyv0E8z*sT{DIO#c?Rv9Ll^h##AmvKtT^xEn*Gxp~NqO7#{n0 zB!hgmuRgpojQ90qlAVHV5l7;Hu$7DZiJRL_j7LI#UK+XVfHzNR=;u&C=%Jc9#_+B_ zMUDVB6F}5Al(y7x6|q(ej=$>^5lDXts*AFIP0z2Zm!D<;@KKAqhEqurmfe%G;A0+7F@Xo~hn z<$IPPL`u-Dawndfj)X;9){!>nHCzSu;T<6_uxu{Q8$L(PK1cL@{ci%X(&jgaa=eo9 z6j;>)3P70S+zJv*F7&ugK7Wj_B=Yo2LDF9er2YHfvCIV@U%>5?#n@TNfxIFjb->k% z+mP)PH-j$)o;`NEZ|U+W`^}2dlL5<9?lp*|C!jaqO&L?^5}UUKI5hi9X;*q?puTBp z{fAvd*WZQ1>n0|AhJFo+DX)+C?9cQFSakxN(cTo*1CkH_x#OwjLNi~UGlIg)pn!z3tzPON@EQzY+A+*nU#u|Al$LocL)8Uy2nC z>>t_9JR;<|T%0i&7$gri>GOGmlN1=(NAWtJ~7Q0Wi z17P7K33nq5ROkrUx*2Yi2zvY;eR33n&oS((aG>Vz>I#1ZyefEKfsTnbP-(!8Z1Ml?2% za!ghN3x}}r;L@PL6owXUBN+9&rKi}uAW_xKMlgzBl5({`S?;UCAI`ZqK`*=G zV~0dHoqIkI2k)4P<9dx3!ka8^=$6X_c@uy*Nyb!{Dd)xXWxk6t5iBz6mQ8(Vk4C(Z zY7pvc|A3n7sAVL*aGrv+w4De#W)`W zNc4!cD;KIf+D;=Zc*`nO2!`}dUC2LHcDjvKX>A(=Hgy-pPWV{qK0p6?$k-@K`Y~Q! zlA`IQrk;)oFk{_v4qkkbGjom+7*B~7o_JmA6)_d{;eu!EiN_{x#6!qYlPTp2+Ba5e zuc*mq>1tQAq*o7;yleo->z*NV9MaC~F4@bqKSSi;75%3js~LXycwR7Oa!rnBE33lJ zYR;sn#Q!tqg-WLoi5_6a?CH(zS^Vnyz5uTmU4=J1%p43ri5Hc7Nh*=ws2 zyvM3U&n9t~WBYP)9A0`8vd-p(+MZfuUE1SxiM1<; zZ-Cq5UK>bLW39~E6x2`+yk0Lk7xAl=jO!$riy3cWyeAoGI7&|@o@K{Gbo#|qE%b^7 z%HVO)WT+U0)dTnl0->4|_Q&pW1LvkEhDUVfszExh3YxWp;^sAuIAt*_Tt6-0kasW6 z8Hw$d6vf4Ff8NkXKV{QX+9AO&IL@j{vyorOk-sGcL`AHU4mj$UMJ^^%(%78tIbNPU z+ zy~qE5n!nm^A-bh;CzE1ZWB@~J)~%2XG^D17`|KB4-R#SU_GogtP2FL3;H*Lv8>qfN zcVs5a;u!&j1q>g@BWWJ;!wptHdOGnzl(ABSR7%S@c=HqI1kkfs*e9*xdyANe706 zBGnPMGt@dhE?jOqpg-5VvX3-P6E`G6caaTMzl`;f1H=99+3M zZgy7UYzb5FpZ9eU{_m#RA13tgqD72%qWpU z&AQ36I+!MQw0ej}AU6U+R|UF%as|V0hE*P@>m-G$=ZUw#m>Aj3B?5^dERbVtDdPNW zs_qHEKm7Oq=65ABa#c|HJ{1R#$0gHXU(z4?(J=iV66HG7x`3?vX^s^ks^Kz{ke@e!!a(k0Dz@~%_QdC!Ej|YAp z1|%5SeP;ZXZR;wHzh;3c#? zjHf)3rz*?_`B|1=hGJjPxTbr?ArIIvspGvlIp3xINagYW8k$EWA%jgX`jRd4+qhvW zqkdb*kHuIpF6Kj3{qU{gPXXJnRfT0n91&7DB1Quf_o`MC^t;lnD*(S~P}Y713KOVf z7`%N>H4#yoiHvVqg5gpxwOch@O)%!K)112e{%uoy2>q2w&9R*{c(BDAUupDE0mk2} z4p$l~Y~@2f!UFl1&CXRst~BdRTrjWz2MjE~&}chinK6!2-WJ3Gx(@wtp!V~m|05RG25NVJCT$uORzO#5K9(c=QS8qufFuBa`7L}k z^%;BxvAO1Gtv)A;LEX+;Kt2q#RG$FWu*@#62I`sLzJ_AwT53}%+bDI6#p4lP$uD6- zIf@`4<0LmG$;g;h2)j0~S`8X#_v3TA8C2B$v&nSwIT};e%!ySJt+9K)i?3|bSAd6z` z=&^GrLfITF;ilxopEm#TKVA}mKYeZv$TERFoeSbBt&+k)NbjOfp4;t9)R4nrvyiR; z1j;JaC7tV0pqY{EEyX2{0Z!6_`&UJmoSP=M>-+?mwn#5=-ShmoTC!L+GP}>vHBm{H z*PPy;wy#Mn^u7dbR$<3-5wk`W@w9FDa~cNN z`B>lv_mqp=X{(P#Sx3`3Q8EYc-R_f!B<8`S4OQbaC*?%5i42odngP|w^7Ba527+NO zV*)A01lg=ShrNLZh>mS#oPNwN=&J=<3@%L4A@z`_*MYVOwTv?T(~J2H$0YAH_b?X) zi+QvfWNtKmOUI-Kd_uq7E2kE3N>=!y!6MEY+HY?=g5qstgaH5XCqoc;fMQ z9FOC&Y<}puV-&~xaJ(MxTl(psp({Zp0h`Bvy;;IouB$JH3%OD^QV#f=lg#>Dq{dtCO;05>` zls?p^U%$EqbrLZ^Sbme=uY&bn;y<$`j)4qLpW}Zcn}^H#ea2BlxA{w;E9>NHahm;e z7oj1=8>|X1=XDZ;^8L~HR)Yd74RY@U3=!=Z zEBV8x?jyTJLR;ofw0pc1NQ`bizY+PoaHj--BTOD4ex_b3^H0p}Nc2;=BSGefN(5}U zj>>FiEaEMmp#ZaS4}*!M4uD;|4(kc->4SD-s8S?myH`+FULcjfwn1NsvEmIj!6O5_qk(o)bEKM2~ z_PU3;-#}7oAqY*rRh$BN`oI>{6rX^GflgnYQP&$CO1@MyzNw1aDH-Y7(|c{I61iQZXu>&Zkg}u_5Mj8QZ~e zY}TDkpnNLo2dCb7Spj(Gzn%sgcxBTYBbv)PtE{q*HX{i%tw_u86-=Xcz#m>BJ#bfe zyP7wu$G)D!>Q}P85PD4Ie!ZLL{jyq`LGbqAO}m1wEN807=`!=tXZxqn&_j5j_yL!f7+z_sn8^?ujskS{i2CoCMU=4C;vWO#7Ib>TJpDgH z<&|dYkwUi57<+Xx0U49nz&6@G_^w0@@O;ylb4yHXU*>dMO|m5zx*y1v2m065|108> z807kV_{{^}H9tlWKORO_LMx8b@#pWZI|AZNFJ+%m6jP@`AI}Af zFnj0U1N98G+CcRTyfaz$s)g8BtOBRZecFRM32MBR7#%6)X{OLW*yC36ioeIcUjo34 zK>%B9#+i-Kc;$I8lR#Lxus;!=*c*`TVa|C|T? z7vI7PfI5NpA3ByZPaFFxShA|+AF02r2&+R{peQyki=JEaZxwwB4eXE+$MI)-zX@_p z1gEx0X9yWq!AEq(nK`r}37AMnSqVVKETN^Y&E`~EwfH)~(_Fyq*c7I*F9>c`CEyds z94HzV`=%>j3dCGZ+)_HkR?GfM_X=9e9V5wiFt%PRzJRBty+2Jsn@0)SlL!b^x|a8I zex4JM!clD;-Y~ zti^@(Dc`ryd};{ehtD-_e+2-tx|Xr9D*&KuohC9uLePiMPgg=}lYwL)1%yHV{`fQm1mLL`sK%MWe?Zp)*soSv#HaRVyJwvQl* zU)*A3u;2U+ft7mRl8vz@75ozR`pza?b3zceAnleCdle-mtAuqPLFTfrSzQQMNThxw z_H)VM9drMh5a%;phPj8RTG|iVqbBisPUijW&kd*0j$6X`Q}(K1oQbKf25CP|%uB@h zZuZ}yfbl`jR(O&ZISKqT#a#GvdO5XkCH^0ej9<|&1sd#;n5FL&p8KIv$NwGsx&nae z=3Mi!fb3u;OR`TQ@*JF{S}xUz@d({G&*jpD$mnEszs%5?-IOt^RLPC=x(rqfo{G4b z*Mhl-c9xd(CzDFrSbElEzY_SWB7CVS%u7mc;@Zi^?)J02{|M@{6rOn_dc(=(tj2*n zaS`rw=pfheT=NM1)*h$p%Q!N_I(Djr4jPu|1+LM`{Qv@T{SU%U9Z!SqtVTEy6N78f znRM`gEPGtZVImZ?iVjhOhTW#fbX}qo+TTF8+t4WF%?!`HUO_(YeNjRPjj@1mgcX9b zZRIkOiZD0A*o$kIo}L-;aF2ti#AvDBPfXNhVo~xl-^brVz^ztlIRrzMQi@Q4v$~Wq zEuL4km&_)?)v7z;IdKzL@0SQq7--x6Z0|{ki{@ao$3$39f@J7)R;AOJpyKO%WSCu> z?1YdaOB^R0G$$mPr7D%#0$zzgHaQEw2&6i?NygGp*i_ z)V!p5iJ`7a=8sTS8U0)(p%{d`2LzsqWg>`yQ9HYanZXs37F8am4@Keq8*(F}sW?cV zyT7lwVf@rGGl&N>xVm_uhyZrE|Jx=u^s@DZed#I5!)H+9NXk8*jNOoykz?u4 z#vZWMdki$79TI=0s;%dtb(0WF3b4WRAjTSYpq=MeMN5{__829d*l8OPb$9>xyp|f{ zrJR_NIM&>&0*e?rnCR;K@c#w~`mv53h$Aua0QgCE{eF!u7;EdO#;F!&4KC%yG?V^a zQW%>Od08PsRw*!VlOiiB?*Dc96~G_F{HA91IN%y|PZBAs0UshOGELOH2BPBY{}$yo z$K(ObZ+F5$#d{K9NH&8#CmMEb&f!J+s-fv|ttPhMMJMNP^_P=GxkM&w?6(*mezti^ zd;h>3JgVp%=%4K;p|n2x*mHn42-qV@KpGS>D&mUOu%d3<2xsx7lDe zr0UCQGc#&pAc38fJ>Q8Z%2uC!w*}|eVd8%z&e_H3nM5zY=m4C>VM<8TrO}~a*#iK@ zav_KZ3DFqC>CaD+6B9rW|Chg0@oN9)M8%gEexEj>*D;I!RFpji9{(S}BhAy6jM9)( zDX%hGg(~>>G^m<@(H=51nv-L{q#tBdqDT_FW|rMaGGhgeTW|+h(QImQh50Xlu>>{cT z{4~mgjGi@kv1Yv>JdUgQYyTKCqXYTM^ zup?W47kxf+al99ZSy4!?t6H?v#KD{#(YVB8&dgJeR~(6*fS~FQ>ne}ov+2n4EjbEg zEYq12r&J{YkeLyYPz0W_x*fe@*>lRf*!xlll1$U6xC;{(jK}cNMAg&oEpv;VeCF}B zJaV9aah%#@r9+=ldkEF4+6C5KDwaUQ`rx&(F}5nJgmrPWjK>D`m;`dZhhF{L>84$X zl46;ElaJ@XM`5B103=p7n||5nj4t&mQ&OK{Mm+v+;6>XzXtf{}jYDzxwEBN>GV=co z*P5^Fdz#Fz^s_vj^7{fju$wJIjhZ}2L-j%R^;+XShadm1O&|OW&ZkZWW>-uc>b1Bv z2*v$XvLBAuR#d9!5RICX`bE(V!*k|U!z^aCSRQ6G0Z?%{V6TXU; zYSp9xbj6T4>M4Zh-5>j(_5#g@Ofm1$fx5FIN`FwWpD{~C8<#TrMm^rGB zHmU6;5dq+`y^=!kRPvysPcrakaaX&4QrG2_&t-#WWe6(;z1%HireMo+lW1LlP<0$K zUs@snDOM<<$Q2m`QY=O1i8XK7cp>3N{a;$EKPeaO6B(fia1P_cQ>}$GT}s`{y5;&F zz0|V77<=%Qsxs^{>sB8H8tbtKY-4+9Da~tK>R>120M!@+?Cv?3vp0}krFc5%X5@DV zTan6`gptutC`*d;aDNp`%+wS74(y4zp=78A=>OHCpzJDW+gfCX847GeNG#fF7ikoC z+=;T4@&10qw{)Mp-6MeG9=I2A(q{al{XZ50bgcRvN1hdce-*!#OcskECB$NRGgW7r zD1nN{^D*?&pw?$3i4Z1MV6n;_#&)xaA*3^+YitFWmj&4Wu4XI#1ZB^+U&p_ z6A*yNGfeM%(9Dxi4|xGbIJw8Oq=$ehV@rxXz%eSU3aiFrvi=%^5HON`RRk5m+(v=E zeYYgzP((ExYH|h3)tqfUiiIGV$zVsh3kT{0(1?`2ePd(R|J0ze$O<6g{jG7t@azcmV*=YGb+Cd>TorDe=nbB5A{Fw$MQoF z=Nl43@J2}X)r{UrJJ9^T;)K;A29!X-BB`66+huCIL>6&_PTC4ksce82d*l4>M~(v3 zvtj*-n(f0Z92L4g-C$HI&x&OuLPV4&Els-l|1?eaR~c91u&o4qF*&>t=t%(n(_emD zDMtx2yLjqj9we2k5l|@bj)UbG&*-6RpSDDxIMKD%65^1>dad=7`!B&^Cw|*>%x^3%n!Pj=n9jCg2 zuGDCJK>2{dXRyi^e2;Xa0{}}Y0Z`YVfT4LE&ZnOd1d$ljIS#+(;E5p=LK^<-h@3-2 z1nz0#0v)eaejcDxq#&qtQ-?z97|dobKbQiemM$jqhCM~+U&s8A@f1lB8$RuG z8Uzcu8k%Y_HRXoX!3Cf|nzTC+@bPOC`Jqvo38B=Miopfa1Omw zwZ)0PZl{5jp9_fPGh5=@oKK%av$F}V@G*Xwb`(BAj23Xf{(1Wb_rum;}n^X25D_U4bTI zE-4Sl$&A@^UL7tRoVh5FQlVrxBLx44WDi1NAA=4ojLImBW0eCa983wXx*K~%-^}x} zo%U5-K4)r<*L`rEUqNi~oJYW~J!Qy1u}`Ma6(-|Rl2r1a|8%8$k|6lWefqF~p0)}! z?Vc;Ig_r;WRM)u^k|^_}oxob#FL5jNy$}~xh;6#bQ%#C1W1B=^bhnK zgC?eB7pJ)_dob!;ftiV&9Fgy>xt^Qvi{`)kyZHU*vu^^-->|%o7WIylEpxjsJ80l^GiV zN_oC*DLX~`nk2YJ5EuVM|){gxGgj6XBTM<5x{%;aW#x(c9`edO~H9KETb1EGr2#!@hQzNTl28F9~= z{W}+0EAH1sq|fMJnOW|APj1XApd=WuPJ;&`$xi}PJB|e>6Ct5l$Nc$t&F@|>&hzvV z0$g?u!^&F>7?hkh!%}dR?L1z`InBOn*BsOBOjOKp(NFSy&I7KT=?*g2{IZ-Qu60e;)>s#XtKLNmp{66#OKY znrC3VNlHShqf&mtUX}WPEmfSF#ICR2N$c-S6)yVdSvh zyy!&m;vgTuJ1Gd>BcTMn_00HE*Ha6I;a6c)b1?Ct=7qW|l8^8s}` zZP`W4=vi1ONumaSRz8JHwuVK)k5iV%{>_wZGymu1LX5w$fy2{Oxmq2bp!Zl~JMbOx zQ}X*5YHF-_s?Say#Ezl%h!uaUpK8ryZpS%&VcTc6j^#qapwa73|BKK20G^2Q=A&_y zKLz}x;}rmc=YTsyInAvu9@9eB%4e9BKvk0JPY|!uI37tREO)Y>5&v6E5{5fY_2VfUv8LZWFa6(ua6C*%FnJdstqvw;B4=4Znp#S zcss840z*;|`rdxNX%?>muE{l7=Lp8Y8{nTk&WJyqma*v)H}6C?FBBq6_mhtTK*9h` zZ)GoKWk@|9XSy7Jh7KEyJV^``(i?jUwvw~(Eiqym1Yk(oloBybtD+dW#w5=64U z;BJvx@idz{cJcs;pj`j_|T<$rh%!0$Fus#6CN==m{8s-|0DU?u_$C@caA7F~3; zz|Sia*{RV{eMihVLZrZup-AWofUOp6aH@!X?Q{17NKHbqWc9QCJTYsk>Yu0c(Mn@a zIVbXd*l7NOrL{tiAw|p>luxG1=&}vJbwAI{Q{`1R@}|9hTDu&>@o~n`!~U79Itdsf ze|rUw;6Bdqd{$W{Ac4DlnW6?jAr}dA_Sev`Nbe4hITjAyaI(RpZnlsUkU}Z|K1^rl zTQZ@F(@v@O0M^y*d{yn4Cy!B{o(jDTPV{1(bKCOBFl+hd^5YDThpGvi2+P|(*373R zxCA_uq3-_@1e3?~a+9CzCeKnV6rDF8QFe^S%eFYtnU13$F2L7w55hABuC4#LjONQHnoFnm#w(G)ps%4m0IjkZl-#u7A9|xz8pDmLshppF(xiyiW!{yRzL55hS=T<8%6MwcRr-e+nwqS`LF4uo%+CriGplG z?w-sv+nN(2o)n-9^O@8CHyuh^8CmLeT6tF>&O9=aGCU&aK!{&4?ZRWk*n(rq(DNJ& zL@`|a!hVXZO6Bm>A)#?%hOLM*)-hHp-jDy!Jlx+2P06_RcTdcJ4I`Lr)~Mvo)&e}U zq!48Tvyuu3qw=t>veg0={PdcZ_P3_bGiD84k8?lw7kqHwk_0r9x_qP+Jt$KHH5$cO zA5!I418s$xr|Qx>fG)O-w-?XYa$JmKmY!iO<9RZs&JlH=cMIj%pzC`-UYor2f-us? z5St>XrkXsR5$)!me4k9+K%9MAe8iuUu@T}BFH`KN)GomfA<9;POzr|A4IX&>6!Ml` zPztoB&KJUNGZ`u#CeKR;LieessxUDYsqU+zBR3hc1IoOj$H)o-an8Igv0>=3KC=>W zi9_FgM)j(4d51a-bQ5AHU7S?X1O{AllfW%OZuJ8e>!39?>4a_fS}02Vkhkm&UGsSs z9Y{!I77`Taxde7iIE%0l(K1i5n+mr*cZ{Cx;{G*w7PDixToJN{6}QREJ8H;ldA_8l z6EOZI>Z1?FBw-U+WrT`}Bgai0lww$BS*CKAxt%FWe?#AAjXHB;*yshi*Q93RXhd8t z0ct{^CW9CxH~4XWag@XV`yP}sdu$QBOI85-$v`E3#X-Xf35bUj?!4!>8QTk!A&)|o$@qJ%koBgp< zQTBTNI@T~=ujOE>gNtbNMAg0D07Kk#x)^MmnGE=H@7P{dn$HaT#lW8L5k-v|VE)fn zK5>sbgB~#mmW%Swa8&79K;gXs75kz~XXX{540p>&)lr4C6KcBq-5~RviVI^_U{69Rxo)?dP0RSe#ls3{HbesRH!L|Qq zgsotv44Enq_u*Xl_#9i9*v61~bT?8l4(F}fSxGIcB92yDsH`x_n`_Fv&=4S>+m~ug zG&#Pg@>w;a^uhQfSTv$!i8=vQ<==E?rI{IY09%^LHnw&HTXjyJmrIwNbM`e(uC45` zSwl-(wEPMnp6daD(2-QS@241pEdNh2Uu%9vl876HKidypTg537sKp#BTOWG^=N@Ob zl{`Av;uYsmMJ?dg@qT?Q{g~j9Olg}gRo)UO8#e%u=k|V!k>rI&`?`{dZ}Wcf`l=JC z=BbaMGWcrVPlcGe{1&0f`?HKXgWKoWovbE|=JH7aas7=+Lel$-C7dDW)1Tv2gkJ9* zun_$k1Z|*vq);~v0gh%FJcBm?DM_-QVXzeDb0SBzXq^#>q6c^aEjCFc=+Dc!ukK!d=?TBx7#A73fJu}EJf69k2E*&*05u?sSKco>YCcqBv^Hdy%Z zt=4Vtaf_T=8DiHF3)pk`^IRSo$sVp4bnJX>#k>E1#((*|vX^S0g%7vG&s6wX8lGTR zyo_W&(X%<)j?0`AZaeA)hF55$Xg5nb{h zP>AcYxU=*5@1?6*BLFP-lVBN{gymXkbd+no1P`hu(KgQjJ6-viZoof(U!ri; zPi`a6bw_{8%9F?xCc^AX%^_AbRS^P!&_&K9T5YB#Ft(S6&F)n%D)$Be(7{~l)VwF$ zs8zl&LJY84e5T}eih)>lt9HN~12hn&T}6mKHJ+p$`;5{*ORF=q*-xWGv2Nq#P!NZ& zhDk&H|1R4{j%E9|`1Azr^SI7qF`<)=DL7%1xZS8|?exuvPK?S5nh5%H!DVvry+r0H zZo>FtOvaQ(KK@qU1o-nzU>MyKcp}WlE?~jH&TJ#&$=4CU7-q}+iQbtyM4S~Q1^g@{ zoeJT#SHEeyx(a3jAg(i^o^z$O`(Cv z2h)@-1(COl>52+h4V)HKdnur3?GOm+6dYHH7B0#4uu?=l%lzY=BDTCkqKhl%Bpj<-mN>^U}ld@a6)d!cV4L>bw+Qio+ z1#j~`BeUs{Ir^XKu;P^A=W8)-qP|7%#NJ%KLaI}Uxoil29=vh60JLz`;E5d_Ujj*9 zDVLF7=5hnb@&6P$!YEOFX@)wk7L$0Gxz*sS`M=G6r}6QB3%Jkm=b<5U3E;N@k5!a$ zr10z{33amqP!#rs6cs~h0%63O)x?o3>`gNrDDg2W+7L3^J6$q1tYXczla@Z{bZU9= z@RHLmg;v%3_GcJ6f?16*dPaBIeC5TCJCse5=T(d*7Se~U>1h8-FZ>{FtyssVO403k^aBw^NuoUY1_L8^m)FVaG6Y`oaD^t7Mp)H4EbXdwd9hWc9@O&4D|a&TGrwJuQ#w+`1ZmXh^_nnm zS~@@n&HD8JkRmVA3XI&-gY631b~@Rbn@it{P4A=hLZK$^eVSKoc-2*qGJd&rZz_fbw!!$s)r|JznVlulZ32IgcddBHS3Ys3qZI?0o2TJReF-TNxREh$5U7rfsB8ug zC)iayztk*7XwBJwOMG_5f<%0v!EE>^KJ~MN1D_$V-6+FNEWCmT^gF%LnJw zX8hCl9{|n>d1lx){**aR6R1!xIA?+5V0amU4Z`SJp#|Vr{ zO)fCx&6mw?%Wx{dd9FyP=bHAD_@wQz$NUw1j0s;!Y3GWZ=KnbsHnbOvsQ8354fOAu zZzB$skfP`GGoa}*bH$^8wP5UqNnDpX#+O9~;r4MOv;AznS&|J#dlOt+4pvxfMd3y~ zV&%vz8HmZ!#;L-r0ThgoKwL%f_8s~m{+rtmM-LUdXwt&Oi?;adn-pri(*q0wG?g(S z1pQ~3Ujg}UR2PS@@MC3+Xd>Y7B+EOp3Zau}p#3&yMXqZGE&Ofp7we*v1%t8PToIy# z+jy~#mCS$JYRRAN8DmB5Ojt504spiW9tN&DGbj17jV9{ zda0a;eF^4Axl05|B2bE8>X7RdwJDni6q^odmuuRZiNm+KJ3?mIv^6g`t78Jl@1!vh zysVqmOH^nrDx$L?5AxWPs8e`uz_i!kt#lnAA^9imur}Ikmgnyc0KRQ*2sOq#*hmSF z(A2gA<)|bc(}g)yk+(UgY+xEoj3|N(KMolwX7Q4+N}jhRQ7kw_>okkEP{NPe3{lAuP*By^#PD_l;|Lfxa z($uSmPxHV0UHq{E@Td3hXQpp!3?_UxVy*z_vb$0z%DM)WLvRdmfGay+JA{App@{|K zBud%gp$g(dD?oYC5PExZ!5PCrS{*9_M)sA~yNb?RmxIpFLuq%yW|=yS zT=u_hUlXt%0Cu5S^sE?6a9%c%w~2}}1ehfEb!-57-pFmRYO2m4qx1C<$bkT>yru=b z$9{U8{?j41_(by3E=NqT;GajFd2G$Zg(R@GTFdBSLPzLo+UQq7I^yC`HNjD1NSG9& zgSH|oFd;%sY2bT=z>&IMslnh`$0>=FbKI(Al=^+Cz+JkshTq#bc?9vCvSFm?ifmOrB+c7xvT7ly)U1 zo5a$L+_pRaUAH>FD@INnz-X!QhVI&QRPGspBf~PSpY%_Iys5614}s4yaR{a_f4phf z?0W;N73|aeUo|!fOliMGpz0Zseuqu&%Ov|udK$#*Bv0<^=LBjQMYbUB~XrE%dQL&xf` zzfd?#-Lve>0mMa<4uuhR<<9fCQD!MXK%-)1l~QihZBq0bK;Fy>Fk?Srg4gJ}ImM?R zfYbL;JTIVR9<%xWp5zu$9s%DCh+a_0{&|ltEjX2}PRDbGW+41&y8ITgEzF;&$Yo`b z7X>{_r+P-c)l=oC_1nz5E_0<`zm!bo=+}sRv*7{VmCTXMVHyc@s|dac=3~jY_OD79lo6EhP2`{MFT5w>yXDzUfasUcubf`*pC5a^>NfZ&{N+%^re#Rw~Gr?owdreeUvj+Gk^fC)-OyZJ6o@NM}NUrU0$ zRa-00xu3d|*j#OZH}!RpH3A5lnCtAgjbR(qHy)Yb@pvkrDqT_?*;tvuYBKX6xW`gJ z-+?}*ozbR&<#B|9onkrnvn1F+?}~Uj)lf|YWJQ44hk61?3AdQDoHfn-w^raMU_<)_ zo*KW+$kQe)-_K#TOdwBC z%eZ4#Nf1~5E3AA~qU2nuP+*4xu$0AK9hk@&r`^u@g+Ntpb9-xfwmor(1pp$wjBhfq z5##hvoiirLD=n#0)lx+{Yq>~+?$q6D;}t`LSrYF0U+@^|S;x5DIi&jkISvX87CH~_ zN1PbiPze@&HDkps$5vfZ*Mj)5%`}F^vQC>G|F5A{lBdj2|1XbKYU?^zg(W4q{Zx%- zZCC;OBN6!X56b+moifjSLIH@Y0YXvea?D@bY#~ODh6g7JlnRhDEfkyU*dhDRiJIjj z8CL`PXG#U)aRT?kqjEoWjlmR!c(SZjJRkw!t@xD?ci>+csVQIwdc96e68HYNZya;O z;k4qKdElX3+PBpMsp#f-7iTF+!nP^^E&_abAj;1j_~q*)xsr~II09Ie-U(a-Y%wEg z^&bQf=&obez->k_p<80ZFfXnmtej^+a1l8NpZGPGbfd%<(*_xG@O0xY>vrzNKjuJ zyS_N=t0`6;!^T$ccg#A)*YQ#q<;v_Z8kSyWoI0~{qD7hGx|DxhY%!*yH!NOuU*2Wt zaFyULVcdCh>+6mL)>p)kRTw`071}BNzHn{=F^ZMcIR&>!(6r}3W!O@RH^MFsPC}u! zg+_BHgU=~MPv02>vJanMdEDEMxqpiM?e#}8@b^8(v1y>6usxMp9>WhXJ(05XSf9Yz zMP1ghVo)R+6`%#<{;ch&F^@3U!KUlSSTYYk%S|hQT`W(H=W`BZr;qbYba@2G3ZC43 zCOZ<`;oB*s938ByoaOAdCCV5 z1I@Q4pWq#@jLhKW1EFUey?VCiet=To8@j+^j_w~_clMqh7e)^-uPP6YdY{SwWsMxR z>1wW2xigB3gUXrIU@2!Lj>F6b2EaA3<{|?AO!amX+`b5Z8 ze0b6f))i=1^<^}qU<(|$<}u%&_Q{95;MlV({%?s(k0n7syyW>`d_W443_+9>*(}c- zwsU#Ff)AmS{aQ@0>ghNMeU2o?*fH*#871jTQ`H2?s64&DgdPzY0`esW2|niJG%izj zijw0GUF4~cS4?_TL$iGk^?zWKvT+tRh%JNlwQsW9IQ)!RKCt+|%fqAz;TL0!KELL> z=hNGM@Scf{o>zZ10E&0kZ$I6BQ=$3b$xk!q3lm{*^8~BQ-PGDiCdPk**lVe@Unn(He7?7Ya)L~_b_mbZ1jTjy#2KHA+@ zR7O++rqbb@X&WT;k@~sk^&PrUhf#oTx%Ia(VB!XzoIvbVJgp;MNRlcfJSEzuk{%bH zI%)rm+K-=Pj$0DIi%z=$X&kha|FU@jC>g0S#)S2ALl)VT`UBJ9S^XhF`fl=6W(^x5 zp_kLP44!gWs6lms9vP?U<@q&zhTS0}^o1Z2Y>kuW+Gs8tf_7`7BN)gbFg=(pp>;~#6BJ~KsTjkcYR%y2mI^*!_dxcGnd z1M7M$lau((`T(m;0;=R-(=PrD{~rpMerh@NPG0od{j9QV9mnZ?<=Q^*tBHOx?)qZ| z;E%7rML4iwdCW4XasoZrLCuStDqNG5SaC9aBOEjd)v;FqEI|QHfu+1)1{W*PrjZ@Q z{F>J*jv*erE;_KgZnl_*k!%eeK$@p=eWb4gY_OT|CA!M-WR+zfo&4pJ5pfcqLlTPj zu3;xQhkah`cG|PTC<8nIV}%)9AmOi>BPBp&JD$_ttK3p^Jm)Gx3*JCtFfs7u7FHq7 z4Y>*yP)Km_+TtVY_&Fe~trpOVNICbgKTQTYKd+3o8Ay!CI|g5zvS$S>=>O|65r{kH z|DOZ*;ML#z5&C)N>w@Cy`PFnj_8HV+1nnzzwIjnXU-9w|19*6#odhA3u}{-iy>bLA zQA)8YMj!g z-=CIwmEJR6-$cn3(X^z&fne@rx0t4dUnwwr*|=Jpc-zJAuRqoSejBqAgJ%UJljRwF zuJ;U#c0Lb)U9fQag(Mn8gcWpU8E59Vio8_u3#58qk){M$RG>v?ntl3b&D?>qukJkU zmsuR!er<8B{c+CkqwK2u)$9H&t`F3m&!v>Hx?d&(Ax8A0_v<}SJU>}3{)x?Wf@v=V zY7zpD(GJ=_q9O1*=?&iatv&-pNehe|IhK&4TT39}NXl82V_Et>Oru(o<1#_Et7QV3 z@VA6YiC5jektLUSTdeR1BqKY=H9+|pv)==+wx{w;*~7bF5bP$1G_&;okR)?>0o@fl zvr~%}n_$0)*u_RwI570F25lxK1Vd4QeAXzVCi4`9CGCmIAplS}M2Vp~oww8u_sw0f zz5u{+DTrNjML&Hve1sTalJ)7WU*wq~vpQ5^*yy$nm8KgVXu?=s1ew)yp1vHT_zPKt zzzCcfw!2|-@VXq;^mWulaj4M&F3fg&Zu5W6vo}wco^cx^6U!ioRr!mGzhV{L4`H>T zXmBwYqjbg8l7ofa^nW~!Gd?Q-zmNDzFIvP9f-K3IptGIJUU<3J^KLc`%#*dWajj+g zu>|})@W#jpc{zZ5`CfgGfijwy(2H$kI6=FS41GgNvMXkKFB?oNsI>Yr4lq_DCDEnK4n24xTLVV^$`K9#Djp8HIGRA!2KlEa}!T<=6MNkF#mNNB<_W`r;=au%Wh{Y-OyL8 zxLoFI?YuuX0ajcB>^9(9z${B6nX#87c3|HDZf8H7m6f3x;KhMT%_t~{K6~D6qlP5k zXFo$D!1_#DPn~1xF_o1B)wt3REOW!{IO)M+&g=K0%wMmx^ZMyaq#q)E5JeZD2`79& zU2uUn80Cp>=|Kh2EQ$DG%V!5qE00%@?*15iL|rBz*jPQ5p2L=Ys;eO2LR(E#;60T? zW4f*eT!r@#y0Vrm!hxQB)5hpJf_=9Ow2aTW#V_R>Lj86lHF2jh5Sx7dDVi_yKxS%x z84F~O zamD$9;nuN=J~sU9{=)x*D>IWIFLp)^id7YZj}R?f+I*^(2o*y|)Tay}$Koy@5gakm zViE_zl^=auF7x!qOOgm(37_7V;m_=(~wj0g?zCujZ@t2>)eWKuX_ zMzY7LO3NVY%X|hfQdX6G*81LK+=A*i7Dqt}enL=*6U{ect;~^k_5Oa}pW$DnM(~BO zgNj;{S4=dtuIl~i<4yEzXE4A8VTFvol&52LM}q&FC0MC*rHaXC2ZJ6vi8bapZCrDQ z@~FL3?InSyCcu5@7tnr`MD{--c(VfI*gprVOmth6;o?H0(#D{#QME)atYT`$Wv`W_ zgx`pkGOhwAPeqR*ReQJhJ7yYJVZdi7kMAONIl$1WX z@(;76vgw|0FiT!Gk$Hlv!8T}k$&|wqB-m{-RzTL?4BpQm&>>$62E8L`ONlj}LZm(A zQ6YH>tdymG^y&Z1T_e91cYE8#@ARdj!&b;T2Bao4mrZ5%bJ^&h)Y)~(qv$xL*#-=} z)B?hTCN(fI8*W{2lvD`OxM%{L%n(7UL0%d=%As~ENsqE9PMU7!T&e2PwiJ&@j zA*lB;yo5*as|dV75UB`HHvL-IjF+>V_Oy{$h6(0ZsHy2hSRnn-pB`VtT<16{CY2lH zJuxPpIS&adp9UGT+w7I^w|#$p3M73?JDsD=RysDsT{=$H2tD1$(+3a1A_`A_r5&Yn zJzV45^nw4V|37;2Sw)HOTIY4H+0mT?69|8_!#NFNXQrTEELl#fa=>3oz9qB>LCTc=Y<(RJW#+Ozo73GItNz*V5+ z2tpj7#31HBx^E~-htL6r2K&YM;WTDLF@ADxSyIVuSL%azGUg*<71)ImK%i$h}&S!XB8^*U?n7`RX99U z2vO2p+4`X{<@qQNQ+WiO9*ZL3_3p5EYErg;u$jE@_xL}?;5v%L!X}x;1!6?b_(|JR ze@gRZ(QAmR%T2XA*77c_GGgp3O?N^#Cog+TJONaD?1W(X|FJ6n@Y5dVN#3{3;%U|& z3BW(se*=azd-Ylfw={Bq@7JbsbHUFEf9$KP2w;L4Tm3qLkaM*`rhM*gq>r7fL3Ny_ zXD1exG%QEl%TXCHmN}og^yhxcB1?@en|8e4j5`7onZ$g{0Yr%fwcQl$m{0_5AIR}^ZbEC` zhc{r@Klht3lIiyMGzo%bJFU=m!HAf|MdFhtGHn|zIxc*&zQtYEZePlkd%2pm*jv@} zTYWz&%mExien)?_n#psRiO@(ixZJ`SAvIO0tWM&S64aoVTwyM~o`?hXCyl7ZS^KEM3R@&75B(0}eUr~gx6@5q1mY59NpAO5fZ z?H?`v4*)I-9!55z{l&K1B&-G6N?$?v#Yo9J8})_=TgH;_GxGx7z_A;dIRbjB{d7Us z@=+U0B8s#99GGh`1?j=K6PPT#hNJ^`L(p@YeJbPCJRChGxwDG>IT?|8pKJKfqn*)E z3gEh0=iiOHY=f-Hhy)BSl2E#3K0~x^do7jEvg5^kQ&^lhU*~krBIHPWvt!x^^N2V% z*#PCw=O=Jxig{8FE8#k0*BJD76B>FoC^^ADKmDsZ`xxl#39ddzUCj-Bm8o*0+SJc- z{tkuelQIPosx?@j)QP@tpBo5!1uuVTTYIdV%}Kxu-j9Oe`aGT>FC%fuIKSxbyURY3 zvS77rz2dZW7@7NId=;1WiMAgPa6`#)JdRds@4=X0jJfQ;Ak>{s`~LXUl`+$CE&nH8 zcGSEaujT(~xHxg^F|uRqiD^y4X9cF^vE$<|-o7g9n_%QT$Ett&|Nn3Q?SJ<9wQv4& z{69eSF}X~p)jt(I0p2DWp+4_l5(ue-D4&bRw0gcR!=UX6Do}o0tp`YCKU0B+WSqgj zgwE9ORBWvv4de1vf%owMmO7<(*~nO4F)8i1uOL8Y-65ro80++@HGVs$-9xY|DLpQA z;smd@m+A{E@%+Toa4d^$XZlid7z9W3r8b*F{;VX4nf5%LMGr70>^XufEz4+>t-*^7 zuSUY?j^HDACDAWDJSihQ*v?O)5Wjdiqu#zQC1j1j4A6}#KXHbx3*sjF2%H-UPl9d+*Mh@cy*?%HrE(;7Y3&#Tu zVKmcA+y2~~KU0-DAx0@3J1+Ecj)RU8ec%x8J4*Leg+u%-FY?4z_=ieWt5vMlDJ7A6 zZH?zLUOL|1NN=m(O!&UR!Bgb;bp8qf;DsNo$ba*5=#v2ayVAk*DSZa)d(I4Ao3FE-WmE2;V)4;IrVg=0 zEZUZ%(Hk*rjnbpGbZYq4@7_Xp8>cnH1pxsAVxJakKd?1kDIdFmCg-RBSwo&kWpLYr6^O5oG-2 z`fWP^Z=u!f2G!DJB}S6d@Cln4FFe6+D3WD=v4QR~uUPR-R{CtRpb&$~_hs6Ox=l|u8kAI(oRGQti z-jf6W1ml%A3Q;2j%z6@(=3EUIH3mq` zUJ14haO8Sj^|{hY^Ce;UBuj)W-jJ9uW>7yVyW0pL@Zv&X44@D+&3JXQh> zJ3vaV>-s&e`~MWeL)+fe|1kyqzn1^E9<%=G@BR}1XB>a&fcgHr|Kg8P|EmGO*6?&y zfzH6rAAlG{eE#pJI$e{1sBsHBUo?QdAcGxzPC0&%2Hwa;&B}Ncc#lK*n+M#zg5|uVvREcyB@ULs^ou zApw!mo+G42GG+_(&;MyO5U45?Q&6!>Yi8)GL$w1*%9Iy%+7bj6KTe5B(wQHb7puLr z#ZLhrkIf7Xa;C7n4n(&4*$}zzi_rwDM@>7j6Zktg_ZfL{@HW|m>y9diq{ z)0Bgj>9T2jsMpJkbDRzqAwKaLXA%t=KHV&bgTr_su{fTgGC}Lv-%rr>05#t0!Eip) zJf3sTcvG><@tk0X03I1u#S8FAE@v6n(^Qj)kTEhQ*gpPWWADbS@bs+$x3>Azj(seR z*Pr9>_?xx~_UYK@{{K1i@Bj2a)_?Jj|NDRYPebc%z<>Df|8M{BM{4kY|D((AUKvie z2ks+GAwAQN1Rn2OeaCPUSrEcT7)Yl9nJ>TSIU83PH{kypKEEXz@Zs@y0Rg4=wtX8@ zvhB*qzhWhM*}u2br7rGoW+Sw^I){>T*zZpr|ESO+&U0t}L^`|ruT~p^3tIuc?YRLk zD6*5joJ+8&gB7&7i2?e>`4T%z6OCr>I!4YUxZyBG21Xx1x0KpZK;-8|@@4dzDr6kk zt^}zeIZ0BG%UrS&b8e7(eCgh1Y%Or}tgalvS?Xy53*1?1GxPK9-Q!G!)ik^kD=9eFK0fNXJ=Dz?fa7%kW3L;RF60`{ayg9-fzD!ISW( z1IxS?wmLebD5d8)*wYLLn;GgOM5&7Lk8K2(=?5<#@D%OE#DJOa1^|)fH$q2G z&y_U#zhkQ6onxZPgY<9%Foel)w>!S4U8*>auZ?ElwElR^QD^Vn=)wUSj{`iblpGyqek`3!t(2vVF3M^_si#`SW zx6Z9&Vu~@4*G&O`b-Nn$YO&Sw)9P9Fr-9y7X9js0PmTCY7S7S)mkCN35SN0vMjzRK z04A+(A&*vZ5*?kjGEPu#y7CN(QN0SG@YhTq5Efn`QZ2!u@U>vkID zI@-r \ No newline at end of file + + + + diff --git a/packages/commercetools/theme/static/favicon.ico b/packages/commercetools/theme/static/favicon.ico index 479229d87b9c2308b41ed8fce34a59b29a3a5653..c10a1829bd906bb97e006ab227779d91c965a423 100644 GIT binary patch literal 1150 zcma)+yGjF55QhI;FbImNL{ad9f~AGMrH}=|O`+fmSO~s>q|-OBv9Pw(7YK;)B@|cj z0W5=f`)2o?by+u?-SFiMGxN>noCA?+eA;dCy{x0AG%INXNRdhMEE2VKibmNJ4(bZ; zU{K$UN#Zgkt;Oy`>~@G>9i1@ArF}&~#toeJ!)n-^plk+pxq99mJEMX-a>f|oUghUbDA{!I6&MFsUBypQj}?r{h5Gt4pf7V_`Sy5^6XVeTs2xEVGx zb^RTa%g%Umz2=x}wRt#%EvSK4)75g_WIvn42QXLEXM*Kn3T%H}n1pmzSzvuI0q5`m zLpX&dl&NvedSDISz@O_Q@gh|9r|G@U_*cZ0_F(UDtgv3f1uR%@kMqkvpWBi#T$0{r cq^KqJ8&a>v|3*)0^rcoLoxS|^S+8Npk^<9@fsQ5xrX3j_n0gp=XmsEo2S)||alk~CS!F3L_zi~NVE7G&-(dI+hTmZL z4Tj%f_zi~NVE7G&-;k*_t31UAVs5`N&H6Vgvwf+bWmTjy{u^b~j}+dI>BXbjw4zaL z+A+{kyhlGQe&aw+W$F(62Gjip_<6Wu5__sDhb{Fz$a0Funto%d!pplkRbw{dH<eZOt6^a@}L>Nq;6=TRoR;u3g4vl}xnyjSac}G0X8AjD91_m&}$2rnB{Ri&%Eq z7&fDHG@D*BiWU0qV;gH8Wtl~(+L&@)4v$`zTRmnDh~@alu)L~twz=_fHm~X?mRX+6 zfDIqljM5~wu4WN?xcn~Qg5Lx-(-dq9@&aiOfcoe+=2cH*FE>8Max2qVwmPQt8yVgt z_C(b*wxTMF(YUJk_5t7f@@vy3=GCNi=LN>F*@0`>qqX-j;wM`j6Y9sqm3Ok|YZkC) z1M}FUz6bCdN%R|C=*NWoy7bZbjduJ7LqAwdt!*8Up+={U*zv3EHo`h_a6Is{p6!RV>&wW zpKLPdp2I2~LJOLF__FHh-an_!s=f&tA-WgonTtVJf=GYy7Zi_$p4kR|_hHQTWe}Ap z1Pu2<7C1p3_HjCj7KAyg(BaYhphNaShbVM#)IR8uaA-TmyNl}>%xyehA?T|N(pRd^ z()5<9yM+GIbcd>gNSCSeU)E(#?|U$h>d^;9&k230>P%U0#;FfYkd+dy58V17#)8Hm z)NwHDb>mo+;rV+=M<=KcA7kEa6*`{!;fjSA2Vu+9vEZ_x+7e+;G7n@MaXmGz^Gp6s!6bk*MPdXO;c^7bsv)1is~$Oq-_s7+_sx- zZ+MQqQn#GF+qj+;we4s7kH5kCp^EEY_qNp0uP!Ku+?j7X0fu4 z!)!xcA^=nv3`)6!P#r>i7p#@m{0e0{gpnCp%wGX@>^n6fe zMKW9BzmIu44zkrX1uUa1Nwd}5w}h@FnIO5`T>At&(z=JuD!oDTXGm8Y^|dOOb(o+3 z4Lf=%o?ofiV?!TueQE5YmaS}C(;CHh5;9?$pGhpMWDNVLc^iA9?in_{Nb`p@eQB5* z6|i0Zf#-h{RHWE*#a|OxWK|}!#{*MXQOABZzv>o@g({Px4`P0*c56DYSX%iYJJz<3 z&Gz2t)`ue)hi|~Q`U+?tf4=ZbR6mQJzoqGE_Wtpg;e)1xq$9FR)7Ymi@3U3@0zNm% zZW(QtIu0K}XMP#aJ{zS4=ySGz`!7z^`1Q`KGF`oTv6-cHlae=TBGs zZo}M=?M7yK5_H2Otf+lIE3CYa6_ih4?>4Px`&!;%x!!RY3)PSWe3wpK(zJ4A( z-?|Tq-)}cRgMGmGRHU(OjjP$w_Py+%&98AiIltmI=qg1&X#SMahw1$Jb?F|&3HPB7 z{Q0In806AUPbqS#^kI9`v+PLw9<~ti4atPiQ`~k2$KiJPmmc`|L=({m`1rv-@R&tl zVeEqx2g$lp^dYw*ofTAE3tt8?jnEO$SCS3yLtoNC;`vGFLk}qAK4^HrW|{kdn22 zvv<<-3+l(Rf(8TOyO~6FL>QA=nx~)|h4KRF+;-$u!-n})g6+!Xc#vNO@*($8F-FMc z8^B`(NId@({QeEOHA(BImj9;xA7#I0cJ!e4*X%*>uM{dpE2!jGY)Z*h3KgRjRCE=4 zK&2@~zixz{UW>VrKE3E_4?Uk=;M+5C&xM{F_kR6iPzi{|iFV((_Z#O<+{$L^CQ=Py(5a;!&*_w>Knm3}0i@+AF0ss0bukUYeeHONcEqMJ~Uwv5)QH9p%%L05anoybU4U7$XJN}%d#ZrOeA^2Tu}1xcCr*b z4@KzzP7v>ZTzC+<7Z)BPoD;jz_szWjgOi8XVRKgMd@>8)kn1NgA7ojQb(7V6kY&jN z2VEXYm8CFoSOs71A;rIzeA`HQkmiJzx3c5GPM$U7-5OLB}>VG_Vh}cGiKCh>v z|F?j8TzQc7D`Y5S{Yv96NY$+|(yu+R;kTmiDWDDz$G{N>nFm?FhGQdSd5TWIcA)<$ z@TGr;{6{nIzY7oH=~r5_Q*uOP<8*dT=D}iKi}hokXP0G3KPQ^e|KFnjmw{@u91igy z;v*P zYRW}qc~jY=mG`r44Qtrp){j_aXA!IFEa5ri9gQ2=la-nJT()6OXgN$fy=2y}UiAOF z=>OM2heZFW)nq9I9;om0eYYX6^D1lYX=2BF8d!1rCv4C0ZESb*7UX(9Vh!B^*3sL_ z4zzs09<9K7GIFrmoVJrCnGfo_prC#|i2h%IzMlu$4dUZ3_y~oEOysPW`KK};#<~T4 zf2Zk1_DJPqmg7z5IT^}dlPt|Izm4axYr860V|NXEuKFQcSqe!vDLm|gJbekV@#jI? zdH;zAi4WbJFxUvn>n-(9VKrS9tg5SoJz1TBoECglIj^PKYQ8pub(x3DC$U4V9|EUl z&I8Yd3ptW-2#JS7qqm~}XQJ=JK~xtJ%tgBJK>6}{l{fRX1AkX3TT*o&)(=M8`>(2g zrJU_7?+xrg>n@JNV--^%ONMzJx{Y`NGId&RV9YS|eFgPDbRNdA9nBk9OK&4v8OY{q zADUjWvk?Ld@UWo#4(9JH5=pL8AW|y#JIt6FkWBBy=m+ zO(}fcqrSVEE%Hy|>rguX72~gAA>wM;R&yMZSZ?V!z8*tsGC3v4gNN_GPNDuIA5Sz% z>%RjJv{vwt|0WjbE@!)1Ue)ZJqt9W(1Ff~LuX%*e<)yxVuxY>~EFO-Gz8SLR!MX;~ zHK0DRwjj%rJSS+a<(ax%*4BHRt*)D?Tl)!@2U-tWSaApDaV>kjZl%(H5u3XE8@=dz zvef@SqyJqX=EOr*RWjS!{0wX839yCLw<~LBWaC1xb6So@k|nYew65|=%X=)dBqf*| zkm3j%AG`zh`nMnta>qnhfLeL~U3l2j_9iRqJj4pB#w+Vyvb{Fg2sth_=0W7J)j2)W zKb9Tq{Fv=)dpl_Bbh^o1mPj|v^WDPo%g19)auj=|{t4dyx#c&Z|D!n{dC*NRJd}W! zZ-A6_y4ti0us(KFTbr`u0eq~g&t*^6O-KK!M$N(BQ0IhBx57ruL`@#mIqYqDlg%u@ zmM!$%!Je&|$Nkr3s5vCRm1-BsMrgHKW*k02-_Mu&|0VSQV_M^L;~~e7wLB2lOBOc5 z-G5DGo9Z9u{^;)GZ?HVnOiaVt@Y1R&EYMZX`@hI{Hkrib+=m^SHXv9Wv#unGd@-A`^3g z*0pI(+1GiDEw7%g^j+9%u3t&VO8MhpzN`?uc!+3?hj>7{h}N*Ic(9xkqW{#o@!+6e zbHT%G-}Ugl)ir6^e?{MI@-(@?B-npttvs97>4*o74;2I3c^xAjcD^OJdy?6ri& zWa__oaSZCy@8SI?9xT>2ZFw-*2!Vw*r(I$pqkbj(;O@UBPq66!1YQ3l0Xt8cLEza0;8wh=Zw_|W%nTlD|C=zEoI{~dUUr+zi@ zP?mBOegB$8|1U(}iyZquFnHL5SmIoeQGU)t-}kxppLme@=qDQ?;qW%})0rS+|G$8K z?FhO5;qV~ai0Jj}M({EmWbFUv(D%*3{;RbyqDIE9MeR&JC$)A)s-ek49StYBj)rP! z8D)a5?#!-8DMpTi_O6Ws z>H076Fnmt)^;6mXZ`uDX)^D^A&$6TammIwR*cBsled%8Y52u1O*)hJM z8X(XGH}1XgvpCfnMNq?Z;U?5Uji6enLG>Dj{hHL_c(VLEh%2K5WhVNd{=?2>!b`ZqAqWu&pSA; zJIQ%=v9>Js98nFJTnA=c57e*CI@Nqd^0!*}3%xr2jd59w#sIPqtXVRQ0c62;3=C_# zk?`pFZ@_;8D2Tt11v$o!W(=hDmaxabC=2>M-;R7iwnO=QJNzv##f4#yK`>{c%nO}PQ1zjv7lmCEt&?6kGph;@{|g7-G! z|0ElOHt_#9@P7rUQScwq7#Qv2;Peri!2ea?{l}mxkaN97xVAy~2BH=3D$$Zih9ORb^II0fOI4A zF38DWj+1@V)zKR4qbYt4O%6T*|6c|FUj)5xS{HX4163Ay++@@T4r3r{KB+E@i0Uz> z%W`0}4bk`r#&OWcgztfW;(Y|@b>g3ofxIRiqcNcU zh}u`G2S+Z+zFyI29|iuR4M!&g$KX})KLYvj(?HJ&{+-4kB-=pPYoye2%`Lx?y;!rD z*Q3>R`FNdPS6?UV>}%(B*;MDXvuU$dOKz&275Y(<1=D;8e+<@u|5I~(DIW0u7+)t) zWgzM?ztwljKB`&r9Q_BiS$ zNghn~=ten+#!sT$;*n9rJJBr8zf= zFL(EK;r)7kW}vAaJ~m@;FY%AM5Tcu@KE!SexGWIgGRgk3Y9Fcge?jH#8t=5nVo~K? zYW)$_Myk4jc$Z1_k!UP3ic@gb;XJ-Kqqnbzy;c7_%PdY+YKVm%5UrCwaPtukjlLdv zcfo%u`0tHo3~2Ab%!=`Bf9ty(_d{(TqMq_5<@}*A>?7rr$R@6=%H=i4U40$w#lT`^ z9;kLQ1~GIucpoM4|Np>y2k~zj1LJ&3Q1(=C-6&+hFc(71F}H#Dt2qD4K861V-^T_2 zu47>E5wdXR)Fb}8S$(&k*9|^XlaKXU@Gf)%_}9ik@Ge@1F~}@QW$!m`;_^i2L}eD^ zEKgMiOk-de2dp>g*BkWqu>rjQRO0^!s5`8Y>p#OC1KM{&uYc110Xnxr@Ge@HF|f)b zP~GwT^4ob0Ce>puuguW-NUmdGZyzh+Gk+H(_Ic2mT3*ZAO9#D3`=IEYt401hS$$76 z-@Ec?_212VKdi=p=7f*|Y9R-9WAIwtQ+#Z9H*e+oQI>%S$Djyn4HtmKK9R3rf5JhH zf2kIP%Ynlf(7qiyE0$h+TDPg^mV}r~F^+*c4w`L%E+m_<05U-PYG{w!g7P~}=XCM$ zkoAFaE|}%uWAJ_+=U>@p@ZlE4VAKh;Z)j2Vovf*+meqFqu!rbo z`@Jhs#L%>-=()f{oPW}T)N z%PLUMPWyQ2Ol`6aVbvq(b;5!f*kdE@bE5r1b9vpXsCQLcCppNjN@4G{Y~=iJXjlyX zleE3Qx;?UzpA>!!t=NXF(p2m({Q$947tb9~J|XBU0e>M2PI3?&gAB+4Dr1xv_$L0R za{lH02v%bt=>)3(-HUx+6x*(@pQ+(bGT>tex|G7pIVK7x4EE< z!6cb~)Y;O0tJ^H=ZG}9@`am6nJk%I|+P;I&|EKD*P}hgO7e;^C;42dEg6!6ugs+%g zmZtd#luvlS>18f!YXfst{*`kIX^)?23=HES#SDFTKMo||7kjnRv6rAvHwH#oFpWVf z+tR#}m2`f>7S~K-*%o`ZEagC&4_0G9dp>ynp!FTTCo0PezZd&&*3~|YGi49)^9aZ$ zB<0+05^FXxnd?4(PC3S-SWWoO*!GEV|KZVN}%&Z>A=2Ty2-uLAu z2gWgw^diO4kKznl(sh(0+g!hl%Rx5AfzHXKJ%)M6pO8FIPRWZg;WmNdXZJB^0q?)C z;Qw;)ew_19wa;P?fM~@$pw>bTgl&}Vqj4^9SqRZS(q6KSIIExhej>`Fk-tpm2;`QH zja!?EVcqu3-|H@vuOTl}s#(&sj;IQAxC<`HuK^Def zGxh{__O&b0yrz;1GEKSDAml&#f-~U%~%j zzRyjr{SS8xRNEltLnLFMw~xt8>`A1YIlYb}hx{D&wkrFL)i}~7eiZXTvX39){TD%+ z{Hy$*i*~oRM^4@oq>h13C&>E1Cc zVI6os)q?-i!2br2ey^la4vb^qVjsmk;C8_wk6`kbjrLK^p~!nGZO1^B1v!r(WB~2s z8HbZSXoK>v;6Dt!Kgs!z;}|&EN7pfsd<33f3nz~d)Qhu;cMJY$uggOk|1<{jUZNPv zfzud-<0EJ}MllblmFI#{4wNyNBJ)l{06qoHF!A4CV_?(?A^QkwT|($%a1-W*Ci~)z zItF)I@*m9@7;S@1E=9AGYV2qkH-r&8S;+zNtG(bo#ex5E;J+`VF)+>t;U|mMU>kIP zQjG1RHV=%sMe|%}#~Az$Bw*KC75_h@?Xu-xl>=M*2;QB1g!tOWkm_@qAQwLeX?%+} zD*ykBw#AWuw=poL7NX|`&bO#zv00Dx50Zw zNc__nsN-OHHil6S!We^?+DH8ud;*{G%OD~4S_@vt2GSjJM>t=CzffAzg@TB0nS?$R ztvnx0d4!<9Y#M{u*vI$4`&kbBp9|jigw20{$$@bULX4rM`S1#S=F>qM?&1x2Cj37S zdMhISqZxz#^AT2Oc~efocnG$&R^@*<+Lt2c-#7*X&qsKKcz58RVxXs@;$IyDTOYxw z7iE1w?;UhP^f7cwjtl=Z2W|zC4?t(W^zeH$=`PJEC=Wd6)#4t`8Z+UXPo^WzKkhKX z{iQiXbZ4hbJjagjsO7#g)*P@7OKY*&s70W91VK0(pbt5OZX)E>YCwMhX)ZA2{bNgniG<67>C4P)Ixv#Q!K$=@i{lL$7$Zr@qA>=m6diKKc&&{CN;z|2@!h&|whWhvwx}n(PJsoPfR8L?!snj*64L zz~7pRlDxp*nvNxTfxkT+#oufQGT?;_*wbPB%|O83tI;96x1)ojyue>0VDHuF0NxKS zDnoydf@q(}Pl5HTAaj0M%`rm;^!1yRYZfHdq^(-9K5f?q*R7pvyp-C8;Qneu%@^b$ zc=m*`9@3#!7_y+;4UHBu5WMez_EuSux-T1Ypxm8Id$R=v_a23EHpf8vZ$3cIpxYMz zlSBqc7Pt(!$$>!zNEQaU4D%s=eZPa>zbiyFA2f)5U!=H44lOB+Cf#w4UUw~RGKR|p3yiX_@ zkoI5?VxOP|IrC3+^(JA+0QrU{IS_bTwTY5}A-~X0CzS(xI-gfxcNMJ+grEx$AL?t{ z#pih0f*~2Ol7aoe{w0AwwUO8YOFa;c43I3?$$`=S8$SbQ5fjQS_X&q&z$gQ6W8G*a zNZY$-k^whe0G#8JBe27tzBgiS{2XH$IDun>^}zlij{iWE0Vh2GIY6$^o@``bC_dE1 zCr<$Tsi2-j%fJa08w`#-5uKAb2e{t~>eBF!Mh^_c_%Km=VBp7xbRYK=;GPU>*WquF z0h3PZ}$UITveS#gp{~Ta{8fXJ3cuzo>GGMX?A;yQMwZjm6!lC$3m%lUS z^TYZ48u0%da6bjKLf}uWrVC`-Z}ndC2TphyaEcG3sU=CA9#{?h`Q4Pje1VLAf6IVn zo+t!eFre0u2cHZq2L8iv_O%C;VZ>i218(*p272IxkO8VMvycNVKBT$sM22;PIL8J# zz@M-ux)Y?G-zUq0W((Y8fb4@L2LqyxAP#w=NY@WF85lS@f_o(Vui^MdD+3b#k@^EM z*8>A6M-ZtD#Hr4Ff`tEHfqzF#WWY%eKt3GnOQWnMi8MAi3FE^qU_VO2pY985((sQ~ z4@4saQRWD2eL@#K5LHc)Tvu*VcC;25Nx)WfK110rusV_`B%>8E>oik_-$OpCAr?VO;aY zvDX6?!2Ww2|4R7(%3XoSZ1H!K0k_!TWRd}=Jkh|34~u~P*9d={wL)|rXs_itox%c|?{%?bD-VR8{-1y$f9~g{!z{M|&BsPe8uR;8C z1lxiA*%JO|0Q-%Ef81q&d<4lJgyk1T86QR(8$==lk>-hF5*xVhKV1*(M@aae2Hc+# z_z%ed_LvxaL`NB*eF!%8AYp!?vkW{5>`#^OCm-Np8GlU%!n6l5$rr~oJ_MGyKZNd8 z;&(C^kK*@?O~ajw!MmD)pSX9*fV)l(oc5axL>aKJE1OT)6VVG;6J;Cm?{681ReUJ! zr6%0-O0Qw_%5Pzh`5s`;`1ASQo9k;HVe0~m*eZVkzjJDS*&Vp6dIH~%I<1KA?Z&;e zc5-lH$iNJNJ;z_UD|xaN{*lUnE>F}Cej(M8(0y`*{p|7^*h<_V^LFDpcC>9TtLv`f z_sn$Sew7~Fy-Rnw(jB~X-%5LL3%`G{wEY14XVYu!x$60Be%bBVhmc~rlT(w4Xk;Mq z@geQ|xzhsw>v2|nkDUx?a$t-HfU@p&8x=63(4 z4Z7jemiO3l-wb|Nx0PLR^b4JQ!o=x;c3}TU3;eGF_N^R$!+G3BIf$zagcu*veQ7hx zuVt^+KZ!e9EA1fUI-c}@N&9DPU&}jeSMzIZN8?8JLDMU2&+%>SSlh>}x~q)e#b);- zEj>;AzUqg(x0-c9Kih(k<3mF&iL{2?g1VB+LEQI~?Eg=IeUpYi$$*0#BvJ+l`@+h5 z`Mse%ecdM5x^bUaMaNNY|H%)SUvWFj#l3=b*QmHtlI|X+d&ud2#kplSu_r30vp4FV zW<_oL;48G4ev|Gaq&sS#uF7K>MYzk};3Gz&2jZS1u$F;3V1KCv{@(-MJ`?_KGT;;+ zM&l1S=z&#%0zPMrAd$^K-1ZT_Lymkv@(YAdsH-&=`%TrB;sm;PmSV*G(($nS8SF#c zOHKFD8DA~tL*kg;on+!PV0g?$PIj~wcmcK(ji0%e_xo#JC^s;5cYx+5*wtl4Rw#eE;s8iAWYWRE#`N}idaC0 zz1W8msSH3q=stSN4U#UPJDTMe`-vpehSE_|Azth)dK&4AOmz?_+$S2`Q5nMfa8t7tCTITo(Alb z^yk&NtsBHZ2IhKiW(Qk$$=%_xA;gDE3406t$p#kBLnfbKUfFHPD}Nm96yDW#`Ph<* zze5Hra)pqC0Tdq=IN+aa#GlK6@qT0B3y9XnCx|9TK>p(Pre}GsUJP_w?{W5A?L00U z{9J+r)e(>kEUuW$DmzO=*LZuN<)7C6pjbm zWgx`(FsmYk75J`YhuZWu_F&sT*(~3L;M_OFhr$*_x`wRF50O6@f=@_mgxl)Z=yX&K z?7*V(yCatY(h)YgAO^K0y}&++@Hf6x{70khO{5HDVeY?J_b_rUonl(C#-19swE96{ zk99s7clo`f2l`6}C^nqsy@BV9wa((r`;D9U`mwfFDCWN0I@tm@8HhYb(25x0cOWDD zV*dXY__u&?Pow_MTBA&8`2gVq$gPt<;GhTSe#beLH?Y!<1KM!*VRmh8TCJQ(AmeTI zJ_a%nZoZK0z{;vzU0$lWr=C6Po5J%)155^Lf&G6u;QwF1y;j4&pJgD+hq+%*bH7W& z-`9DRJydlI%Y6legEnKAL7Fw zfb8b~NMP^N;U5PXu&O1Yxj(CN0z1|bjH@WWwy9w$a8Ks>V-0`A2DWy=uMfYy$dR!(6w@5PI9lZ(plQFMSyjXCLveu@u^fc-@d_+JF2p8Gz^B0eOIG;fergZsOQ26J@sG0%#P&V56wGuP<=H+v9`Phi}CuK)Zpus_2A z|1%*2uY%0?)yuLFV;RV*OlB|C&*y8ZV(j*}y~A>S>H58Bstpi&fLhHS2)l3BN`9fv zA8@k;Vdw$U0h{Zd!0J$NedxW$m(17`{)v%+r*TK_aFEIW1LidUKL=XP@pqE}H+vw* zgU0t3@!{^)Hw5&&HhV+;Vn#lJX)j`oWFXQUfm3`)^+Scedv$(bdB+jhfa`!a)`A4? zax2+?Q>++!J+O$dcffxburJi`k3t4eOA@RZFyc?2RT;>J?w{wskyUmb)9`QT39!Z0 zcLjC7yl&)X3rHu}=>Ym((gU%Vfh5$6jO8_Gf*IOhu+;ZpFbFw3Q+4^1L+u~3{Hk&0xi8CslO9N*43G}kTEAMr&uziW zwM#kv{e3Qp#oEz5R&!q%1K>{h-*3WSm4SHpg=G6*YFL7C>ea?itd;3!ccD8KNu5dSD;Ai|oW_2RdyAz zIsWV6AEszNqNWEN){d-l1X^sE06nn#_*RW4s#{rBIgRfz(A61YzB}py2R#sh3^c$W z_#wzN@5LAD{Qo)HCJ^I9c-xVj6EMCHAxA*?7uMXv*LTHWkuJ!u8mq%zrw0b23`jWw ziVtbe$(Dvyf+e2Uc(!^Te85rGb*4h^TeY#1fpTDfNeKA=J8-Yj@FzL2!(Y_}k>-oD zs#4hU+G%`mwivA4ty@@bRhlLKk?H|mp2$rX#2`MLQ96pfShGm5#9Ji>u*bh2^uR%2 z|Md{?|0b|6*5Mx~8OZiy&8I#Wdo+W!9`77q$4D>m`T{jaAm+c^4&>NiM#(6)s(Pj_ zpSiVRHQ!&R)BhHA=9W1k(hJe+fnC7pfesCzbZ5%J|d!EbkcXSALA|8QtHqgFWn<#PJvFhlD+yQ9x&s(0Nq!+IxIE z%PvjR$B3}`F_M9)VccFV{UP zrZsO#&%XeDV3dJOZz|5HnZR<(#&X+F*em!av4XPeaQ@7jI^T!R7b);w2mIAMv4{_1 zBLlaFf&Ua8{&AN9=yer$xvnVGHDoKB5HFvA_8>g!zmL^)Rp?}ZYCoT?nG1hFfBt~! zGv@uwvTJd^$Q#MFQH?$7YHUcdKt2GSM=I}aq5t+!>xVd>_GZ3jAmRe86}sQ5 zrMd1zdO4^B_CE{>|GIQfeqH+Iphidh2cir(*n@c40`e7Ks9T`ht4z4k`6N%^j0!r7 zDyJ+RdzaT}aW4IxUUW9?f{NQP-*MiQnD@rk3VZQg=zd`lu>ZF(@c$w3uL3D^UCeo_ z)+tXEb$n>O2QgB=FrG3%=MYgWD8H(@O1KQX-mnt&K*3xv{Wrz!pDHn-$R7dsILg4M z!2bL&@V^AumvH<~L>Y)fd`RaKyj1_Fu8xs#rhN<@y{+_CdwDw!vc;A6X!b$)hax_- zlmjv6ty*_IunX9KAq@P#0_;E2@E?+akoF&v47}3tgb8mAc)Y2=e%8Xu`^?x=4S`fg zp!oo@J+Q)F{?6VXcpbjN86ZdBpZ+)#_8)W>XtxgkM9RRRi4U=ERX&Ej(P-B9BmGuiaquQ8L-p?Bo8v?#`o4Tuol=44+H-*fd5tyGs%FP9H{<4r17C`Ey-Y#fr>Ql z@5yJ-(;3st{8RO3mI=JATGbzjkqj&W_NRn|e?8`ZefsA>FA)BMOmbl53ySXsq73w7 zY(Qt1mVq4Tfd!SfvN^sRutu1y?LCS`ow?>881=vWIf(z?!^EF-z-*3xqGTY-+QLZk zh4F|FNf!|DH6^LGFf18}#xE>R?#24yM3AfR$NfJ={}cZI(D09^3=G5^L74Gjq;&+5 z?myJ#erT~l2mHk(P)PVoGH{y?{~;OB*OnM+Ny1q}miM6cgB~~z?0*{p{^Nju*PxJr zIK&3r7KEt>B9(zi^+1TRK|QelSp@k13D~!q@FzVW=>k(+5Mq32SzjEDEf|P0&<}eJ zLXZJJu>W=h`2PYpH`?Ma$w1h#fm2*Cz+@nv>xWvMk)2;?l^2k|3oS=*6xe?~0{njf z>}wqHkAVzCnkNdU&OGEb?6ScEMUJSEd1js199>TqpBt8CmAsL1j6>)wR)f6 zVZ;a_>wYQ!GaT5j3mbno85n@^VZvmff8xWe2=S*J@RJeYPck6M!HJwBh3<3T8Byae$w1h7qM`UuzZXr?1tI!{ z-N612QQ&_^Oz-v~J|)4}_m1XaV-Wi~@gJ1L_@;0h_aI;s2BUH&P^PM{&v# z1c3dIqrm?Uz`i?X_{UQZL=zu|a8{XZJ&6VWnok&Jd>98AC;|50i30y$0{fPj;y)w< zL0dp)Q#jcJ()Ugz`2#kw!Dqn!Yf<3;6JQ^RIsPOAk{k?}_|QQQ&>E7h4scjE(sY4* z4vF!-lMJ}|1kN(B3)r6>1^(X!PTsiTKM-Xg4s`?xl!0xC6Gng{jsGqL_6OsNza#@; z$A{|LVZW~-(|orh8-F0~GGHAWya4QnM}hyj!2YAS;~$L-4CM&)K7wQqfcvtHvXoPz zz<&g=f2UvYKiOo!DK?14AJFT8+1b$j@C_r?|FjQiW53}aPZ=19@uATVlt0Ht2Br}9 zQQ%MefTCLiB22@jNcWw&*@A&615SE?2=0;hao|Kte# z!2UmCfdAise|y4p0Le>&WMGiil6Zmr*JFVHPl0{afWSYVGB6Nh134ZvzITcX@HgPT z9du3%@TVL=0mw!Nj75Cc|5Q+iXR4HsHb``4oeS0A@1Q&@3gCN7!hIOk3gx1;BtO2l zp&WdlL-!h467tEF)|8F!vwaR^EeBOtOHR)6jqyZ-zvKf@E%<0q7HF&@O&MW;Ik7IHD8C$UZYee_cN_ eJ-;lrpNBD)DL(+8bsfxb`HVxyb^pEj^Zy3~tv%@g diff --git a/packages/commercetools/theme/static/icon.png b/packages/commercetools/theme/static/icon.png index 197c77ed2cb1cb835b2aa69f784fec6ebe1a67bb..b19a9681932b25fda20d865b43115fd7b3ddf1da 100644 GIT binary patch literal 4796 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 literal 163096 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%0AvL}BWjhIythX_1o9OusIEPsEqMcq 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 \ No newline at end of file + + + + From ce12b2c8351de1ca4d15f7bf81738c8457dbd9e9 Mon Sep 17 00:00:00 2001 From: Heitor Ramon Ribeiro Date: Wed, 13 Oct 2021 05:41:07 -0300 Subject: [PATCH 020/151] chore: updated README with new VSF brand (#6447) --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a7cc33ad76..d5c5d814df 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -![Vue Storefront](https://camo.githubusercontent.com/48c886ac0703e3a46bc0ec963e20f126337229fc/68747470733a2f2f643968687267346d6e767a6f772e636c6f756466726f6e742e6e65742f7777772e76756573746f726566726f6e742e696f2f32383062313964302d6c6f676f2d76735f3062793032633062793032633030303030302e6a7067) +
+ Vue Storefront +
+ + # Vue Storefront 2 From f921706eaf3b6ef6956ccfbdf89ce7de78392f6d Mon Sep 17 00:00:00 2001 From: byakku Date: Wed, 13 Oct 2021 10:50:48 +0200 Subject: [PATCH 021/151] ci/demos cleanup (#6305) * ci: replace two old instances with new hosted on gcp * fix: change credentials used to DEMO_CLOUD_USERNAME * add: canary ct deployment * cicd: add vsf-next-demo on GCP * fix: change github ref for vsf-next-demo deployment --- .github/workflows/deploy-storefrontcloud.yml | 22 ++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-storefrontcloud.yml b/.github/workflows/deploy-storefrontcloud.yml index a016cde061..9b17d14164 100644 --- a/.github/workflows/deploy-storefrontcloud.yml +++ b/.github/workflows/deploy-storefrontcloud.yml @@ -50,7 +50,7 @@ jobs: - name: Deploy on vsf-next-demo.storefrontcloud.io if: github.ref == 'refs/heads/release/next' run: | - if curl -s -u ${{ secrets.CLOUD_USERNAME }}:${{ secrets.CLOUD_PASSWORD }} -H 'Content-Type: application/json' -X POST -d '{"code":"vsf-next-demo","frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then + if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"vsf-next-demo","frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then echo "Instance updated" else echo "Something went wrong during the update process..." @@ -59,7 +59,25 @@ jobs: - name: Deploy on vsf-next-demo.europe-west1.gcp.storefrontcloud.io if: github.ref == 'refs/heads/test/next' run: | - if curl -s -H 'X-User-Id: ${{ secrets.DOCS_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DOCS_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"vsf-next-demo","region":"europe-west1.gcp","frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then + if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"vsf-next-demo","region":"europe-west1.gcp","frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then + echo "Instance updated" + else + echo "Something went wrong during the update process..." + exit 1 + fi + - name: Deploy on demo-ct.europe-west1.gcp.storefrontcloud.io + if: github.ref == 'refs/heads/main' + run: | + if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"demo-ct","region":"europe-west1.gcp",frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then + echo "Instance updated" + else + echo "Something went wrong during the update process..." + exit 1 + fi + - name: Deploy on canary-ct.europe-west1.gcp.storefrontcloud.io + if: github.ref == 'refs/heads/release/next' + run: | + if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"canary-ct","region":"europe-west1.gcp",frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then echo "Instance updated" else echo "Something went wrong during the update process..." From 3483e89e438d4c0f31315e46c1c5216f657c3358 Mon Sep 17 00:00:00 2001 From: daaf <44862757+dawid-ziobro@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:13:04 +0200 Subject: [PATCH 022/151] fix(os-184): fixed login modal screens behavior (#6394) --- packages/core/docs/core/changelog/6387.js | 8 +++ .../theme/components/LoginModal.vue | 64 +++++++++---------- 2 files changed, 40 insertions(+), 32 deletions(-) create mode 100644 packages/core/docs/core/changelog/6387.js diff --git a/packages/core/docs/core/changelog/6387.js b/packages/core/docs/core/changelog/6387.js new file mode 100644 index 0000000000..252ba12bd6 --- /dev/null +++ b/packages/core/docs/core/changelog/6387.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fixed login modal screens behavior', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6387', + isBreaking: false, + breakingChanges: [], + author: 'Dawid Ziobro', + linkToGitHubAccount: 'https://github.com/dawid-ziobro' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/LoginModal.vue b/packages/core/nuxt-theme-module/theme/components/LoginModal.vue index df7e05b983..20b4b97af2 100644 --- a/packages/core/nuxt-theme-module/theme/components/LoginModal.vue +++ b/packages/core/nuxt-theme-module/theme/components/LoginModal.vue @@ -14,7 +14,7 @@ /> -
+
@@ -62,18 +62,18 @@
- + {{ $t('Forgotten password?') }}

{{ $t('No account') }}

- + {{ $t('Register today') }}
-
+

{{ $t('Forgot Password') }}

@@ -104,7 +104,7 @@
-
+
{{ userEmail }} @@ -185,7 +185,7 @@
{{ $t('or') }} - + {{ $t('login in to your account') }}
@@ -225,16 +225,19 @@ export default { SfBar }, setup() { + const SCREEN_LOGIN = 'login'; + const SCREEN_REGISTER = 'register'; + const SCREEN_THANK_YOU = 'thankYouAfterForgotten'; + const SCREEN_FORGOTTEN = 'forgottenPassword'; + const { isLoginModalOpen, toggleLoginModal } = useUiState(); const form = ref({}); - const isLogin = ref(false); - const isForgotten = ref(false); - const isThankYouAfterForgotten = ref(false); const userEmail = ref(''); const createAccount = ref(false); const rememberMe = ref(false); const { register, login, loading, error: userError } = useUser(); const { request, error: forgotPasswordError, loading: forgotPasswordLoading } = useForgotPassword(); + const currentScreen = ref(SCREEN_REGISTER); const error = reactive({ login: null, @@ -247,12 +250,13 @@ export default { }; const barTitle = computed(() => { - if (isLogin.value) { - return 'Sign in'; - } else if (isForgotten.value || isThankYouAfterForgotten.value) { - return 'Reset Password'; - } else { - return 'Register'; + switch (currentScreen.value) { + case SCREEN_LOGIN: + return 'Sign in'; + case SCREEN_REGISTER: + return 'Register'; + default: + return 'Reset Password'; } }); @@ -263,15 +267,9 @@ export default { } }); - const setIsLoginValue = (value) => { - resetErrorValues(); - isLogin.value = value; - }; - - const setIsForgottenValue = (value) => { + const setCurrentScreen = (screenName) => { resetErrorValues(); - isForgotten.value = value; - isLogin.value = !value; + currentScreen.value = screenName; }; const handleForm = (fn) => async () => { @@ -279,6 +277,7 @@ export default { await fn({ user: form.value }); const hasUserErrors = userError.value.register || userError.value.login; + if (hasUserErrors) { error.login = userError.value.login?.message; error.register = userError.value.register?.message; @@ -288,7 +287,8 @@ export default { }; const closeModal = () => { - setIsForgottenValue(false); + resetErrorValues(); + setCurrentScreen(SCREEN_LOGIN); toggleLoginModal(); }; @@ -301,8 +301,7 @@ export default { await request({ email: userEmail.value }); if (!forgotPasswordError.value.request) { - isThankYouAfterForgotten.value = true; - isForgotten.value = false; + setCurrentScreen(SCREEN_THANK_YOU); } }; @@ -311,23 +310,24 @@ export default { error, userError, loading, - isLogin, createAccount, rememberMe, isLoginModalOpen, toggleLoginModal, handleLogin, handleRegister, - setIsLoginValue, - isForgotten, - setIsForgottenValue, forgotPasswordError, forgotPasswordLoading, handleForgotten, closeModal, - isThankYouAfterForgotten, userEmail, - barTitle + barTitle, + currentScreen, + setCurrentScreen, + SCREEN_LOGIN, + SCREEN_REGISTER, + SCREEN_THANK_YOU, + SCREEN_FORGOTTEN }; } }; From 5956f201b4819cec1a3df243f60666851b116f82 Mon Sep 17 00:00:00 2001 From: daaf <44862757+dawid-ziobro@users.noreply.github.com> Date: Thu, 14 Oct 2021 13:04:35 +0200 Subject: [PATCH 023/151] fix(6364): removed more action button that does nothing (#6381) --- packages/core/docs/core/changelog/6364.js | 8 ++++++++ .../nuxt-theme-module/theme/components/CartSidebar.vue | 2 ++ 2 files changed, 10 insertions(+) create mode 100644 packages/core/docs/core/changelog/6364.js diff --git a/packages/core/docs/core/changelog/6364.js b/packages/core/docs/core/changelog/6364.js new file mode 100644 index 0000000000..0d59db64f6 --- /dev/null +++ b/packages/core/docs/core/changelog/6364.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Removed "more actions" button that does nothing', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6364', + isBreaking: false, + breakingChanges: [], + author: 'Dawid Ziobro', + linkToGitHubAccount: 'https://github.com/dawid-ziobro' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue index 327d667ebe..d51ff206d6 100644 --- a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue +++ b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue @@ -51,6 +51,8 @@ />
+ +
From 4e3a9ea9b12781d9b2bff4a4fd68fe2ccff88dc5 Mon Sep 17 00:00:00 2001 From: Heitor Ramon Ribeiro Date: Thu, 14 Oct 2021 10:12:03 -0300 Subject: [PATCH 024/151] chore: update headless architecture with new Brand (#6454) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index d5c5d814df..2b5769b9e8 100644 --- a/README.md +++ b/README.md @@ -53,8 +53,7 @@ Vue Storefront solves a set of key business challenges from the world of the sho ## The headless architecture -![Vue Storefront - Headless Architecture](https://uploads-ssl.webflow.com/5e7cf661c23ac9df156d9c3d/5eff4a2497a1546ca057dcca_github_headless_architecture.png) - +![Vue Storefront - Headless Architecture](https://user-images.githubusercontent.com/1626923/137323687-c63cd6fa-a018-4491-bea7-1802649499ca.jpg) ## Contributing From a22ccbb665e983a5d589df05b2bb64f76be4e449 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 15 Oct 2021 11:55:25 +0200 Subject: [PATCH 025/151] chore(commercetools): use API client from new commercetools project (#6459) --- .../commercetools/theme/middleware.config.js | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/commercetools/theme/middleware.config.js b/packages/commercetools/theme/middleware.config.js index 74d898826b..db479bfbcf 100644 --- a/packages/commercetools/theme/middleware.config.js +++ b/packages/commercetools/theme/middleware.config.js @@ -5,28 +5,28 @@ module.exports = { location: '@vue-storefront/commercetools-api/server', configuration: { api: { - uri: 'https://api.commercetools.com/vsf-ct-dev/graphql', + uri: 'https://api.commercetools.com/vsf-generic-ent-demo/graphql', authHost: 'https://auth.sphere.io', - projectKey: 'vsf-ct-dev', - clientId: 'FGUpRp88xDpaDEDpVfbfs0Q-', - clientSecret: 'DvQvj3ccl-qwqS6qFnO-n0PUmjb8ok3G', + projectKey: 'vsf-generic-ent-demo', + clientId: 'w3HqE0p55rhxCWinIjFiq26L', + clientSecret: '8ThyrROTeD73Uc9rzfiwSgNpVIku8bOE', scopes: [ - 'create_anonymous_token:vsf-ct-dev', - 'manage_my_profile:vsf-ct-dev', - 'view_categories:vsf-ct-dev', - 'manage_my_payments:vsf-ct-dev', - 'manage_my_orders:vsf-ct-dev', - 'manage_my_shopping_lists:vsf-ct-dev', - 'view_published_products:vsf-ct-dev', - 'view_stores:vsf-ct-dev' + 'create_anonymous_token:vsf-generic-ent-demo', + 'view_categories:vsf-generic-ent-demo', + 'view_published_products:vsf-generic-ent-demo', + 'view_stores:vsf-generic-ent-demo', + 'manage_my_profile:vsf-generic-ent-demo', + 'manage_my_orders:vsf-generic-ent-demo', + 'manage_my_payments:vsf-generic-ent-demo', + 'manage_my_shopping_lists:vsf-generic-ent-demo' ] }, serverApi: { - clientId: 'XPVdGFHqZwAaR2rQQEu0cXU-', - clientSecret: 'bpDi7aApbmeQjSnCJT_KL-YymzEjxrUq', + clientId: 'y-ia9E9gne-uybwVa9Lqzqfn', + clientSecret: 'sX5T3-5zF3ieIoVyvtDDnl3cjxTXNTDs', scopes: [ - 'manage_customers:vsf-ct-dev', - 'manage_products:vsf-ct-dev' + 'manage_customers:vsf-generic-ent-demo', + 'manage_products:vsf-generic-ent-demo' ] }, currency: 'USD', From 9de1425fa8bc41aae0724ce673da2e83f0c19e77 Mon Sep 17 00:00:00 2001 From: byakku Date: Fri, 15 Oct 2021 16:14:59 +0200 Subject: [PATCH 026/151] Fix syntax in JSON (#6460) --- .github/workflows/deploy-storefrontcloud.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-storefrontcloud.yml b/.github/workflows/deploy-storefrontcloud.yml index 9b17d14164..1b1b5290e4 100644 --- a/.github/workflows/deploy-storefrontcloud.yml +++ b/.github/workflows/deploy-storefrontcloud.yml @@ -68,7 +68,7 @@ jobs: - name: Deploy on demo-ct.europe-west1.gcp.storefrontcloud.io if: github.ref == 'refs/heads/main' run: | - if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"demo-ct","region":"europe-west1.gcp",frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then + if curl -s -H 'X-User-Id: ${{ secrets.DEMO_CLOUD_USERNAME }}' -H 'X-Api-Key: ${{ secrets.DEMO_CLOUD_PASSWORD }}' -H 'Content-Type: application/json' -X POST -d '{"code":"demo-ct","region":"europe-west1.gcp","frontContainerVersion":"${{ github.sha }}"}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then echo "Instance updated" else echo "Something went wrong during the update process..." From 52ae316cd90ec3e53e0bf654702ad141983eed68 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 18 Oct 2021 10:40:23 +0200 Subject: [PATCH 027/151] chore(commercetools): update `authHost` in `middleware.config.js` (#6461) --- packages/commercetools/theme/middleware.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/commercetools/theme/middleware.config.js b/packages/commercetools/theme/middleware.config.js index db479bfbcf..ac0d8ffae3 100644 --- a/packages/commercetools/theme/middleware.config.js +++ b/packages/commercetools/theme/middleware.config.js @@ -6,7 +6,7 @@ module.exports = { configuration: { api: { uri: 'https://api.commercetools.com/vsf-generic-ent-demo/graphql', - authHost: 'https://auth.sphere.io', + authHost: 'https://auth.europe-west1.gcp.commercetools.com', projectKey: 'vsf-generic-ent-demo', clientId: 'w3HqE0p55rhxCWinIjFiq26L', clientSecret: '8ThyrROTeD73Uc9rzfiwSgNpVIku8bOE', From 6e6f842c151e3121279f878d1536f5c2a4911a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20J=C4=99drasik?= Date: Tue, 19 Oct 2021 08:14:00 +0200 Subject: [PATCH 028/151] fix: clicking Add To Wishlist icon closes search modal (#6456) * fix: clicking Add To Wishlist icon closes search modal * chore: add changelog * fix: missing adding/removing a product to/from the wishlist in SearchRes * fix: class name instead tag name --- .../theme/components/AppHeader.vue | 4 +++- packages/core/docs/core/changelog/6456.js | 8 ++++++++ .../theme/components/AppHeader.vue | 4 +++- .../theme/components/SearchResults.vue | 18 ++++++++++++++++-- 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 packages/core/docs/core/changelog/6456.js diff --git a/packages/commercetools/theme/components/AppHeader.vue b/packages/commercetools/theme/components/AppHeader.vue index cd5dc3ae7e..1b91f9d60b 100644 --- a/packages/commercetools/theme/components/AppHeader.vue +++ b/packages/commercetools/theme/components/AppHeader.vue @@ -170,7 +170,9 @@ export default { }; const closeSearch = () => { - if (!isSearchOpen.value) return; + const wishlistClassName = 'sf-product-card__wishlist-icon'; + const isWishlistIconClicked = event.path.find(p => wishlistClassName.search(p.className) > 0); + if (isWishlistIconClicked || !isSearchOpen.value) return; term.value = ''; isSearchOpen.value = false; diff --git a/packages/core/docs/core/changelog/6456.js b/packages/core/docs/core/changelog/6456.js new file mode 100644 index 0000000000..cf78603130 --- /dev/null +++ b/packages/core/docs/core/changelog/6456.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fixed closes search modal after clicking Add To Wishlist icon.', + link: 'https://github.com/vuestorefront/vue-storefront/pull/6456', + isBreaking: false, + breakingChanges: [], + author: 'Łukasz Jędrasik', + linkToGitHubAccount: 'https://github.com/lukaszjedrasik' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue b/packages/core/nuxt-theme-module/theme/components/AppHeader.vue index 9b39cd79ea..2f6ca9a89b 100644 --- a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue +++ b/packages/core/nuxt-theme-module/theme/components/AppHeader.vue @@ -165,7 +165,9 @@ export default { }; const closeSearch = () => { - if (!isSearchOpen.value) return; + const wishlistClassName = 'sf-product-card__wishlist-icon'; + const isWishlistIconClicked = event.path.find(p => wishlistClassName.search(p.className) > 0); + if (isWishlistIconClicked || !isSearchOpen.value) return; term.value = ''; isSearchOpen.value = false; diff --git a/packages/core/nuxt-theme-module/theme/components/SearchResults.vue b/packages/core/nuxt-theme-module/theme/components/SearchResults.vue index d7a1587d02..d13cf01bd8 100644 --- a/packages/core/nuxt-theme-module/theme/components/SearchResults.vue +++ b/packages/core/nuxt-theme-module/theme/components/SearchResults.vue @@ -46,6 +46,8 @@ :alt="productGetters.getName(product)" :title="productGetters.getName(product)" :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" + :is-in-wishlist="isInWishlist({ product })" + @click:wishlist="!isInWishlist({ product }) ? addItemToWishlist({ product }) : removeProductFromWishlist(product)" />
@@ -61,6 +63,8 @@ :alt="productGetters.getName(product)" :title="productGetters.getName(product)" :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" + :is-in-wishlist="isInWishlist({ product })" + @click:wishlist="!isInWishlist({ product }) ? addItemToWishlist({ product }) : removeProductFromWishlist(product)" />
@@ -95,7 +99,7 @@ import { SfImage } from '@storefront-ui/vue'; import { ref, watch, computed } from '@vue/composition-api'; -import { productGetters } from '<%= options.generate.replace.composables %>'; +import { useWishlist, wishlistGetters, productGetters } from '<%= options.generate.replace.composables %>'; export default { name: 'SearchResults', @@ -126,6 +130,7 @@ export default { const isSearchOpen = ref(props.visible); const products = computed(() => props.result?.products); const categories = computed(() => props.result?.categories); + const { addItem: addItemToWishlist, isInWishlist, removeItem: removeItemFromWishlist, wishlist } = useWishlist(); watch(() => props.visible, (newVal) => { isSearchOpen.value = newVal; @@ -137,11 +142,20 @@ export default { } }); + const removeProductFromWishlist = (productItem) => { + const productsInWhishlist = computed(() => wishlistGetters.getItems(wishlist.value)); + const product = productsInWhishlist.value.find(wishlistProduct => wishlistProduct.variant.sku === productItem.sku); + removeItemFromWishlist({ product }); + }; + return { isSearchOpen, productGetters, products, - categories + categories, + addItemToWishlist, + isInWishlist, + removeProductFromWishlist }; } }; From 7c6b06f485cc0d4d91bb96da5886ad2625df2f5e Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Thu, 21 Oct 2021 15:27:07 +0200 Subject: [PATCH 029/151] ssr middleware url (#6472) --- packages/core/core/src/utils/nuxt/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/core/src/utils/nuxt/index.ts b/packages/core/core/src/utils/nuxt/index.ts index d335108037..c9acd1f40b 100644 --- a/packages/core/core/src/utils/nuxt/index.ts +++ b/packages/core/core/src/utils/nuxt/index.ts @@ -10,10 +10,10 @@ export const integrationPlugin = (pluginFn: NuxtPlugin) => (nuxtCtx: NuxtContext const configure = (tag, configuration) => { const injectInContext = createAddIntegrationToCtx({ tag, nuxtCtx, inject }); const config = getIntegrationConfig(nuxtCtx, configuration); - const { middlewareUrl } = (nuxtCtx as any).$config; + const { middlewareUrl, ssrMiddlewareUrl } = (nuxtCtx as any).$config; if (middlewareUrl) { - config.axios.baseURL = middlewareUrl; + config.axios.baseURL = process.server ? ssrMiddlewareUrl || middlewareUrl : middlewareUrl; } const client = axios.create(config.axios); From 846a21c21e9832cc71887320f3948f6ed9e2ec1b Mon Sep 17 00:00:00 2001 From: lsliwaradioluz <39009379+lsliwaradioluz@users.noreply.github.com> Date: Fri, 22 Oct 2021 11:38:17 +0200 Subject: [PATCH 030/151] refactor(en-477): reduce payload size for addToCart (#6475) * Reduce payload size on PDP * Reduce payload size on PLP * Reduce payload size in update quantity in cart sidebar * Reduce payload size in remove from cart in cart sidebar * Add changelog --- packages/commercetools/theme/pages/Product.vue | 9 ++++++++- packages/core/docs/core/changelog/6475.js | 8 ++++++++ .../theme/components/CartSidebar.vue | 4 ++-- .../nuxt-theme-module/theme/pages/Category.vue | 14 +++++++++++--- 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 packages/core/docs/core/changelog/6475.js diff --git a/packages/commercetools/theme/pages/Product.vue b/packages/commercetools/theme/pages/Product.vue index 94dd80d79f..f719c5fbf8 100644 --- a/packages/commercetools/theme/pages/Product.vue +++ b/packages/commercetools/theme/pages/Product.vue @@ -261,7 +261,14 @@ export default { }); const addToCart = () => { - addItem({ product: product.value, quantity: parseInt(qty.value), customQuery: selectedChannel.value }); + addItem({ + product: { + id: product.value.id, + sku: product.value.sku + }, + quantity: parseInt(qty.value), + customQuery: selectedChannel.value + }); }; // TODO: Breadcrumbs are temporary disabled because productGetters return undefined. We have a mocks in data diff --git a/packages/core/docs/core/changelog/6475.js b/packages/core/docs/core/changelog/6475.js new file mode 100644 index 0000000000..badb7cd0f7 --- /dev/null +++ b/packages/core/docs/core/changelog/6475.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Reduced cart operations payload size', + link: 'https://github.com/vuestorefront/vue-storefront/pull/6475', + isBreaking: false, + breakingChanges: [], + author: 'Łukasz Śliwa', + linkToGitHubAccount: 'https://github.com/lsliwaradioluz' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue index d51ff206d6..c7d151ac57 100644 --- a/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue +++ b/packages/core/nuxt-theme-module/theme/components/CartSidebar.vue @@ -28,7 +28,7 @@ :regular-price="$n(cartGetters.getItemPrice(product).regular, 'currency')" :special-price="cartGetters.getItemPrice(product).special && $n(cartGetters.getItemPrice(product).special, 'currency')" :stock="99999" - @click:remove="removeItem({ product })" + @click:remove="removeItem({ product: { id: product.id } })" class="collected-product" > diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index 623f89696c..430d2116aa 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -101,7 +101,7 @@ :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" class="products__product-card" @click:wishlist="!isInWishlist({ product }) ? addItemToWishlist({ product }) : removeItemFromWishlist({ product })" - @click:add-to-cart="addItemToCart({ product, quantity: 1 })" + @click:add-to-cart="addToCart({ product, quantity: 1 })" /> diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index 430d2116aa..04cb0a6931 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -96,11 +96,11 @@ :max-rating="5" :score-rating="productGetters.getAverageRating(product)" :show-add-to-cart-button="true" - :isOnWishlist="isInWishlist({ product })" - :isAddedToCart="isInCart({ product })" + :is-in-wishlist="isInWishlist({ product })" + :is-added-to-cart="isInCart({ product })" :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" class="products__product-card" - @click:wishlist="!isInWishlist({ product }) ? addItemToWishlist({ product }) : removeItemFromWishlist({ product })" + @click:wishlist="!isInWishlist({ product }) ? addItemToWishlist({ product }) : removeProductFromWishlist(product)" @click:add-to-cart="addToCart({ product, quantity: 1 })" /> @@ -114,6 +114,7 @@ @@ -106,9 +108,8 @@ +``` + +After: + +```vue{3,10-11,15,20} + +``` + +## Prevent generating cookies during Server-Side Rendering + +We changed the internationalization to prevent the generation of currency, locale, and country cookies during Server-Side Rendering. These changes will allow for better caching of the responses. Internationalization cookies are now generated only in the browser. + +Follow the steps below to upgrade your existing projects: + +1. Disable automatic detection of the browser language in the `i18n` configuration. + + ```javascript + //nuxt.config.js + export default { + i18n: { + detectBrowserLanguage: false + } + }; + ``` +2. Change the order of `buildModules` so that the integration-specific module is before the `@vue-storefront/nuxt` module: + + ```javascript + //nuxt.config.js + export default { + buildModules: [ + // Integration-specific module must be above the `@vue-storefront/nuxt` module + ['@vue-storefront/__INTEGRATION__/nuxt', { + // Options + }], + ['@vue-storefront/nuxt', { + // Options + }], + ] + }; + ``` + +3. Update the Vue components used to switch locales to use the `nuxt-link` component instead of the `a` tag. One such example is the `components/StoreLocaleSelector.vue` file. + + ```html + + ``` + +## Other changes + +Below is the list of the template files that we updated since the last release. You can generate a new project using our CLI and compare the files listed below with your existing project to see if they need updating. + +- `components/AppHeader.vue`, +- `components/BottomNavigation.vue`, +- `components/CartSidebar.vue`, +- `components/CategoryPageHeader.vue`, +- `components/FiltersSidebar.vue`, +- `components/LocaleSelector.vue`, +- `components/LoginModal.vue`, +- `components/RelatedProducts.vue`, +- `components/SearchResults.vue`, +- `components/WishlistSidebar.vue`, +- `composables/useUiState.ts`, +- `lang/de.js`, +- `lang/en.js`, +- `layouts/blank.vue`, +- `layouts/default.vue`, +- `layouts/error.vue`, +- `pages/Category.vue`, +- `pages/Checkout.vue`, +- `pages/Checkout/Billing.vue`, +- `pages/Checkout/Payment.vue`, +- `pages/Checkout/Shipping.vue`, +- `pages/Home.vue`, +- `pages/MyAccount.vue`, +- `pages/MyAccount/LoyaltyCard.vue` (deleted), +- `pages/MyAccount/MyReviews.vue` (deleted), +- `pages/Product.vue`, +- `pages/ResetPassword.vue`. diff --git a/packages/core/docs/migrate/index.md b/packages/core/docs/migrate/index.md index 506d1c9b7b..12468f0cfd 100644 --- a/packages/core/docs/migrate/index.md +++ b/packages/core/docs/migrate/index.md @@ -1,5 +1,8 @@ # Migration guides +## 2.5.0 +- [Overview](./2.5.0/overview.md) + ## 2.4.0 - [Overview](./2.4.0/overview.md) diff --git a/packages/core/docs/package.json b/packages/core/docs/package.json index 3df03b5bbf..c74d7dca4a 100644 --- a/packages/core/docs/package.json +++ b/packages/core/docs/package.json @@ -6,7 +6,7 @@ "license": "MIT", "scripts": { "dev": "vuepress dev", - "build": "yarn build:core && yarn build:ct && NODE_OPTIONS=--max_old_space_size=4096 vuepress build", + "build": "yarn build:core && yarn build:ct && NODE_OPTIONS=--max_old_space_size=8192 vuepress build", "core-cache-ref": "cd ../cache && api-extractor run --local", "core-core-ref": "cd ../core && api-extractor run --local", "core-middleware-ref": "cd ../middleware && api-extractor run --local", diff --git a/packages/core/middleware/api-extractor.json b/packages/core/middleware/api-extractor.json index f12f30fd57..14795bf4ab 100644 --- a/packages/core/middleware/api-extractor.json +++ b/packages/core/middleware/api-extractor.json @@ -1,6 +1,6 @@ { "extends": "../../api-extractor.base.json", - "mainEntryPointFilePath": "./lib/index.d.ts", + "mainEntryPointFilePath": "./lib/src/index.d.ts", "dtsRollup": { "untrimmedFilePath": "./lib/.d.ts" }, diff --git a/packages/core/middleware/package.json b/packages/core/middleware/package.json index 4f2d4119d2..8aefce480c 100644 --- a/packages/core/middleware/package.json +++ b/packages/core/middleware/package.json @@ -4,7 +4,7 @@ "description": "", "main": "lib/index.cjs.js", "module": "lib/index.es.js", - "types": "lib/index.d.ts", + "types": "lib/src/index.d.ts", "scripts": { "build": "rimraf lib && rollup -c", "test": "jest", diff --git a/packages/core/nuxt-module/lib/module.js b/packages/core/nuxt-module/lib/module.js index 4bdbad5ab9..bdb0989e8d 100644 --- a/packages/core/nuxt-module/lib/module.js +++ b/packages/core/nuxt-module/lib/module.js @@ -11,7 +11,7 @@ const rawSourcesModule = require('./modules/raw-sources-loader'); module.exports = function VueStorefrontNuxtModule (moduleOptions) { const defaultOptions = { coreDevelopment: false, - performance : { + performance: { httpPush: true, purgeCSS: { enabled: false, @@ -76,10 +76,6 @@ module.exports = function VueStorefrontNuxtModule (moduleOptions) { }); log.success('Installed Internationalization Cookies plugin'); - // Composition API plugin - this.addModule('@nuxtjs/composition-api'); - log.success('Installed nuxt Composition API Module'); - // StorefrontUI module if (fs.existsSync(resolveDependency('@storefront-ui/vue'))) { storefrontUiModule.call(this, options); @@ -92,6 +88,6 @@ module.exports = function VueStorefrontNuxtModule (moduleOptions) { // Raw sources loader rawSourcesModule.call(this, options); -} +}; -module.exports.meta = require('../package.json') +module.exports.meta = require('../package.json'); diff --git a/packages/core/nuxt-module/lib/plugins/composition-api.js b/packages/core/nuxt-module/lib/plugins/composition-api.js deleted file mode 100644 index ca35865e01..0000000000 --- a/packages/core/nuxt-module/lib/plugins/composition-api.js +++ /dev/null @@ -1,4 +0,0 @@ -import Vue from 'vue'; -import VueCompositionApi from '@vue/composition-api'; - -Vue.use(VueCompositionApi); diff --git a/packages/core/nuxt-module/lib/plugins/context.js b/packages/core/nuxt-module/lib/plugins/context.js index d61aab14b5..824f949516 100644 --- a/packages/core/nuxt-module/lib/plugins/context.js +++ b/packages/core/nuxt-module/lib/plugins/context.js @@ -1,5 +1,5 @@ -import { configureContext } from '@vue-storefront/core' +import { configureContext } from '@vue-storefront/core'; import { useContext as useBaseContext } from '@nuxtjs/composition-api'; const contextPlugin = (ctx, inject) => { @@ -8,11 +8,11 @@ const contextPlugin = (ctx, inject) => { const useVSFContext = () => { const { $vsf, ...context } = useBaseContext(); - return { $vsf, ...context, ...$vsf } - } + return { $vsf, ...context, ...$vsf }; + }; configureContext({ useVSFContext }); - inject('sharedRefsMap', sharedMap) + inject('sharedRefsMap', sharedMap); }; export default contextPlugin; diff --git a/packages/core/nuxt-module/lib/plugins/i18n-cookies.js b/packages/core/nuxt-module/lib/plugins/i18n-cookies.js index c7ecc2f993..10e70cf73a 100644 --- a/packages/core/nuxt-module/lib/plugins/i18n-cookies.js +++ b/packages/core/nuxt-module/lib/plugins/i18n-cookies.js @@ -1,39 +1,90 @@ -const { VSF_CURRENCY_COOKIE, VSF_COUNTRY_COOKIE } = require('@vue-storefront/core'); +import { i18nRedirectsUtil, VSF_COUNTRY_COOKIE, VSF_CURRENCY_COOKIE, VSF_LOCALE_COOKIE } from '@vue-storefront/core'; -const i18nCookiesPlugin = ({ $cookies }) => { - const i18n = <%= serialize(options) %>; +const i18nCookiesPlugin = ({ $cookies, i18n, app, redirect }) => { + const i18nOptions = <%= serialize(options) %>; + const isServer = typeof window === 'undefined'; + const navigator = isServer ? undefined : window.navigator; + const acceptedLanguage = app.context.req?.headers?.['accept-language'] || navigator?.languages || ''; + const isRouteValid = !!app.context.route.name; + const cookieNames = { + currency: i18nOptions.cookies?.currencyCookieName || VSF_CURRENCY_COOKIE, + country: i18nOptions.cookies?.countryCookieName || VSF_COUNTRY_COOKIE, + locale: i18nOptions.cookies?.localeCookieName || VSF_LOCALE_COOKIE + } + const cookieLocale = $cookies.get(cookieNames.locale); + const cookieCurrency = $cookies.get(cookieNames.currency); + + const getCurrencyByLocale = (locale) => + i18n.numberFormats?.[locale]?.currency?.currency + || i18nOptions.currency + || (i18nOptions.currencies.length && i18nOptions.currencies[0].name); + + const utils = i18nRedirectsUtil({ + path: app.context.route.path, + defaultLocale: i18nOptions.defaultLocale, + availableLocales: i18nOptions.locales.map((item) => item.code), + acceptedLanguages: isServer ? acceptedLanguage.split(',').map((item) => item.split(';')[0]) : acceptedLanguage, + cookieLocale + }); + + const targetLocale = utils.getTargetLocale(); + const redirectPath = utils.getRedirectPath(); + + if (!isRouteValid) { + app.i18n.setLocale(targetLocale); + } + if (isServer) { + app.i18n.cookieValues = { + [cookieNames.locale]: targetLocale, + [cookieNames.currency]: getCurrencyByLocale(targetLocale) + }; + + if (redirectPath) { + redirect(redirectPath); + } + + return; + } + const cookieOptions = { + path: '/', + sameSite: 'lax', + expires: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) // Year from now + }; const settings = { - defaultLocale: i18n.defaultLocale || (i18n.locales.length && i18n.locales[0].code), - currency: i18n.currency || (i18n.currencies.length && i18n.currencies[0].name), - country: i18n.country || (i18n.countries.length && i18n.countries[0].name) + locale: targetLocale, + currency: getCurrencyByLocale(targetLocale), + country: i18nOptions.country || (i18nOptions.countries.length && i18nOptions.countries[0].name) }; const missingFields = Object .entries(settings) .reduce((carry, [name, value]) => { - !value && carry.push(name); - - return carry; + return [ + ...carry, + ...(!value ? [name] : []) + ] }, []); if (missingFields.length) { - throw new Error(`Following fields are missing in the i18n configuration: ${ missingFields.join(', ') }`); + throw new Error(`Following fields are missing in the i18n configuration: ${missingFields.join(', ')}`); } - const cookieOptions = { - path: '/', - sameSite: 'lax', - expires: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) // Year from now - }; + if (cookieLocale !== settings.locale) { + $cookies.set(cookieNames.locale, settings.locale, cookieOptions); + } - const cookieNames = { - currency: i18n.cookies?.currencyCookieName || VSF_CURRENCY_COOKIE, - country: i18n.cookies?.countryCookieName || VSF_COUNTRY_COOKIE + if (cookieCurrency !== settings.currency) { + $cookies.set(cookieNames.currency, settings.currency, cookieOptions); } - !$cookies.get(cookieNames.currency) && $cookies.set(cookieNames.currency, settings.currency, cookieOptions); !$cookies.get(cookieNames.country) && $cookies.set(cookieNames.country, settings.country, cookieOptions); -}; + + i18n.onBeforeLanguageSwitch = (oldLocale, newLocale, isInitialSetup, context) => { + $cookies.set(cookieNames.locale, newLocale, cookieOptions); + $cookies.set(cookieNames.currency, getCurrencyByLocale(newLocale), cookieOptions); + window.location.href = context.route.fullPath; + } +} export default i18nCookiesPlugin; diff --git a/packages/core/nuxt-module/lib/plugins/ssr.js b/packages/core/nuxt-module/lib/plugins/ssr.js index 889f0e9311..b47c940d20 100644 --- a/packages/core/nuxt-module/lib/plugins/ssr.js +++ b/packages/core/nuxt-module/lib/plugins/ssr.js @@ -1,16 +1,16 @@ -import { configureSSR } from '@vue-storefront/core' +import { configureSSR } from '@vue-storefront/core'; import { ssrRef, getCurrentInstance, onServerPrefetch } from '@nuxtjs/composition-api'; const hasRouteChanged = (ctx) => { - const { from } = ctx.$router.app.context; - const { current } = ctx.$router.history + const { from } = ctx.proxy.$router.app.context; + const { current } = ctx.proxy.$router.history; if (!from) { - return false + return false; } - return from.fullPath !== current.fullPath -} + return from.fullPath !== current.fullPath; +}; const ssrPlugin = () => { configureSSR({ diff --git a/packages/core/nuxt-module/package.json b/packages/core/nuxt-module/package.json index 122d89fefb..b5e21e243d 100644 --- a/packages/core/nuxt-module/package.json +++ b/packages/core/nuxt-module/package.json @@ -10,8 +10,7 @@ "license": "MIT", "dependencies": { "@nuxt/typescript-build": "^2.0.0", - "@vue/composition-api": "1.0.0-beta.21", - "@nuxtjs/composition-api": "0.17.0", + "@nuxtjs/composition-api": "^0.29.3", "@nuxtjs/style-resources": "^1.0.0", "chalk": "^2.4.2", "chokidar": "^3.3.1", @@ -20,7 +19,7 @@ "nuxt-purgecss": "^1.0.0" }, "devDependencies": { - "@nuxt/types": "^0.7.9" + "@nuxt/types": "^2.15.8" }, "publishConfig": { "access": "public" diff --git a/packages/core/nuxt-theme-module/package.json b/packages/core/nuxt-theme-module/package.json index 2d7dbd6547..e17d3b797a 100644 --- a/packages/core/nuxt-theme-module/package.json +++ b/packages/core/nuxt-theme-module/package.json @@ -8,8 +8,16 @@ }, "author": "Vue Storefront", "license": "MIT", + "publishConfig": { + "access": "public" + }, + "dependencies": { + "ejs": "^3.0.2", + "lodash.debounce": "^4.0.8", + "lodash.merge": "^4.6.2", + "vue-lazy-hydration": "^2.0.0-beta.4" + }, "devDependencies": { - "@vue/composition-api": "1.0.0-beta.21", "chalk": "^2.4.2", "chokidar": "^3.3.1", "consola": "^2.10.1", @@ -17,13 +25,7 @@ "ts-loader": "^8.0.3", "vue": "^2.6.11" }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "ejs": "^3.0.2", - "lodash.merge": "^4.6.2", - "lodash.debounce": "^4.0.8", - "vue-lazy-hydration": "^2.0.0-beta.4" + "peerDependencies": { + "@nuxtjs/composition-api": "^0.29.3" } } diff --git a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue b/packages/core/nuxt-theme-module/theme/components/AppHeader.vue index 2f6ca9a89b..c5f1715e6b 100644 --- a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue +++ b/packages/core/nuxt-theme-module/theme/components/AppHeader.vue @@ -107,7 +107,7 @@ import { SfHeader, SfImage, SfIcon, SfButton, SfBadge, SfSearchBar, SfOverlay } from '@storefront-ui/vue'; import { useUiState } from '~/composables'; import { useCart, useUser, cartGetters } from '<%= options.generate.replace.composables %>'; -import { computed, ref, onBeforeUnmount, watch } from '@vue/composition-api'; +import { computed, ref, watch, onBeforeUnmount, useRouter } from '@nuxtjs/composition-api'; import { useUiHelpers } from '~/composables'; import LocaleSelector from './LocaleSelector'; import SearchResults from '~/components/SearchResults'; @@ -135,9 +135,10 @@ export default { }, directives: { clickOutside }, setup(props, { root }) { + const router = useRouter(); const { toggleCartSidebar, toggleWishlistSidebar, toggleLoginModal, isMobileMenuOpen } = useUiState(); const { setTermForUrl, getFacetsFromURL } = useUiHelpers(); - const { isAuthenticated, load: loadUser } = useUser(); + const { isAuthenticated } = useUser(); const { cart } = useCart(); const term = ref(getFacetsFromURL().phrase); const isSearchOpen = ref(false); @@ -152,13 +153,11 @@ export default { const accountIcon = computed(() => isAuthenticated.value ? 'profile_fill' : 'profile'); - loadUser(); - // TODO: https://github.com/DivanteLtd/vue-storefront/issues/4927 const handleAccountClick = async () => { if (isAuthenticated.value) { const localeAccountPath = root.localePath({ name: 'my-account' }); - return root.$router.push(localeAccountPath); + return router.push(localeAccountPath); } toggleLoginModal(); diff --git a/packages/core/nuxt-theme-module/theme/components/BottomNavigation.vue b/packages/core/nuxt-theme-module/theme/components/BottomNavigation.vue index f89d98f031..953e38f68e 100644 --- a/packages/core/nuxt-theme-module/theme/components/BottomNavigation.vue +++ b/packages/core/nuxt-theme-module/theme/components/BottomNavigation.vue @@ -1,11 +1,11 @@ diff --git a/packages/core/nuxt-theme-module/theme/layouts/default.vue b/packages/core/nuxt-theme-module/theme/layouts/default.vue index 43583c0a50..e19a264f15 100644 --- a/packages/core/nuxt-theme-module/theme/layouts/default.vue +++ b/packages/core/nuxt-theme-module/theme/layouts/default.vue @@ -3,16 +3,13 @@ - - - + +
- + - - - + @@ -34,6 +31,9 @@ import WishlistSidebar from '~/components/WishlistSidebar.vue'; import LoginModal from '~/components/LoginModal.vue'; import LazyHydrate from 'vue-lazy-hydration'; import Notification from '~/components/Notification'; +import { onSSR } from '@vue-storefront/core'; +import { useRoute } from '@nuxtjs/composition-api'; +import { useCart, useStore, useUser, useWishlist } from '<%= options.generate.replace.composables %>'; export default { name: 'DefaultLayout', @@ -48,6 +48,27 @@ export default { WishlistSidebar, LoginModal, Notification + }, + + setup() { + const route = useRoute(); + const { load: loadStores } = useStore(); + const { load: loadUser } = useUser(); + const { load: loadCart } = useCart(); + const { load: loadWishlist } = useWishlist(); + + onSSR(async () => { + await Promise.all([ + loadStores(), + loadUser(), + loadCart(), + loadWishlist() + ]); + }); + + return { + route + }; } }; diff --git a/packages/core/nuxt-theme-module/theme/layouts/error.vue b/packages/core/nuxt-theme-module/theme/layouts/error.vue index ba7b7d9fdf..b4dce53805 100644 --- a/packages/core/nuxt-theme-module/theme/layouts/error.vue +++ b/packages/core/nuxt-theme-module/theme/layouts/error.vue @@ -15,20 +15,30 @@ Return home - + Back
diff --git a/packages/core/docs/.vuepress/config.js b/packages/core/docs/.vuepress/config.js index 8c231edb38..d592d8fa4c 100644 --- a/packages/core/docs/.vuepress/config.js +++ b/packages/core/docs/.vuepress/config.js @@ -183,7 +183,9 @@ module.exports = { title: 'Getting started', collapsable: false, children: [ - ['/getting-started/key-concepts', 'Key concepts'], + ['/getting-started/introduction', 'Introduction'], + ['/getting-started/project-structure', 'Project structure'], + ['/getting-started/layouts-and-routing', 'Layouts and Routing'], ['/getting-started/theme', 'Theme'], ['/getting-started/configuration', 'Configuration'], ['/getting-started/internationalization', 'Internationalization'], diff --git a/packages/core/docs/.vuepress/styles/index.styl b/packages/core/docs/.vuepress/styles/index.styl index e3076a4aea..4d9a4bee79 100644 --- a/packages/core/docs/.vuepress/styles/index.styl +++ b/packages/core/docs/.vuepress/styles/index.styl @@ -1,4 +1,3 @@ - .site-name { display: none !important; } @@ -31,3 +30,69 @@ a code { margin: 20pt auto; box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2); } + +aside.sidebar a.sidebar-link.active { + font-weight: inherit; +} + +.theme-default-content:not(.custom) a { + display: inline-flex; + color: inherit; + font-weight: inherit; + text-decoration: underline; + text-underline-offset: 3px; + text-decoration-thickness: 2px; + text-decoration-color: #22c34b60; +} + +.theme-default-content:not(.custom) a:hover { + color: #22c34b; + text-decoration: underline; + text-underline-offset: 3px; + text-decoration-thickness: 2px; + text-decoration-color: #22c34b70; +} + +q { + position: relative; + display: block; + margin: 30px 0; + padding: 40px 20px; + border-radius: 8px; +} + +@media (max-width: 959px) { + q { + margin: 20px 0; + padding: 40px 0; + } +} + +q::before, +q::after { + position: absolute; + font-size: 40px; + line-height: 1; + color: #9CA3AF; +} + + +q::before { + content: '❝'; + top: 5px; + left: 0; +} + +q::after { + content: '❞'; + bottom: -5px; + right: 0; +} + +q p { + margin: 0px; + font-size: 1.1rem; + font-weight: 500; + font-style: italic; + text-align: center; +} diff --git a/packages/core/docs/general/support.md b/packages/core/docs/general/support.md index 678c99c48d..2dff437b25 100644 --- a/packages/core/docs/general/support.md +++ b/packages/core/docs/general/support.md @@ -4,8 +4,6 @@ Feel invited to join our community at [Discord](http://discord.vuestorefront.io/) - this is the place, where you can ask your questions, start interesting discussions, and meet Vue Storefront Core Team Members. -To learn more about Vue Storefront, please visit our official [Vue Storefront Documentation](https://docs.vuestorefront.io/) page. - Check out our [Forum](https://forum.vuestorefront.io/) and [Twitter](https://twitter.com/VueStorefront) to get the latest news and announcements. ## How to ask for help? diff --git a/packages/core/docs/getting-started/introduction.md b/packages/core/docs/getting-started/introduction.md new file mode 100644 index 0000000000..e5f6a8b9b0 --- /dev/null +++ b/packages/core/docs/getting-started/introduction.md @@ -0,0 +1,43 @@ +# Introduction to Vue Storefront + +Without a proper understanding of the framework you're using, you might waste weeks or even months doing something that someone else has already done. That's why before we can dive deep into the project itself, we need to understand what powers it all under the hood. + +## It's all Nuxt.js + +We didn't want to reinvent the wheel and introduce yet another framework that solves the same issues as its predecessors, which took them years to mature. That's why... + + + +Vue Storefront is essentially a [Nuxt.js](https://nuxtjs.org/) project with some plugins and modules preinstalled, as well as a ready-to-use e-commerce theme. Nuxt.js handles most of the front-end work and [Server Side Rendering](https://nuxtjs.org/docs/concepts/server-side-rendering/), while Vue Storefront adds the e-commerce specific bits and integrations to various platforms. + + + +Some of the plugins and modules that come with the fresh installation were created by the Nuxt.js community, and others come from our core team specifically for Vue Storefront projects. + +The default theme mainly consists of components from the [Storefront UI](http://storefrontui.io/) — an e-commerce focused UI library maintained by the Vue Storefront team. + +We described plugins, modules, and the theme in more detail on the following pages. + +### But why? + +You might be wondering why we choose Nuxt.js as our foundation. After all, it wasn't created with e-commerce in mind. + +When you start using any new framework, you expect it to have **plugins that solve common issues**, such as analytics, SEO, internationalization, and many more. Additionally, it should be **versatile and flexible** enough to allow extending it and creating custom integrations. Not to mention an **active and diverse community**, which answers questions, writes articles, and promotes the framework. + +Creating such an ecosystem from scratch takes years. But because we based Vue Storefront on Nuxt.js — the biggest Vue.js framework — it ticks all the boxes. Nuxt.js has a vast library of [ready-to-use modules](https://modules.nuxtjs.org/) and an active community of thousands of developers on the [Nuxt.js Discord server](https://discord.com/invite/ps2h6QT). It's also flexible enough to make it e-commerce ready with just a few plugins and modules. + + + +Combining general-purpose modules from Nuxt.js and e-commerce specific modules from Vue Storefront significantly shortens the time-to-market. It allows you to focus on what's specific to your project. + + + +## Start with Vue.js + +If you are new to the Vue.js ecosystem, the best place to start learning is the [Vue.js documentation](https://vuejs.org/). **In our documentation, we assume prior knowledge of Vue.js (with some exceptions)**. While we do our best to explain each topic in detail, a lack of this knowledge might cause you to get lost. + +The next step in the learning process is reading [Nuxt.js documentation](https://nuxtjs.org/docs/). In most places, we don't assume this knowledge and add links to related documents, but having it will make you more confident and let you work faster and more efficiently. + +## What's next + +With fundamentals out of our way, it's time to undestand the [Project structure](./project-structure.html) and learn how to navigate it and which files do what. diff --git a/packages/core/docs/getting-started/key-concepts.md b/packages/core/docs/getting-started/key-concepts.md deleted file mode 100644 index 5ba6e3f78a..0000000000 --- a/packages/core/docs/getting-started/key-concepts.md +++ /dev/null @@ -1,66 +0,0 @@ -# Key concepts - -This document will walk you through the most important concepts of Vue Storefront and help you understand the ideas behind it. - - -## Progressive technology - -It comes as no surprise that Vue Storefront is mostly based on Vue-related technologies. The most important one is Nuxt.js, which is built on top of Vue.js. While Vue.js provides tools to create user interfaces and -templates, Nuxt.js takes care of server-side rendering, routing, and internationalization. - -It is recommended to get familiar with [Vue.js](https://vuejs.org/) and [Nuxt.js](https://nuxtjs.org/) -before starting development in Vue Storefront. - -## Reusability - -To provide customizable and easy to maintain applications, Vue -Storefront offers composables. -**Composables are the main public API of Vue Storefront** and, in many cases, the only API you'll work with. They are functions that implement most of the business logic of the application. You can treat each composable as an independent micro-application. - -```js -const { search, product, loading, error } = useProduct(); -``` - -You can read more about them on the [Composables](/composition/composables.html) page. - -## Extendability and custom integrations - -Although some integrations are already provided by the Vue Storefront team, we enable developers to create their own integrations with any platform by extending the Server Middleware. It's the key component that works as a bridge between the frontend and your backend of choice. - -You can read more about Vue Storefront Middleware and its configuration on the [Server Middleware](/architecture/server-middleware.html) -page. - -## Easy configuration - -We did our best to keep the configuration as simple and intuitive as possible. Therefore, Vue Storefront -applications can be configured by modifying just two files: - -- `nuxt.config.js` - main Nuxt.js configuration file used to control your Nuxt App and frontend-related features of Vue Storefront; -- `middleware.config.js` - VSF-specific configuration file used to add, configure and extend the [Server Middleware](/architecture/server-middleware.html); - -You can read more about it on the [Configuration](/getting-started/configuration.html) page. - -## Backend-agnostic - -One of the main goals of Vue Storefront is to work with almost any platform while using the same API. -No matter which service you configure as a backend, you will always use the same getters and composables. -This makes it easy to work with VSF projects on different tech stacks or to try new services without making any heavy investments. - -Some things are different for each platform, though. The main data object of each composable -(like `products` in `useProduct`) is **always** a plain response from your platform. However, if you use these objects with their dedicated getters (like `productGetters` for `useProduct`), they will always return the data in the same format. - -```js -const { search, products } = useProduct() - -console.log(products) // type: CommerceToolsProduct[] - -console.log(productGetters.getAttributes(products.value)) // type: AgnosticProductAttribute[] -``` - -Parameters of functions returned by composables are different for each platform - -```js -const { search, products } = useProduct() - -search(params) // `params` are different depending on backend platform -``` diff --git a/packages/core/docs/getting-started/layouts-and-routing.md b/packages/core/docs/getting-started/layouts-and-routing.md new file mode 100644 index 0000000000..095d5d3c1e --- /dev/null +++ b/packages/core/docs/getting-started/layouts-and-routing.md @@ -0,0 +1,131 @@ +# Layouts and Routing + +Layouts and Routing in Vue Storefront are entirely powered by Nuxt.js. We will only give a brief overview of these features on this page, but you can learn more on the [Views](https://nuxtjs.org/docs/concepts/views/) page in the Nuxt.js documentation. + +## View hierarchy + +Every page consists of layers — some layers are shared between many routes, others are used in one specific route. We described each layer in detail in the sections below. + +### HTML document + +At the root of the hierarchy is the HTML document. By default, the framework provides one, but you can customize it by creating an `app.html` file in the root directory of your project. It has special tags used to insert parts of the documents, and by default, looks like this: + +```html + + + + {{ HEAD }} + + + {{ APP }} + + +``` + +### Layouts + +Nuxt.js automatically registers all `.vue` files inside of the `layouts` directory as layouts. Unless configured otherwise, pages use the `default.vue` component as their layout. Open the `layouts/default.vue` component to get the general idea of how the page looks like, what components it imports and what data it loads within the `setup` function. + +Layout components include a special `` component that displays the page's content based on the current URL. Those pages are Vue.js components, too, explained in the next section. + +There is also an `error.vue` layout — used when an error occurs. It doesn't use the `` component but receives the `error` prop, which you can use to get an error code or message. + +The convention is to use `lowercase` when naming components inside of the `layouts` directory, e.g., `blog.vue`. + +### Pages + +Nuxt.js automatically registers all `.vue` files inside the `pages` directory as application routes. For example, creating an `AboutUs.vue` component will create an `/aboutus` route. In the same way, creating this component inside a nested directory called `company` will create the `/company/aboutus` route. It's all thanks to the [File System Routing](https://nuxtjs.org/docs/2.x/features/file-system-routing/) feature available in Nuxt.js. In the sections below, we describe how to modify routes manually. + +Pages can define a custom [layout](https://nuxtjs.org/docs/directory-structure/pages#layout) property to change the default used for this view. + +The convention is to use `PascalCase` when naming components inside of the `pages` directory, e.g., `MyAccount.vue`. + +## Predefined routes + +Every Vue Storefront project has a predefined list of routes injected by the `@vue-storefront/nuxt-theme` module. However, if you navigate the page, you might notice that the page routes don't match the name of the components inside the `pages` directory. + +This is because internally, we use the [extendRoutes](https://nuxtjs.org/guides/configuration-glossary/configuration-router#extendroutes) function to create custom routes for some of the components that come out of the box. + +Here's the map of routes and their corresponding components: + +| Route path | Component (in the `pages` directory) | Route name | +|---------------------------------------------------- | -------------------------------------|------------------| +| `/` | `Home.vue` | `home` | +| `/p/:id/:slug/` | `Product.vue` | `product` | +| `/c/:slug_1/:slug_2?/:slug_3?/:slug_4?/:slug_5?` | `Category.vue` | `category` | +| `/my-account/:pageName?` | `MyAccount.vue` | `my-account` | +| `/checkout` | `Checkout.vue` | `checkout` | +| `/checkout/shipping` | `Checkout/Shipping.vue` | `shipping` | +| `/checkout/billing` | `Checkout/Billing.vue` | `billing` | +| `/checkout/payment` | `Checkout/Payment.vue` | `payment` | +| `/checkout/thank-you` | `Checkout/ThankYou.vue` | `thank-you` | +| `/reset-password` | `ResetPassword.vue` | `reset-password` | + +## Manually adding and modifying routes + +If you want to manually add your custom routes or modify some already provided, use the `extendRoutes` function in the `nuxt.config.js`. This function has two properties: + +* `routes` — an array of already registered routes. You can `push` or delete entries from it. +* `resolve` — helper function for resolving Vue.js components based on their paths in the project. + +For the sake of example, let's assume that we created a `pages/AboutUs.vue` component, but we want to use the `/company/about-us` route instead of auto-registered `/aboutus`. There are two approaches we could take. + +The first approach is to **delete existing route** and **register new route** with a different path. + +```javascript +// nuxt.config.js + +export default { + router: { + extendRoutes(routes, resolve) { + // Delete automatically registered route + routes.splice( + routes.findIndex(route => route.path === '/AboutUs'), + 1 + ); + + // Re-register the same component but with different path + routes.push({ + name: 'AboutUs', + path: '/company/about-us', + component: resolve(__dirname, 'pages/AboutUs.vue') + }); + } + } +}; +``` + +Alternatively, we can **modify the `path` property of the existing entry** like so: + +```javascript +// nuxt.config.js + +export default { + router: { + extendRoutes(routes, resolve) { + // Find route index + const index = routes.findIndex(route => route.path === '/AboutUs'); + + // Modify route path + routes[index].path = '/company/about-us'; + } + } +}; +``` + +## Navigating between pages + +To navigate between pages within your application, use the [NuxtLink](https://nuxtjs.org/docs/features/nuxt-components/#the-nuxtlink-component) component, instead of the traditional `
` tag. While you can use the `` tag for external links, using the `` for internal links will ensure that you make use of the Single-Page Navigation capabilities that Nuxt.js provides. + +Single-Page Navigation (SPA) provides many benefits, such as: + +* much faster and more responsive navigation compared to the traditional server navigation, +* framework is initialized only once, +* components shared between the pages are rendered only once (if they use the same layout), +* fewer requests and data sent over the network. + +## What's next + +Layouts and pages are one thing, but in the end, they must display components and styles. Otherwise, we would only serve blank pages. + +New projects come with a default [Theme](./theme.html), so the next step is to understand what makes it look like this. diff --git a/packages/core/docs/getting-started/project-structure.md b/packages/core/docs/getting-started/project-structure.md new file mode 100644 index 0000000000..92d932c834 --- /dev/null +++ b/packages/core/docs/getting-started/project-structure.md @@ -0,0 +1,49 @@ +# Project structure + +If you followed our [Installation](/general/installation.html) guide, you should have a Vue Storefront project with some eCommerce platform already integrated. This project has a bunch of directories, Vue components, and files, but what does what? + +In this section, you will learn how to navigate the Vue Storefront project and where to start developing. + +## Structure basics + +As described on the [Introduction to Vue Storefront](./introduction.html) page, Vue Storefront is just a Nuxt.js project under the hood. For this reason, our project structure inherits from Nuxt.js but has some additional files. + +To learn about it in-depth, you can refer to the [Directory Structure in Nuxt.js project](https://nuxtjs.org/docs/get-started/directory-structure/) document, but the gist of it is: + +* [**.nuxt**](https://nuxtjs.org/docs/2.x/directory-structure/nuxt) is a dynamically generated build directory. You should **not** manually modify it, nor synchronize it using version control like GIT. + +* [**components**](https://nuxtjs.org/docs/2.x/directory-structure/components) contains Vue.js components used on different pages or parts of your application. You can import these components from pages, layouts, and other components. + +* [**lang**](http://localhost:8080/v2/getting-started/internationalization.html) contains translations for your application. Available locales are configured in the `nuxt.config.js` file. + +* [**layouts**](https://nuxtjs.org/docs/2.x/directory-structure/layouts) contains Vue.js components that act as a UI base for the whole application or specific pages. + +* [**middleware**](https://nuxtjs.org/docs/2.x/directory-structure/middleware) contains JavaScript files that contain custom functions run before rendering a whole application or just a specific layout or page. These can be used, for example, to protect pages from unauthorized access or redirect if some conditions are not met. + +* [**pages**](https://nuxtjs.org/docs/2.x/directory-structure/pages) contains Vue.js components that Nuxt.js automatically registers as routes. + +* [**static**](https://nuxtjs.org/docs/2.x/directory-structure/static) contains files that likely won't change, such as favicon, `robots.txt`, sitemap, or company logos. + +* [**middleware.config.js**](/architecture/server-middleware.html#configuration) configuration file for the [Server Middleware](/architecture/server-middleware.html). It defines and configures most of the platform integrations in your application. + +* [**nuxt.config.js**](https://nuxtjs.org/docs/2.x/directory-structure/nuxt-config) configuration file for the whole Nuxt.js application. + +Some integrations can have slightly different structures, with more or fewer files and directories. For more information, refer to the Nuxt.js documentation linked above and integration documentation. + +## Start with the `nuxt.config.js` file + + + +Whenever starting a new project or jumping into an existing one, the first place you should look into is the `nuxt.config.js` file. It contains general configuration for the whole project, including routes, global middlewares, internationalization, or build information. + + + +In the `nuxt.config.js` file, we also define modules and plugins we want to use to add or extend framework features. Because almost every Vue Storefront integration has them, you can identify which integrations are used by looking at this file. + +## Then move to the `middleware.config.js` file + +After the `nuxt.config.js` file, the next step is the `middleware.config.js` file. It's a much simpler and likely smaller file than the previous one. It configures the [Server Middleware](/architecture/server-middleware.html) and has a configuration including sensitive credentials for most integrations as well as custom endpoints, queries, etc. + +## What's next + +With a basic understanding of the project structure, we can learn about [Layouts and Routing](./layout-and-routing.html). We will show what routes come predefined in every Vue Storefront project and how to register custom ones. diff --git a/packages/core/docs/getting-started/theme.md b/packages/core/docs/getting-started/theme.md index 2416217d95..dbebd6a25b 100644 --- a/packages/core/docs/getting-started/theme.md +++ b/packages/core/docs/getting-started/theme.md @@ -1,19 +1,4 @@ # Theme -## Directory structure - -If you followed our [Installation guide](/general/installation.html), you should have a fully functional e-commerce application. As mentioned in previous documents, Vue Storefront extends Nuxt.js, so the structure of both applications is similar. Most directories come from Nuxt.js, and you can read more about them on their [Directory Structure](https://nuxtjs.org/docs/2.x/get-started/directory-structure) page. - -* [.nuxt](https://nuxtjs.org/docs/2.x/directory-structure/nuxt); -* [components](https://nuxtjs.org/docs/2.x/directory-structure/components); -* `composables` - contains custom composables that override your integration or are not part of the Vue Storefront core. It may include composables specific to your theme; -* `helpers` - contains helper functions. It is a good place to store methods used in the multiples places of the application; -* `lang` - contains translations for your application. Available locales are configured in the `nuxt.config.js` file; -* [layouts](https://nuxtjs.org/docs/2.x/directory-structure/layouts); -* [middleware](https://nuxtjs.org/docs/2.x/directory-structure/middleware); -* [pages](https://nuxtjs.org/docs/2.x/directory-structure/pages); -* [static](https://nuxtjs.org/docs/2.x/directory-structure/static); -* `middleware.config.js` - configuration file for the [Server Middleware](/architecture/server-middleware.html); -* [nuxt.config.js](https://nuxtjs.org/docs/2.x/directory-structure/nuxt-config); ## Storefront UI @@ -46,48 +31,7 @@ If the name of the component starts with `Sf` (indicating that it comes from Sto These two components come from the `vue-lazy-hydration` library and are wrappers around other components. In Vue Storefront, they are used to improve the performance by deferring the hydration process (when components become interactive) and don't affect the look of other components. -If you encounter one of these components, you should refer to the direct **child** component. - -### Adding new page - -To add a new page, create a new component in the `pages` folder and name it the same as your route using `PascalCase`. - -As an example, let's create the `AboutUs.vue` component. This by itself creates a new route named `/aboutus` (thanks to [File System Routing](https://nuxtjs.org/docs/2.x/features/file-system-routing/) in Nuxt.js) and in some cases might be enough. However, to follow the convention of using `kebab-case` in URLs, let's use [extendRoutes](https://nuxtjs.org/guides/configuration-glossary/configuration-router#extendroutes) in `nuxt.config.js` to have more control over the route. - -Add following configuration to `nuxt.config.js` to create new route `/about-us`: - -```javascript -// nuxt.config.js - -export default { - router: { - extendRoutes(routes, resolve) { - routes.push({ - name: 'AboutUs', - path: '/about-us', - component: resolve(__dirname, 'pages/AboutUs.vue') - }); - } - } -}; -``` - -## Routing - -Out of the box, some routes are injected via `@vue-storefront/nuxt-theme` module: - -- Home Page (`/`); -- Category Page (`/c/:slug_1/:slug_2?/:slug_3?/:slug_4?/:slug_5?`); -- Product Page (`/p/:id/:slug/`); -- User Profile Page (`/my-account/:pageName?`); -- Checkout (`/checkout`): - - Shipping (`/checkout/shipping`); - - Billing (`/checkout/billing`); - - Payment (`/checkout/payment`); - - Thank You page (`/checkout/thank-you`); -- Custom 404 page; - -To override existing routes or adding your own, use [extendRoutes](https://nuxtjs.org/guides/configuration-glossary/configuration-router#extendroutes) in `nuxt.config.js`. Additionally, Nuxt.js automatically registers components created in the `pages` folder as new routes. You can read more about this on the [File System Routing](https://nuxtjs.org/docs/2.x/features/file-system-routing/) page. +If you encounter one of these components, you should refer to the direct **child** component. ## Updating styles From 87b49878a95b4edd19cd4cf4876d5f96fb96e33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20J=C4=99drasik?= Date: Mon, 13 Dec 2021 12:16:50 +0100 Subject: [PATCH 061/151] feat: add health check (#6561) --- packages/core/docs/changelog/6541.js | 8 ++++++++ packages/core/nuxt-module/lib/module.js | 7 +++++++ packages/core/nuxt-module/lib/plugins/health-check.js | 8 ++++++++ 3 files changed, 23 insertions(+) create mode 100644 packages/core/docs/changelog/6541.js create mode 100644 packages/core/nuxt-module/lib/plugins/health-check.js diff --git a/packages/core/docs/changelog/6541.js b/packages/core/docs/changelog/6541.js new file mode 100644 index 0000000000..bd57a733f0 --- /dev/null +++ b/packages/core/docs/changelog/6541.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Add health check under /healthz', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6541', + isBreaking: false, + breakingChanges: [], + author: 'Łukasz Jędrasik', + linkToGitHubAccount: 'https://github.com/lukaszjedrasik' +}; diff --git a/packages/core/nuxt-module/lib/module.js b/packages/core/nuxt-module/lib/module.js index bdb0989e8d..102f23dcec 100644 --- a/packages/core/nuxt-module/lib/module.js +++ b/packages/core/nuxt-module/lib/module.js @@ -50,6 +50,13 @@ module.exports = function VueStorefrontNuxtModule (moduleOptions) { }); } + // Health Check plugin + this.options.router.middleware.push('health-check') + this.addPlugin({ + src: path.resolve(__dirname, 'plugins/health-check.js') + }) + log.success('Installed Vue Storefront Health Check plugin'); + // Context plugin this.addPlugin(path.resolve(__dirname, 'plugins/context.js')) log.success('Installed Vue Storefront Context plugin'); diff --git a/packages/core/nuxt-module/lib/plugins/health-check.js b/packages/core/nuxt-module/lib/plugins/health-check.js new file mode 100644 index 0000000000..f8c4cdc7ce --- /dev/null +++ b/packages/core/nuxt-module/lib/plugins/health-check.js @@ -0,0 +1,8 @@ +import Middleware from './middleware' + +Middleware['health-check'] = function ({ app, res }) { + const currentPath = app.context.route.fullPath; + if (currentPath === '/healthz') { + res.end('ok'); + } +}; From d1fd3072a80a75a2b14c546cbfb3eab978db2476 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 13 Dec 2021 16:35:41 +0100 Subject: [PATCH 062/151] chore: update caching in GitHub Actions (#6562) --- .github/workflows/conventional-pr-name.yml | 11 +- .github/workflows/deploy-lighthouse.yml | 2 +- .../deploy-preview-storefrontcloud.yml | 2 +- .github/workflows/deploy-storefrontcloud.yml | 2 +- .github/workflows/run-e2e-regression.yml | 11 +- .github/workflows/run-e2e-tests.yml | 11 +- .github/workflows/test.yml | 122 ++---------------- 7 files changed, 20 insertions(+), 141 deletions(-) diff --git a/.github/workflows/conventional-pr-name.yml b/.github/workflows/conventional-pr-name.yml index 1806d80aa9..4d64345532 100644 --- a/.github/workflows/conventional-pr-name.yml +++ b/.github/workflows/conventional-pr-name.yml @@ -12,17 +12,12 @@ jobs: uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' - name: Install dependencies - run: yarn --network-concurrency 1 --frozen-lockfile + run: yarn install --frozen-lockfile - uses: JulienKode/pull-request-name-linter-action@v0.1.2 diff --git a/.github/workflows/deploy-lighthouse.yml b/.github/workflows/deploy-lighthouse.yml index f2e9329d1d..467965c0c2 100644 --- a/.github/workflows/deploy-lighthouse.yml +++ b/.github/workflows/deploy-lighthouse.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout code uses: actions/checkout@v1 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: "12.x" - name: Build and publish docker image diff --git a/.github/workflows/deploy-preview-storefrontcloud.yml b/.github/workflows/deploy-preview-storefrontcloud.yml index 4ffcc1dd64..393bb5b029 100644 --- a/.github/workflows/deploy-preview-storefrontcloud.yml +++ b/.github/workflows/deploy-preview-storefrontcloud.yml @@ -9,7 +9,7 @@ jobs: - name: Checkout code uses: actions/checkout@v1 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: "12.x" - name: Build and publish docker image diff --git a/.github/workflows/deploy-storefrontcloud.yml b/.github/workflows/deploy-storefrontcloud.yml index 2edeb3667a..96b0966ceb 100644 --- a/.github/workflows/deploy-storefrontcloud.yml +++ b/.github/workflows/deploy-storefrontcloud.yml @@ -11,7 +11,7 @@ jobs: - name: Checkout code uses: actions/checkout@v1 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: "12.x" - name: Build and publish docker image diff --git a/.github/workflows/run-e2e-regression.yml b/.github/workflows/run-e2e-regression.yml index fcb4314e63..a221af1889 100644 --- a/.github/workflows/run-e2e-regression.yml +++ b/.github/workflows/run-e2e-regression.yml @@ -18,17 +18,10 @@ jobs: uses: actions/setup-node@v2 with: node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: | - ~/.cache/Cypress - **/node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' - name: Install dependencies - run: yarn install + run: yarn install --frozen-lockfile - name: Build package run: yarn build:${{ matrix.package }} diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 5cdc5bee8b..fae6a2e7b0 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -28,17 +28,10 @@ jobs: uses: actions/setup-node@v2 with: node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: | - ~/.cache/Cypress - **/node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' - name: Install dependencies - run: yarn install + run: yarn install --frozen-lockfile - name: Build package run: yarn build:${{ github.event.inputs.package }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a6d0471d95..7f50e35830 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Run tests +name: Lint, build, test on: push: @@ -13,138 +13,36 @@ on: - release-** jobs: - prepare_dependencies: - name: Prepare dependencies + test_repository: + name: Run linter, build and test all packages runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' - name: Install dependencies - run: yarn --network-concurrency 1 --frozen-lockfile - - lint: - name: Lint - needs: prepare_dependencies - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup node - uses: actions/setup-node@v1 - with: - node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + run: yarn install --frozen-lockfile - name: Run linter run: yarn lint - - validate_core: - name: Validate core - needs: prepare_dependencies - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup node - uses: actions/setup-node@v1 - with: - node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - + - name: Build core run: yarn build:core + - name: Test core + run: yarn test:core --coverage + - name: Test cache run: yarn test:cache --coverage - name: Test CLI run: yarn test:cli --coverage - - name: Test core - run: yarn test:core --coverage - - name: Test middleware run: yarn test:middleware --coverage - - validate_integrations: - name: Validate ${{ matrix.integration }} - needs: validate_core - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - integration: - - boilerplate - - commercetools - # - shopify - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup node - uses: actions/setup-node@v1 - with: - node-version: '12' - - - name: Get cached dependencies - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - - - name: Build core - run: yarn build:core - - - name: Build middleware - run: yarn build:middleware - - - name: Build api-client - run: cd packages/${{ matrix.integration }}/api-client && yarn build - - - name: Test api-client - run: cd packages/${{ matrix.integration }}/api-client && yarn test --passWithNoTests --coverage - - - name: Build composables - run: cd packages/${{ matrix.integration }}/composables && yarn build - - - name: Test composables - run: cd packages/${{ matrix.integration }}/composables && yarn test --passWithNoTests --coverage - - - name: Build theme - run: cd packages/${{ matrix.integration }}/theme && yarn build - - - name: Test theme - run: cd packages/${{ matrix.integration }}/theme && yarn test --passWithNoTests - - - name: api-client coverage file - id: api-coverage - run: echo "::set-output name=exists::$((test -s packages/${{ matrix.integration }}/api-client/coverage/lcov.info && echo 'true') || echo 'false')" - - - name: composables coverage file - id: composables-coverage - run: echo "::set-output name=exists::$((test -s packages/${{ matrix.integration }}/composables/coverage/lcov.info && echo 'true') || echo 'false')" From 9ada20d7329c65f16c76c89509d028889214ddb0 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 13 Dec 2021 17:03:12 +0100 Subject: [PATCH 063/151] docs: update Integration Guide (#6564) --- packages/core/docs/integrate/integration-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/docs/integrate/integration-guide.md b/packages/core/docs/integrate/integration-guide.md index 6217b03628..7df6ad21bc 100644 --- a/packages/core/docs/integrate/integration-guide.md +++ b/packages/core/docs/integrate/integration-guide.md @@ -86,7 +86,7 @@ Once the new repository is ready, clone it locally. **Before you start making changes and installing dependencies**, let's update the name of the packages and integrations. Doing it now prevents issues with linking dependencies later. -Open the "Search and Replace" tool inside your code editor and replace all instances of `<% INTEGRATION %>` with the name of your project or platform. The name must be in lowercase, without spaces or any special characters. +Open the "Search and Replace" tool inside your code editor and replace all instances of `__replace_me__` with the name of your project or platform. The name must be in lowercase, without spaces or any special characters. ### Install dependencies From e706d2e3971bc44dde280f1fab4da30fd45f141f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20J=C4=99drasik?= Date: Tue, 14 Dec 2021 10:31:24 +0100 Subject: [PATCH 064/151] feat: add `@vue-storefront/health-check` module (#6563) * feat: add @vue-storefront/health-check module * chore: cr fix * chore: add Readme * chore: fix readme * chore: fix readme * chore: fix readme --- packages/core/docs/changelog/6541.js | 2 +- packages/core/health-check/.gitignore | 2 ++ packages/core/health-check/README.md | 23 +++++++++++++++++++ packages/core/health-check/lib/module.js | 9 ++++++++ packages/core/health-check/package.json | 22 ++++++++++++++++++ packages/core/nuxt-module/lib/module.js | 7 ------ .../nuxt-module/lib/plugins/health-check.js | 8 ------- 7 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 packages/core/health-check/.gitignore create mode 100644 packages/core/health-check/README.md create mode 100644 packages/core/health-check/lib/module.js create mode 100644 packages/core/health-check/package.json delete mode 100644 packages/core/nuxt-module/lib/plugins/health-check.js diff --git a/packages/core/docs/changelog/6541.js b/packages/core/docs/changelog/6541.js index bd57a733f0..417d0fd176 100644 --- a/packages/core/docs/changelog/6541.js +++ b/packages/core/docs/changelog/6541.js @@ -1,5 +1,5 @@ module.exports = { - description: 'Add health check under /healthz', + description: 'Add `@vue-storefront/health-check` module ', link: 'https://github.com/vuestorefront/vue-storefront/issues/6541', isBreaking: false, breakingChanges: [], diff --git a/packages/core/health-check/.gitignore b/packages/core/health-check/.gitignore new file mode 100644 index 0000000000..c434d59719 --- /dev/null +++ b/packages/core/health-check/.gitignore @@ -0,0 +1,2 @@ +node_modules +!lib diff --git a/packages/core/health-check/README.md b/packages/core/health-check/README.md new file mode 100644 index 0000000000..a1a0038ce5 --- /dev/null +++ b/packages/core/health-check/README.md @@ -0,0 +1,23 @@ +# VSF Health Check + +## Setup + +### Install with yarn: + +`yarn add @vue-storefront/health-check` + +### Install with npm: + +`npm install @vue-storefront/health-check` + +### Add `@vue-storefront/health-check` module to nuxt.config.js + +```js +module.exports = { + modules: [ + '@vue-storefront/health-check' + ] +} +``` + +Health Check is available under `/healthz` endpoint. diff --git a/packages/core/health-check/lib/module.js b/packages/core/health-check/lib/module.js new file mode 100644 index 0000000000..ddfc8b3c2f --- /dev/null +++ b/packages/core/health-check/lib/module.js @@ -0,0 +1,9 @@ +function handler (req, res) { + res.end('ok') +}; + +module.exports = function healthCheckModule() { + const serverMiddleware = { path: '/healthz', handler }; + + this.addServerMiddleware(serverMiddleware); +}; diff --git a/packages/core/health-check/package.json b/packages/core/health-check/package.json new file mode 100644 index 0000000000..bff5c9907f --- /dev/null +++ b/packages/core/health-check/package.json @@ -0,0 +1,22 @@ +{ + "name": "@vue-storefront/health-check", + "version": "1.0.0", + "description": "", + "main": "lib/module.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Vue Storefront", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuestorefront/vue-storefront.git" + }, + "bugs": { + "url": "https://github.com/vuestorefront/vue-storefront/issues" + }, + "homepage": "https://github.com/vuestorefront/vue-storefront#readme" +} diff --git a/packages/core/nuxt-module/lib/module.js b/packages/core/nuxt-module/lib/module.js index 102f23dcec..bdb0989e8d 100644 --- a/packages/core/nuxt-module/lib/module.js +++ b/packages/core/nuxt-module/lib/module.js @@ -50,13 +50,6 @@ module.exports = function VueStorefrontNuxtModule (moduleOptions) { }); } - // Health Check plugin - this.options.router.middleware.push('health-check') - this.addPlugin({ - src: path.resolve(__dirname, 'plugins/health-check.js') - }) - log.success('Installed Vue Storefront Health Check plugin'); - // Context plugin this.addPlugin(path.resolve(__dirname, 'plugins/context.js')) log.success('Installed Vue Storefront Context plugin'); diff --git a/packages/core/nuxt-module/lib/plugins/health-check.js b/packages/core/nuxt-module/lib/plugins/health-check.js deleted file mode 100644 index f8c4cdc7ce..0000000000 --- a/packages/core/nuxt-module/lib/plugins/health-check.js +++ /dev/null @@ -1,8 +0,0 @@ -import Middleware from './middleware' - -Middleware['health-check'] = function ({ app, res }) { - const currentPath = app.context.route.fullPath; - if (currentPath === '/healthz') { - res.end('ok'); - } -}; From 9b2110d782a5a62c6417b4725737ebb070ca503c Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Tue, 14 Dec 2021 12:30:47 +0100 Subject: [PATCH 065/151] fix: loading integrations in Server Middleware (#6567) --- packages/core/docs/changelog/6567.js | 8 ++++ packages/core/middleware/src/integrations.ts | 47 +++++++++++++++----- 2 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 packages/core/docs/changelog/6567.js diff --git a/packages/core/docs/changelog/6567.js b/packages/core/docs/changelog/6567.js new file mode 100644 index 0000000000..6c3a9ade9b --- /dev/null +++ b/packages/core/docs/changelog/6567.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fix loading integrations in Server Middleware', + link: 'https://github.com/vuestorefront/vue-storefront/pull/6567', + isBreaking: false, + breakingChanges: [], + author: 'Filip Sobol', + linkToGitHubAccount: 'https://github.com/filipsobol' +}; diff --git a/packages/core/middleware/src/integrations.ts b/packages/core/middleware/src/integrations.ts index 32ecad582a..0735b26a6f 100644 --- a/packages/core/middleware/src/integrations.ts +++ b/packages/core/middleware/src/integrations.ts @@ -17,25 +17,47 @@ interface IntegrationLoaded { type IntegrationsLoaded = Record -const createRawExtensions = (apiClient: ApiClientFactory, integration: Integration): ApiClientExtension[] => { +/** + * Resolves dependencies based on the current working directory, not relative to this package. + */ +function resolveDependency(name: string): T { + try { + const path = require.resolve(name, { paths: [process.cwd()] }); + + // eslint-disable-next-line global-require + return require(path); + } catch (error) { + throw new Error(`Could not resolve integration :${name}"`); + } +} + +function createRawExtensions(apiClient: ApiClientFactory, integration: Integration): ApiClientExtension[] { const extensionsCreateFn = integration.extensions; const predefinedExtensions = (apiClient.createApiClient as any)._predefinedExtensions; - return extensionsCreateFn ? extensionsCreateFn(predefinedExtensions) : predefinedExtensions; -}; -const lookUpExternal = (curr: string | ApiClientExtension): ApiClientExtension[] => - // eslint-disable-next-line global-require - typeof curr === 'string' ? require(curr) : [curr]; + return extensionsCreateFn + ? extensionsCreateFn(predefinedExtensions) + : predefinedExtensions; +} + +function lookUpExternal(extension: string | ApiClientExtension): ApiClientExtension[] { + return typeof extension === 'string' + ? resolveDependency(extension) + : [extension]; +} -const createExtensions = (rawExtensions: ApiClientExtension[]): ApiClientExtension[] => rawExtensions - .reduce((prev, curr) => [...prev, ...lookUpExternal(curr)], []); +function createExtensions(rawExtensions: ApiClientExtension[]): ApiClientExtension[] { + return rawExtensions.reduce((prev, curr) => [ + ...prev, + ...lookUpExternal(curr) + ], []); +} -const registerIntegrations = (app: Express, integrations: IntegrationsSection): IntegrationsLoaded => - Object.entries(integrations).reduce((prev, [tag, integration]) => { +function registerIntegrations(app: Express, integrations: IntegrationsSection): IntegrationsLoaded { + return Object.entries(integrations).reduce((prev, [tag, integration]) => { consola.info(`- Loading: ${tag} ${integration.location}`); - // eslint-disable-next-line global-require - const apiClient: ApiClientFactory = require(integration.location); + const apiClient: ApiClientFactory = resolveDependency(integration.location); const rawExtensions: ApiClientExtension[] = createRawExtensions(apiClient, integration); const extensions: ApiClientExtension[] = createExtensions(rawExtensions); @@ -59,5 +81,6 @@ const registerIntegrations = (app: Express, integrations: IntegrationsSection): } }; }, {}); +} export { registerIntegrations }; From 5c407a856aff3eb1bab9c4faf46bfb6207bda677 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Tue, 14 Dec 2021 17:26:34 +0100 Subject: [PATCH 066/151] docs: remove old VSF logo (#6570) --- packages/core/docs/commercetools/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/docs/commercetools/index.md b/packages/core/docs/commercetools/index.md index 0e6f764867..a82fea3cbf 100644 --- a/packages/core/docs/commercetools/index.md +++ b/packages/core/docs/commercetools/index.md @@ -1,5 +1,3 @@ - - # commercetools integration for Vue Storefront :::tip There's more From dd3e75b7096b94fadef9506e3dcd6d0b9e70b010 Mon Sep 17 00:00:00 2001 From: Lukas Borawski Date: Thu, 16 Dec 2021 11:26:43 +0100 Subject: [PATCH 067/151] chore: release 2.5.3 (#6571) * chore: version bump for core to 2.5.3 and for ct to 1.4.3 * docs: changelog update * chore: version bump for health check --- packages/boilerplate/api-client/package.json | 4 +- packages/boilerplate/composables/package.json | 6 +-- packages/boilerplate/theme/package.json | 10 ++--- .../commercetools/api-client/package.json | 4 +- .../commercetools/composables/package.json | 6 +-- packages/commercetools/theme/package.json | 10 ++--- packages/core/cache/package.json | 4 +- packages/core/core/package.json | 2 +- packages/core/docs/changelog/6541.js | 8 ---- packages/core/docs/changelog/6555.js | 8 ---- packages/core/docs/changelog/6567.js | 8 ---- packages/core/docs/reference/changelog.md | 40 +++++++++++-------- packages/core/health-check/package.json | 2 +- packages/core/middleware/package.json | 2 +- packages/core/nuxt-module/package.json | 2 +- packages/core/nuxt-theme-module/package.json | 2 +- 16 files changed, 51 insertions(+), 67 deletions(-) delete mode 100644 packages/core/docs/changelog/6541.js delete mode 100644 packages/core/docs/changelog/6555.js delete mode 100644 packages/core/docs/changelog/6567.js diff --git a/packages/boilerplate/api-client/package.json b/packages/boilerplate/api-client/package.json index 4f16b8309a..ef12632a5d 100644 --- a/packages/boilerplate/api-client/package.json +++ b/packages/boilerplate/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-api", - "version": "2.5.2", + "version": "2.5.3", "private": true, "sideEffects": false, "server": "server/index.js", @@ -14,7 +14,7 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/core": "~2.5.1" + "@vue-storefront/core": "~2.5.3" }, "devDependencies": { "@rollup/plugin-node-resolve": "^13.0.6", diff --git a/packages/boilerplate/composables/package.json b/packages/boilerplate/composables/package.json index 5c9b581510..fd5c4f751d 100644 --- a/packages/boilerplate/composables/package.json +++ b/packages/boilerplate/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate", - "version": "2.5.2", + "version": "2.5.3", "private": true, "sideEffects": false, "main": "lib/index.cjs.js", @@ -13,8 +13,8 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/boilerplate-api": "~2.5.2", - "@vue-storefront/core": "~2.5.2" + "@vue-storefront/boilerplate-api": "~2.5.3", + "@vue-storefront/core": "~2.5.3" }, "devDependencies": { "@rollup/plugin-node-resolve": "^13.0.6", diff --git a/packages/boilerplate/theme/package.json b/packages/boilerplate/theme/package.json index fa06f1d433..c4a6e68a87 100644 --- a/packages/boilerplate/theme/package.json +++ b/packages/boilerplate/theme/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/boilerplate-theme", - "version": "2.5.2", + "version": "2.5.3", "private": true, "scripts": { "dev": "nuxt", @@ -14,10 +14,10 @@ }, "dependencies": { "@storefront-ui/vue": "0.11.0-rc.1", - "@vue-storefront/boilerplate": "~2.5.2", - "@vue-storefront/middleware": "~2.5.2", - "@vue-storefront/nuxt": "~2.5.2", - "@vue-storefront/nuxt-theme": "~2.5.2", + "@vue-storefront/boilerplate": "~2.5.3", + "@vue-storefront/middleware": "~2.5.3", + "@vue-storefront/nuxt": "~2.5.3", + "@vue-storefront/nuxt-theme": "~2.5.3", "cookie-universal-nuxt": "^2.1.3", "core-js": "^2.6.5", "nuxt": "^2.13.3", diff --git a/packages/commercetools/api-client/package.json b/packages/commercetools/api-client/package.json index 1911e67b8f..4764a06069 100644 --- a/packages/commercetools/api-client/package.json +++ b/packages/commercetools/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools-api", - "version": "1.4.2", + "version": "1.4.3", "sideEffects": false, "server": "server/index.js", "main": "lib/index.cjs.js", @@ -15,7 +15,7 @@ "dependencies": { "@apollo/client": "^3.3.21", "@commercetools/sdk-auth": "^3.0.12", - "@vue-storefront/core": "~2.5.2", + "@vue-storefront/core": "~2.5.3", "apollo-cache-inmemory": "^1.6.6", "apollo-client": "^2.6.10", "apollo-link": "^1.2.14", diff --git a/packages/commercetools/composables/package.json b/packages/commercetools/composables/package.json index f44014ae08..cff6b38273 100644 --- a/packages/commercetools/composables/package.json +++ b/packages/commercetools/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/commercetools", - "version": "1.4.2", + "version": "1.4.3", "sideEffects": false, "main": "lib/index.cjs.js", "module": "lib/index.es.js", @@ -13,8 +13,8 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/commercetools-api": "~1.4.2", - "@vue-storefront/core": "~2.5.2", + "@vue-storefront/commercetools-api": "~1.4.3", + "@vue-storefront/core": "~2.5.3", "js-cookie": "^2.2.1", "vue": "^2.6.x" }, diff --git a/packages/commercetools/theme/package.json b/packages/commercetools/theme/package.json index 5b1b5de83d..75b1bf17ed 100644 --- a/packages/commercetools/theme/package.json +++ b/packages/commercetools/theme/package.json @@ -2,7 +2,7 @@ "name": "@vue-storefront/commercetools-theme", "description": "My awesome Vue Storefront project", "author": "Filip Rakowski", - "version": "1.4.2", + "version": "1.4.3", "publishConfig": { "access": "public" }, @@ -20,10 +20,10 @@ "@nuxtjs/google-fonts": "1.3.0", "@nuxtjs/pwa": "^3.2.2", "@storefront-ui/vue": "0.11.0-rc.1", - "@vue-storefront/commercetools": "~1.4.2", - "@vue-storefront/middleware": "~2.5.2", - "@vue-storefront/nuxt": "~2.5.2", - "@vue-storefront/nuxt-theme": "~2.5.2", + "@vue-storefront/commercetools": "~1.4.3", + "@vue-storefront/middleware": "~2.5.3", + "@vue-storefront/nuxt": "~2.5.3", + "@vue-storefront/nuxt-theme": "~2.5.3", "awesome-phonenumber": "^2.51.2", "cookie-universal-nuxt": "^2.1.3", "core-js": "^2.6.5", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index a2e6426c9e..842c4fc015 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/cache", - "version": "2.5.2", + "version": "2.5.3", "license": "MIT", "main": "lib/index.cjs.js", "module": "lib/index.es.js", @@ -12,7 +12,7 @@ "prepublish": "yarn build" }, "dependencies": { - "@vue-storefront/core": "~2.5.2" + "@vue-storefront/core": "~2.5.3" }, "peerDependencies": { "@nuxtjs/composition-api": "^0.29.3" diff --git a/packages/core/core/package.json b/packages/core/core/package.json index e8b233b0c6..e45eb711cb 100644 --- a/packages/core/core/package.json +++ b/packages/core/core/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/core", - "version": "2.5.2", + "version": "2.5.3", "sideEffects": false, "main": "lib/index.cjs.js", "module": "lib/index.es.js", diff --git a/packages/core/docs/changelog/6541.js b/packages/core/docs/changelog/6541.js deleted file mode 100644 index 417d0fd176..0000000000 --- a/packages/core/docs/changelog/6541.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - description: 'Add `@vue-storefront/health-check` module ', - link: 'https://github.com/vuestorefront/vue-storefront/issues/6541', - isBreaking: false, - breakingChanges: [], - author: 'Łukasz Jędrasik', - linkToGitHubAccount: 'https://github.com/lukaszjedrasik' -}; diff --git a/packages/core/docs/changelog/6555.js b/packages/core/docs/changelog/6555.js deleted file mode 100644 index ecbd863e71..0000000000 --- a/packages/core/docs/changelog/6555.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - description: 'Add possibility to disable useCache mechanism via nuxt.config.js', - link: 'https://github.com/vuestorefront/vue-storefront/issues/6555', - isBreaking: false, - breakingChanges: [], - author: 'Kamil Nogala', - linkToGitHubAccount: 'https://github.com/kamnog' -}; diff --git a/packages/core/docs/changelog/6567.js b/packages/core/docs/changelog/6567.js deleted file mode 100644 index 6c3a9ade9b..0000000000 --- a/packages/core/docs/changelog/6567.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - description: 'Fix loading integrations in Server Middleware', - link: 'https://github.com/vuestorefront/vue-storefront/pull/6567', - isBreaking: false, - breakingChanges: [], - author: 'Filip Sobol', - linkToGitHubAccount: 'https://github.com/filipsobol' -}; diff --git a/packages/core/docs/reference/changelog.md b/packages/core/docs/reference/changelog.md index 10594e4e6b..8f28d24bde 100644 --- a/packages/core/docs/reference/changelog.md +++ b/packages/core/docs/reference/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 2.5.3 + +- Add `@vue-storefront/health-check` module ([6541](https://github.com/vuestorefront/vue-storefront/issues/6541)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) + +- Add possibility to disable useCache mechanism via nuxt.config.js ([6555](https://github.com/vuestorefront/vue-storefront/issues/6555)) - [Kamil Nogala](https://github.com/kamnog) + +- Fix loading integrations in Server Middleware ([6567](https://github.com/vuestorefront/vue-storefront/pull/6567)) - [Filip Sobol](https://github.com/filipsobol) + ## 2.5.2 - Fix errors in the `Product` and `OrderHistory` components ([6545](https://github.com/vuestorefront/vue-storefront/pull/6545)) - [Filip Sobol](https://github.com/filipsobol) @@ -127,7 +135,7 @@ - [BREAKING] updated the removeCoupon interface to match the applyCoupon ([#6126](https://github.com/vuestorefront/vue-storefront/pull/6126)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables @@ -151,13 +159,13 @@ - [BREAKING] update Storefront UI version ([#5691](https://github.com/vuestorefront/vue-storefront/issues/5691)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | toggleCategoryGridView | changeToCategoryGridView, changeToCategoryListView | toggleCategoryGridView has been divided into two functions: changeToCategoryGridView and changeToCategoryListView | /composables/useUiState.ts - [BREAKING] mocked results for search ([#5709](https://github.com/vuestorefront/vue-storefront/pull/5709/files)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | term | phrase | term is changed to phrase | acomposables/useUiHelpers/index.ts @@ -169,7 +177,7 @@ - [BREAKING] Pass integration configuration to 'extendApp' ([#5774](https://github.com/vuestorefront/vue-storefront/pull/5774)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | `extendApp` accepted only Express.js app as a parameter: `extendApp(app)` | `extendApp` accepts object containing `app` and `configuration` properties: `extendApp({ app, configuration })` | Allow access to integration configuration when extending application. | @vue-storefront/middleware @@ -186,7 +194,7 @@ - [BREAKING] Fix infinite loading for login and register by implementing error handling in core module and in LoginModal ([#5508](https://github.com/vuestorefront/vue-storefront/issues/5508)) - [Baroshem](https://github.com/Baroshem) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | There was no error handling and thats why the infinite loading was appearing | Errors are handled immediately | add try/catch to middleware, set more appriopriate value to err.value in useUserFactory, and implement error handling in LoginModal | core/middleware, LoginModal @@ -207,7 +215,7 @@ - [BREAKING] Implementation of api middleware ([#5361](https://github.com/vuestorefront/vue-storefront/pull/5361)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | apiClientFactory | apiClientFactory | Api client factory is being called only on our middleware. It is no longer supported in the borwser. For client-side interaction please use proxied version | core @@ -217,14 +225,14 @@ - [BREAKING] New part of checkout - shipping details, inside core and commercetools ([#5419](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | Using checkoutGetters | Removed checkoutGetters | Accesing checkout-related properties directly | core, CartPreview.vue uses checkoutGetters | CartPreview.vue is implemented per integration as we do not use getters for checkout-related stuff | We have to implement CartPreview component per integration | nuxt-theme-module - [BREAKING] Added `is-authenticated` middleware to protect user profile routes from guest access. By default it emits an error message asking to implement vendor-specific validation. ([#5442_1](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | - | [Link](https://docs.vuestorefront.io/v2/integrate/integration-guide.html#creating-a-middleware) | Create new middleware that checks if customer is logged in, and if not, redirects to homepage. | middleware/is-authenticated.js @@ -236,7 +244,7 @@ - [BREAKING] Unify case of theme's directories ([#5511](https://github.com/vuestorefront/vue-storefront/issues/5511)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | nuxt-theme-module, pages/Checkout.vue imported components from ~/components/checkout | pages/Checkout.vue imports components from ~/components/Checkout | Nested directories should be in PascalCase. Remember to update imports | commercetools-theme @@ -245,7 +253,7 @@ - [BREAKING] Update Cache library ([#5524](https://github.com/vuestorefront/vue-storefront/pull/5524)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | - | - | Please see "Advanced > SSR Cache" and "Build integration > Cache drive" pages in the documentation for more information. | @vue-storefront/cache @@ -253,7 +261,7 @@ - [BREAKING] New part of checkout - useBillingFactory, inside core ([#5552](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | Integrations implement useCheckout | Integrations implement useBilling | New factories dedicated for the checkout | core @@ -261,7 +269,7 @@ - [BREAKING] Quick search ([#5566](https://github.com/vuestorefront/vue-storefront/issues/5566)) - [Justyna Gieracka](https://github.com/justyna-13) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | { changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts, @@ -270,20 +278,20 @@ - [BREAKING] Implementation of api middleware ([#5577](https://github.com/vuestorefront/vue-storefront/pull/5577)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | core - [BREAKING] Add 'useMakeOrder' and rename composable 'useUserOrders' to 'useUserOrder' ([#5584](https://github.com/vuestorefront/vue-storefront/pull/5584)) - [Filip Sobol](https://github.com/filipsobol) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | useUserOrders | useUserOrder | Renamed composable 'useUserOrders' to 'useUserOrder'. | core and commercetools, 'placeOrder' from 'useCheckout' composable was used to place new orders. | Added new 'useMakeOrder' composable and used it's 'make' function to place new orders. | Use new 'useMakeOrder' composable to place orders. | core and commercetools - [BREAKING] New Payment API for Checkout ([#5587](https://github.com/vuestorefront/vue-storefront/pull/5587)) - [Fifciu](https://github.com/Fifciu) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | core @@ -291,7 +299,7 @@ - [BREAKING] fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist ([#5592](https://github.com/vuestorefront/vue-storefront/issues/5592)) - [Jakub Andrzejewski](https://github.com/Baroshem) - | Before | After | Comment | Module + | Before | After | Comment | Module | ------ | ----- | ------ | ------ | variables and methods had names isOnCart and isOnWishlist | variables and methods have names isInCart and isInWishlist | fix naming convention for isOnCart and isOnWishlist to isInCart and isInWishlist | useCart/useWishlist diff --git a/packages/core/health-check/package.json b/packages/core/health-check/package.json index bff5c9907f..ac4be4b0c2 100644 --- a/packages/core/health-check/package.json +++ b/packages/core/health-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/health-check", - "version": "1.0.0", + "version": "2.5.3", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/middleware/package.json b/packages/core/middleware/package.json index 5a8ab6f994..f9b33a661f 100644 --- a/packages/core/middleware/package.json +++ b/packages/core/middleware/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/middleware", - "version": "2.5.2", + "version": "2.5.3", "description": "", "main": "lib/index.cjs.js", "module": "lib/index.es.js", diff --git a/packages/core/nuxt-module/package.json b/packages/core/nuxt-module/package.json index 5a2ca7f22f..2cebf2f231 100644 --- a/packages/core/nuxt-module/package.json +++ b/packages/core/nuxt-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt", - "version": "2.5.2", + "version": "2.5.3", "description": "", "main": "lib/module.js", "scripts": { diff --git a/packages/core/nuxt-theme-module/package.json b/packages/core/nuxt-theme-module/package.json index 7674550b10..5075452da7 100644 --- a/packages/core/nuxt-theme-module/package.json +++ b/packages/core/nuxt-theme-module/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/nuxt-theme", - "version": "2.5.2", + "version": "2.5.3", "description": "", "main": "lib/module.js", "scripts": { From 0cfa516e1e45a854899d8e706171ceafac7709d9 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 17 Dec 2021 15:43:39 +0100 Subject: [PATCH 068/151] docs: separate commercetools from core docs (#6575) --- packages/core/docs/.gitignore | 3 - packages/core/docs/.vuepress/config.js | 244 ++++------ packages/core/docs/.vuepress/integrations.js | 2 +- .../commercetools/composables/use-billing.md | 95 ---- .../commercetools/composables/use-cart.md | 392 ---------------- .../commercetools/composables/use-category.md | 112 ----- .../commercetools/composables/use-facet.md | 269 ----------- .../composables/use-forgot-password.md | 184 -------- .../composables/use-make-order.md | 107 ----- .../commercetools/composables/use-product.md | 192 -------- .../commercetools/composables/use-review.md | 155 ------- .../composables/use-shipping-provider.md | 110 ----- .../commercetools/composables/use-shipping.md | 98 ---- .../commercetools/composables/use-store.md | 170 ------- .../composables/use-user-billing.md | 315 ------------- .../composables/use-user-order.md | 242 ---------- .../composables/use-user-shipping.md | 325 ------------- .../commercetools/composables/use-user.md | 162 ------- .../commercetools/composables/use-wishlist.md | 272 ----------- .../commercetools/essentials/configuration.md | 104 ----- .../commercetools/essentials/store-setup.md | 426 ----------------- .../commercetools/guide/authentication.md | 199 -------- .../core/docs/commercetools/guide/cart.md | 248 ---------- .../core/docs/commercetools/guide/checkout.md | 367 --------------- .../commercetools/guide/product-catalog.md | 236 ---------- .../docs/commercetools/guide/user-profile.md | 267 ----------- .../core/docs/commercetools/guide/wishlist.md | 430 ------------------ .../docs/commercetools/images/faceting.jpg | Bin 142306 -> 0 bytes .../images/setup-store/add-product-1.webp | Bin 8714 -> 0 bytes .../images/setup-store/add-product-2.webp | Bin 26872 -> 0 bytes .../images/setup-store/add-product-3.webp | Bin 13330 -> 0 bytes .../images/setup-store/add-product-4.webp | Bin 50030 -> 0 bytes .../images/setup-store/add-product-5.webp | Bin 29982 -> 0 bytes .../images/setup-store/api-client-2.webp | Bin 34420 -> 0 bytes .../images/setup-store/categories-search.webp | Bin 21018 -> 0 bytes .../images/setup-store/create-category-1.webp | Bin 22360 -> 0 bytes .../images/setup-store/create-category-2.webp | Bin 15298 -> 0 bytes .../images/setup-store/create-category-3.webp | Bin 28712 -> 0 bytes .../images/setup-store/customer_scopes.webp | Bin 21020 -> 0 bytes .../setup-store/international-countries.webp | Bin 4056 -> 0 bytes .../setup-store/international-currencies.webp | Bin 3896 -> 0 bytes .../setup-store/international-languages.webp | Bin 6768 -> 0 bytes .../setup-store/international-zones.webp | Bin 6122 -> 0 bytes .../images/setup-store/menu-add-category.webp | Bin 5958 -> 0 bytes .../images/setup-store/menu-add-product.webp | Bin 6328 -> 0 bytes .../setup-store/menu-developer-settings.webp | Bin 6426 -> 0 bytes .../setup-store/menu-product-types.webp | Bin 6458 -> 0 bytes .../setup-store/menu-project-settings.webp | Bin 6468 -> 0 bytes .../images/setup-store/product-status.webp | Bin 23856 -> 0 bytes .../images/setup-store/product-type-1.webp | Bin 12850 -> 0 bytes .../images/setup-store/product-type-2.webp | Bin 26338 -> 0 bytes .../setup-store/products-sidebar-signed.webp | Bin 5868 -> 0 bytes .../images/setup-store/server_scopes.webp | Bin 21222 -> 0 bytes .../images/setup-store/shipping-methods.webp | Bin 8580 -> 0 bytes .../images/setup-store/taxes.webp | Bin 7802 -> 0 bytes packages/core/docs/commercetools/index.md | 11 - .../docs/commercetools/reference/changelog.md | 341 -------------- .../reference/migrate/1.2.0-rc.2/index.md | 35 -- .../reference/migrate/1.2.0-rc.3/index.md | 18 - .../reference/migrate/1.2.0/index.md | 33 -- .../reference/migrate/1.3.0/index.md | 27 -- .../migrate/1.3.2/customer_scopes.jpg | Bin 46607 -> 0 bytes .../reference/migrate/1.3.2/index.md | 75 --- .../reference/migrate/1.3.2/server_scopes.jpg | Bin 45828 -> 0 bytes .../reference/migrate/1.3.3/index.md | 74 --- .../reference/migrate/1.4.0/index.md | 124 ----- .../commercetools/reference/migrate/index.md | 9 - packages/core/docs/package.json | 9 +- yarn.lock | 54 +-- 69 files changed, 103 insertions(+), 6433 deletions(-) delete mode 100644 packages/core/docs/commercetools/composables/use-billing.md delete mode 100644 packages/core/docs/commercetools/composables/use-cart.md delete mode 100644 packages/core/docs/commercetools/composables/use-category.md delete mode 100644 packages/core/docs/commercetools/composables/use-facet.md delete mode 100644 packages/core/docs/commercetools/composables/use-forgot-password.md delete mode 100644 packages/core/docs/commercetools/composables/use-make-order.md delete mode 100644 packages/core/docs/commercetools/composables/use-product.md delete mode 100644 packages/core/docs/commercetools/composables/use-review.md delete mode 100644 packages/core/docs/commercetools/composables/use-shipping-provider.md delete mode 100644 packages/core/docs/commercetools/composables/use-shipping.md delete mode 100644 packages/core/docs/commercetools/composables/use-store.md delete mode 100644 packages/core/docs/commercetools/composables/use-user-billing.md delete mode 100644 packages/core/docs/commercetools/composables/use-user-order.md delete mode 100644 packages/core/docs/commercetools/composables/use-user-shipping.md delete mode 100644 packages/core/docs/commercetools/composables/use-user.md delete mode 100644 packages/core/docs/commercetools/composables/use-wishlist.md delete mode 100644 packages/core/docs/commercetools/essentials/configuration.md delete mode 100644 packages/core/docs/commercetools/essentials/store-setup.md delete mode 100644 packages/core/docs/commercetools/guide/authentication.md delete mode 100644 packages/core/docs/commercetools/guide/cart.md delete mode 100644 packages/core/docs/commercetools/guide/checkout.md delete mode 100644 packages/core/docs/commercetools/guide/product-catalog.md delete mode 100644 packages/core/docs/commercetools/guide/user-profile.md delete mode 100644 packages/core/docs/commercetools/guide/wishlist.md delete mode 100644 packages/core/docs/commercetools/images/faceting.jpg delete mode 100644 packages/core/docs/commercetools/images/setup-store/add-product-1.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/add-product-2.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/add-product-3.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/add-product-4.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/add-product-5.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/api-client-2.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/categories-search.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/create-category-1.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/create-category-2.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/create-category-3.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/customer_scopes.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/international-countries.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/international-currencies.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/international-languages.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/international-zones.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/menu-add-category.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/menu-add-product.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/menu-developer-settings.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/menu-product-types.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/menu-project-settings.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/product-status.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/product-type-1.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/product-type-2.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/products-sidebar-signed.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/server_scopes.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/shipping-methods.webp delete mode 100644 packages/core/docs/commercetools/images/setup-store/taxes.webp delete mode 100644 packages/core/docs/commercetools/index.md delete mode 100644 packages/core/docs/commercetools/reference/changelog.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.2.0-rc.2/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.2.0-rc.3/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.2.0/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.3.0/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.3.2/customer_scopes.jpg delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.3.2/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.3.2/server_scopes.jpg delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.3.3/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/1.4.0/index.md delete mode 100644 packages/core/docs/commercetools/reference/migrate/index.md diff --git a/packages/core/docs/.gitignore b/packages/core/docs/.gitignore index 44d100ea99..91497a448a 100644 --- a/packages/core/docs/.gitignore +++ b/packages/core/docs/.gitignore @@ -1,5 +1,2 @@ .vuepress/dist -api.json -.vuepress/public/commercetools -commercetools/reference/api reference/api diff --git a/packages/core/docs/.vuepress/config.js b/packages/core/docs/.vuepress/config.js index d592d8fa4c..089705f450 100644 --- a/packages/core/docs/.vuepress/config.js +++ b/packages/core/docs/.vuepress/config.js @@ -112,155 +112,99 @@ module.exports = { { text: 'Demo', link: 'https://demo-ct.vuestorefront.io' }, { text: 'Roadmap', link: 'https://www.notion.so/vuestorefront/Vue-Storefront-2-Next-High-level-Roadmap-201cf06abb314b84ad01b7b8463c0437' } ], - sidebar: { - '/commercetools/': [ - { - title: 'Essentials', - collapsable: false, - children: [ - ['/commercetools/', 'Introduction'], - ['/commercetools/essentials/store-setup', 'Store setup'], - ['/commercetools/essentials/configuration', 'Configuration'] - ] - }, - { - title: 'How-to guides', - collapsable: true, - children: [ - ['/commercetools/guide/authentication', 'Authentication'], - ['/commercetools/guide/cart', 'Cart'], - ['/commercetools/guide/checkout', 'Checkout'], - ['/commercetools/guide/product-catalog', 'Product catalog'], - ['/commercetools/guide/user-profile', 'User profile'], - ['/commercetools/guide/wishlist', 'Wishlist'], - ] - }, - { - title: 'Composables', - collapsable: true, - children: [ - ['/commercetools/composables/use-billing', 'useBilling'], - ['/commercetools/composables/use-cart', 'useCart'], - ['/commercetools/composables/use-category', 'useCategory'], - ['/commercetools/composables/use-facet', 'useFacet'], - ['/commercetools/composables/use-forgot-password', 'useForgotPassword'], - ['/commercetools/composables/use-make-order', 'useMakeOrder'], - ['/commercetools/composables/use-product', 'useProduct'], - ['/commercetools/composables/use-review', 'useReview'], - ['/commercetools/composables/use-shipping-provider', 'useShippingProvider'], - ['/commercetools/composables/use-shipping', 'useShipping'], - ['/commercetools/composables/use-store', 'useStore'], - ['/commercetools/composables/use-user-billing', 'useUserBilling'], - ['/commercetools/composables/use-user-order', 'useUserOrder'], - ['/commercetools/composables/use-user-shipping', 'useUserShipping'], - ['/commercetools/composables/use-user', 'useUser'], - ['/commercetools/composables/use-wishlist', 'useWishlist'] - ] - }, - { - title: 'Reference', - collapsable: true, - children: [ - ['/commercetools/reference/api/', 'API Reference'], - ['/commercetools/reference/migrate/', 'Migration guide'], - ['/commercetools/reference/changelog', 'Changelog'] - ] - } - ], - '/': [ - { - title: '', - collapsable: false, - children: [ - ['/', '👋 Meet Vue Storefront'], - ['/general/installation', '💻 Installation'], - ['/integrations/', '🔌 Integrations'], - ['/general/enterprise', '🚀 Enterprise'], - ['/general/support', '🙋 Support'], - ] - }, - { - title: 'Getting started', - collapsable: false, - children: [ - ['/getting-started/introduction', 'Introduction'], - ['/getting-started/project-structure', 'Project structure'], - ['/getting-started/layouts-and-routing', 'Layouts and Routing'], - ['/getting-started/theme', 'Theme'], - ['/getting-started/configuration', 'Configuration'], - ['/getting-started/internationalization', 'Internationalization'], - ['/getting-started/logging', 'Logging'], - // ['/', 'Glossary'] - ] - }, - { - title: 'Composition', - collapsable: true, - children: [ - ['/composition/composition-api', 'Composition API'], - ['/composition/composables', 'Composables'], - ['/composition/getters', 'Getters'], - ['/composition/error-handling', 'Error Handling'], - ['/composition/creating-custom-composables', 'Creating custom composables'], - ['/composition/extending-graphql-queries', 'Extending GraphQL queries'] - ] - }, - { - title: 'Architecture', - collapsable: true, - children: [ - ['/architecture/networking', 'Networking'], - ['/architecture/application-context', 'Application context'], - ['/architecture/server-middleware', 'Server Middleware'] - ] - }, - { - title: 'Extending Vue Storefront', - collapsable: true, - children: [ - ['/integrate/extending-vue-storefront', 'Extending Vue Storefront'], - ['/integrate/extending-integrations', 'Extending integrations'], - ['/integrate/integration-guide', 'Integrating eCommerce platform'], - ['/integrate/cms', 'Integrating CMS platform'], - ['/integrate/cache-driver', 'Integrating cache driver'] - ] - }, - { - title: 'Performance', - collapsable: true, - children: [ - ['/performance/performance', 'Performance basics'], - ['/performance/ssr-cache', 'SSR cache'] - ] - }, - // { - // title: 'Deployment', - // collapsable: true, - // children: [ - // ['/', 'Deyploment basics'], - // ['/', 'Continuous Integration (CI)'], - // ['/', 'End-to-End testing (E2E)'] - // ] - // }, - { - title: 'Reference', - collapsable: true, - children: [ - ['/reference/api/', 'API Reference'], - ['/reference/migrate/', 'Migration guide'], - ['/reference/changelog', 'Changelog'] - ] - }, - { - title: 'Contributing', - collapsable: true, - children: [ - ['/contributing/', 'Contribution basics'], - ['/contributing/branching-model', 'Branching model'], - ['/contributing/how-to-submit-pull-request', 'How to submit a Pull Request'] - ] - } - ] - } + sidebar: [ + { + title: '', + collapsable: false, + children: [ + ['/', '👋 Meet Vue Storefront'], + ['/general/installation', '💻 Installation'], + ['/integrations/', '🔌 Integrations'], + ['/general/enterprise', '🚀 Enterprise'], + ['/general/support', '🙋 Support'], + ] + }, + { + title: 'Getting started', + collapsable: false, + children: [ + ['/getting-started/introduction', 'Introduction'], + ['/getting-started/project-structure', 'Project structure'], + ['/getting-started/layouts-and-routing', 'Layouts and Routing'], + ['/getting-started/theme', 'Theme'], + ['/getting-started/configuration', 'Configuration'], + ['/getting-started/internationalization', 'Internationalization'], + ['/getting-started/logging', 'Logging'], + // ['/', 'Glossary'] + ] + }, + { + title: 'Composition', + collapsable: true, + children: [ + ['/composition/composition-api', 'Composition API'], + ['/composition/composables', 'Composables'], + ['/composition/getters', 'Getters'], + ['/composition/error-handling', 'Error Handling'], + ['/composition/creating-custom-composables', 'Creating custom composables'], + ['/composition/extending-graphql-queries', 'Extending GraphQL queries'] + ] + }, + { + title: 'Architecture', + collapsable: true, + children: [ + ['/architecture/networking', 'Networking'], + ['/architecture/application-context', 'Application context'], + ['/architecture/server-middleware', 'Server Middleware'] + ] + }, + { + title: 'Extending Vue Storefront', + collapsable: true, + children: [ + ['/integrate/extending-vue-storefront', 'Extending Vue Storefront'], + ['/integrate/extending-integrations', 'Extending integrations'], + ['/integrate/integration-guide', 'Integrating eCommerce platform'], + ['/integrate/cms', 'Integrating CMS platform'], + ['/integrate/cache-driver', 'Integrating cache driver'] + ] + }, + { + title: 'Performance', + collapsable: true, + children: [ + ['/performance/performance', 'Performance basics'], + ['/performance/ssr-cache', 'SSR cache'] + ] + }, + // { + // title: 'Deployment', + // collapsable: true, + // children: [ + // ['/', 'Deyploment basics'], + // ['/', 'Continuous Integration (CI)'], + // ['/', 'End-to-End testing (E2E)'] + // ] + // }, + { + title: 'Reference', + collapsable: true, + children: [ + ['/reference/api/', 'API Reference'], + ['/reference/migrate/', 'Migration guide'], + ['/reference/changelog', 'Changelog'] + ] + }, + { + title: 'Contributing', + collapsable: true, + children: [ + ['/contributing/', 'Contribution basics'], + ['/contributing/branching-model', 'Branching model'], + ['/contributing/how-to-submit-pull-request', 'How to submit a Pull Request'] + ] + } + ] } }; diff --git a/packages/core/docs/.vuepress/integrations.js b/packages/core/docs/.vuepress/integrations.js index b073fd0174..aa659564fb 100644 --- a/packages/core/docs/.vuepress/integrations.js +++ b/packages/core/docs/.vuepress/integrations.js @@ -24,7 +24,7 @@ const INTEGRATIONS = { eCommerce: [ { name: 'commercetools', - link: '/v2/commercetools', + link: 'https://docs.vuestorefront.io/v2/commercetools/', image: 'https://uploads-ssl.webflow.com/5e90e5cd5f86784ad554a3c2/5ed627806456312e2aa80da9_1.commercetools_primary-logo_horizontal_RGB.svg', status: STATUSES.STABLE, availability: AVAILABILITY.ENTERPRISE, diff --git a/packages/core/docs/commercetools/composables/use-billing.md b/packages/core/docs/commercetools/composables/use-billing.md deleted file mode 100644 index 3107680865..0000000000 --- a/packages/core/docs/commercetools/composables/use-billing.md +++ /dev/null @@ -1,95 +0,0 @@ -# `useBilling` - -## Features - -`useBilling` composable can be used for: - -* Loading billing address for the current cart. -* Saving billing address for the current cart. - -## API - -- `load` - function for fetching billing address. When invoked, it requests data from the API and populates `billing` property. This method accepts a single optional `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - getBasicProfile: string - } - ``` - -- `save` - function for saving billing address. This method accepts a single `saveParams` object. The `saveParams` has the following options: - - - `billingDetails: Address` - - - `customQuery?: CustomQuery` - - ```ts - type Address = { - __typename?: "Address"; - id?: Maybe; - title?: Maybe; - salutation?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - streetName?: Maybe; - streetNumber?: Maybe; - additionalStreetInfo?: Maybe; - postalCode?: Maybe; - city?: Maybe; - region?: Maybe; - state?: Maybe; - country: Scalars["Country"]; - company?: Maybe; - department?: Maybe; - building?: Maybe; - apartment?: Maybe; - pOBox?: Maybe; - contactInfo: AddressContactInfo; - phone?: Maybe; - email?: Maybe; - additionalAddressInfo?: Maybe; - externalId?: Maybe; - key?: Maybe; - }; - - type CustomQuery = { - updateCart: string - } - ``` - -- `billing: Address` - a main data object that contains a billing address. - -- `loading: boolean` - a reactive object containing information about loading state of your `load` or `save` method. - -- `error: UseBillingErrors` - a reactive object containing the error message, if `load` or `save` failed for any reason. - - ```ts - interface UseBillingErrors { - load?: Error; - save?: Error; - } - ``` - -## Getters - -We do not provide getters for checkout and its parts. - -## Example - -```js -import { useBilling } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core' -export default { - setup () { - const { load, billing } = useBilling(); - onSSR(async () => { - await load(); - }); - return { - billing - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-cart.md b/packages/core/docs/commercetools/composables/use-cart.md deleted file mode 100644 index 682ae0c1bc..0000000000 --- a/packages/core/docs/commercetools/composables/use-cart.md +++ /dev/null @@ -1,392 +0,0 @@ -# `useCart` - -## Features - -`useCart` composable can be used to: - -* load cart information, -* add, update and remove items in the cart, -* applying and removing coupons, -* checking if the product is already added to the cart. - -## API - -- `cart: Cart` - a main data object. - - ```ts - type Cart = { - __typename?: "Cart"; - customerId?: Maybe; - customer?: Maybe; - customerEmail?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - customLineItems: Array; - totalPrice: Money; - taxedPrice?: Maybe; - shippingAddress?: Maybe
; - billingAddress?: Maybe
; - inventoryMode: InventoryMode; - taxMode: TaxMode; - taxRoundingMode: RoundingMode; - taxCalculationMode: TaxCalculationMode; - customerGroup?: Maybe; - customerGroupRef?: Maybe; - country?: Maybe; - shippingInfo?: Maybe; - discountCodes: Array; - refusedGifts: Array; - refusedGiftsRefs: Array; - paymentInfo?: Maybe; - locale?: Maybe; - shippingRateInput?: Maybe; - origin: CartOrigin; - storeRef?: Maybe; - store?: Maybe; - itemShippingAddresses: Array
; - cartState: CartState; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - deleteDaysAfterLastModification?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - ``` - -- `load` - function required to fetch cart from a server or create a brand new if it doesn't exist. This method accepts a single `params` object. The `params` has the following option: - - - `customQuery?: customQuery` - - ```ts - type CustomQuery = { - getBasicProfile: string - } - ``` - -- `addItem` - function for adding products to the cart. This method accepts a single `params` object. The `params` has the following options: - - - `product: ProductVariant` - - - `quantity: any` - - - `customQuery?: customQuery` - - ```ts - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - - type CustomQuery = { - updateCart: string - } - ``` - -- `updateItemQty` - function for updating a quantity of a product already in the cart. This method accepts a single `params` object. The `params` has the following options: - - - `product: LineItem` - - - `quantity: number` - - - `customQuery?: CustomQuery` - - ```ts - type LineItem = { - __typename?: "LineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - name?: Maybe; - nameAllLocales: Array; - productSlug?: Maybe; - productType?: Maybe; - productTypeRef?: Maybe; - variant?: Maybe; - price: ProductPrice; - taxedPrice?: Maybe; - totalPrice?: Maybe; - quantity: Scalars["Long"]; - state: Array; - taxRate?: Maybe; - supplyChannel?: Maybe; - supplyChannelRef?: Maybe; - distributionChannel?: Maybe; - distributionChannelRef?: Maybe; - discountedPricePerQuantity: Array; - lineItemMode: LineItemMode; - priceMode: LineItemPriceMode; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - shippingDetails?: Maybe; - inventoryMode?: Maybe; - customFieldList?: Maybe>; - } - - type CustomQuery = { - updateCart: string - } - ``` - -- `removeItem` - function for removing a product that currently is in the cart. This method accepts a single `params` object. The `params` has the following options: - - - `product: LineItem` - - - `customQuery?: CustomQuery` - - ```ts - type LineItem = { - __typename?: "LineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - name?: Maybe; - nameAllLocales: Array; - productSlug?: Maybe; - productType?: Maybe; - productTypeRef?: Maybe; - variant?: Maybe; - price: ProductPrice; - taxedPrice?: Maybe; - totalPrice?: Maybe; - quantity: Scalars["Long"]; - state: Array; - taxRate?: Maybe; - supplyChannel?: Maybe; - supplyChannelRef?: Maybe; - distributionChannel?: Maybe; - distributionChannelRef?: Maybe; - discountedPricePerQuantity: Array; - lineItemMode: LineItemMode; - priceMode: LineItemPriceMode; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - shippingDetails?: Maybe; - inventoryMode?: Maybe; - customFieldList?: Maybe>; - } - - type CustomQuery = { - updateCart: string - } - ``` - -- `isInCart` - function for checking if a product is currently in the cart. This method accepts a single `params` object. The `params` has the following option: - - - `product: ProductVariant` - - ```ts - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - ``` - -- `clear` - a function for removing all items currently stored in the cart. - -- `applyCoupon` - a function for applying a coupon to the cart. This method accepts a single `params` object. The `params` has the following options: - - - `couponCode: string` - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - updateCart: string - } - ``` - -- `removeCoupon` - a function for removing a coupon applied to the cart. This method accepts a single `params` object. The `params` has the following options: - - - `couponCode: string` - - - `customQuery?: CustomQuery` - - ```ts - interface AgnosticCoupon { - id: string; - name: string; - code: string; - value: number; - } - - type CustomQuery = { - updateCart: string - } - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of the cart. - -- `error: UseCartErrors` - reactive object containing the error message if some properties failed for any reason. - - ```ts - interface UseCartErrors { - addItem: Error; - removeItem: Error; - updateItemQty: Error; - load: Error; - clear: Error; - applyCoupon: Error; - removeCoupon: Error; - } - ``` - -## Getters - -- `getTotals` - returns cart totals. - -- `getShippingPrice` - returns current shipping price. - -- `getItems` - returns all items from cart. - -- `getItemName` - returns product name. - -- `getItemImage` - returns product image. - -- `getItemPrice` - returns product price. - -- `getItemQty` - returns product quantity. - -- `getItemAttributes` - returns product attribute. - -- `getItemSku` - returns product SKU. - -- `getTotalItems` - returns products amount. - -- `getFormattedPrice` - returns product price with currency sign. - -- `getCoupons` - returns applied coupons. - -- `getDiscounts` - returns all discounts. - - ```ts - interface CartGetters { - getTotals: (cart: Cart) => AgnosticTotals; - getShippingPrice: (cart: Cart) => number; - getItems: (cart: Cart) => LineItem; - getItemName: (product: LineItem) => string; - getItemImage: (product: LineItem) => string; - getItemPrice: (product: LineItem) => AgnosticPrice; - getItemQty: (product: LineItem) => number; - getItemAttributes: (product: LineItem, filterByAttributeName?: Array) => Record; - getItemSku: (product: LineItem) => string; - getTotalItems: (cart: Cart) => number; - getFormattedPrice: (price: number) => string; - getCoupons: (cart: Cart) => AgnosticCoupon[]; - getDiscounts: (cart: Cart) => AgnosticDiscount[]; - } - - type LineItem = { - __typename?: "LineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - name?: Maybe; - nameAllLocales: Array; - productSlug?: Maybe; - productType?: Maybe; - productTypeRef?: Maybe; - variant?: Maybe; - price: ProductPrice; - taxedPrice?: Maybe; - totalPrice?: Maybe; - quantity: Scalars["Long"]; - state: Array; - taxRate?: Maybe; - supplyChannel?: Maybe; - supplyChannelRef?: Maybe; - distributionChannel?: Maybe; - distributionChannelRef?: Maybe; - discountedPricePerQuantity: Array; - lineItemMode: LineItemMode; - priceMode: LineItemPriceMode; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - shippingDetails?: Maybe; - inventoryMode?: Maybe; - customFieldList?: Maybe>; - } - - interface AgnosticTotals { - total: number; - subtotal: number; - special?: number; - [x: string]: unknown; - } - - interface AgnosticPrice { - regular: number | null; - special?: number | null; - } - - interface AgnosticAttribute { - name?: string; - value: string | Record; - label: string; - } - - interface AgnosticCoupon { - id: string; - name: string; - code: string; - value: number; - } - - interface AgnosticDiscount { - id: string; - name: string; - description: string; - value: number; - code?: string; - } - ``` - -## Example - -```js -import { useCart, cartGetters } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core' - -export default { - setup () { - const { cart, removeItem, updateItemQty, load } = useCart(); - - onSSR(async () => { - await load(); - }) - - return { - removeItem, - updateItemQty, - products: computed(() => cartGetters.getItems(cart.value)), - totals: computed(() => cartGetters.getTotals(cart.value)), - totalItems: computed(() => cartGetters.getTotalItems(cart.value)) - } - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-category.md b/packages/core/docs/commercetools/composables/use-category.md deleted file mode 100644 index 645baf132a..0000000000 --- a/packages/core/docs/commercetools/composables/use-category.md +++ /dev/null @@ -1,112 +0,0 @@ -# `useCategory` - -## Features - -`useCategory` composable is responsible for fetching a list of categories. A common usage scenario for this composable is navigation. - -## API - -- `search` - the main querying function used to query categories from the eCommerce platform and populate the `categories` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. The `params` has the following options: - - - `searchParams` - - - `id: string` - - `slug: string` - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - categories: string - } - ``` - -- `categories: Category[]` - the main data object that contains an array of categories fetched by `search` method. - - ```ts - type Category = { - __typename?: "Category"; - id: Scalars["String"]; - key?: Maybe; - version: Scalars["Long"]; - name?: Maybe; - nameAllLocales: Array; - description?: Maybe; - descriptionAllLocales?: Maybe>; - slug?: Maybe; - slugAllLocales: Array; - ancestorsRef: Array; - ancestors: Array; - parentRef?: Maybe; - parent?: Maybe; - orderHint: Scalars["String"]; - externalId?: Maybe; - metaTitle?: Maybe; - metaKeywords?: Maybe; - metaDescription?: Maybe; - productCount: Scalars["Int"]; - stagedProductCount: Scalars["Int"]; - childCount: Scalars["Int"]; - children?: Maybe>; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - assets: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of your `search` method. - -- `error: UseCategoryErrors` - reactive object containing the error message, if `search` failed for any reason. - - ```ts - interface UseCategoryErrors { - search: Error; - } - ``` - -## Getters - -- `getTree` - returns category tree. - - ```ts - interface CategoryGetters { - getTree: (category: Category) => AgnosticCategoryTree | null; - } - - interface AgnosticCategoryTree { - label: string; - slug?: string; - items: AgnosticCategoryTree[]; - isCurrent: boolean; - count?: number; - [x: string]: unknown; - } - ``` - -## Example - -```js -import { useCategory } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core' - -export default { - setup () { - const { categories, search, loading } = useCategory('menu-categories'); - - onSSR(async () => { - await search({}); - }); - - return { - categories, - loading - } - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-facet.md b/packages/core/docs/commercetools/composables/use-facet.md deleted file mode 100644 index ccd81eed38..0000000000 --- a/packages/core/docs/commercetools/composables/use-facet.md +++ /dev/null @@ -1,269 +0,0 @@ -# `useFacet` - -## Features - -`useFacet` composition function can be used to fetch data related to: - -* products, -* categories, -* breadcrumbs. - -What makes it powerful is the ability to accept multiple filters, allowing to narrow down the results to a specific category, search term, etc. - -## API - -`useFacet` contains the following properties: - -- `search` - function for searching and classifying records, allowing users to browse the catalog data. It accepts a single object as a parameter with following signature: - - ```ts - interface AgnosticFacetSearchParams { - categorySlug?: string; - rootCatSlug?: string; - term?: string; - page?: number; - itemsPerPage?: number; - sort?: string; - filters?: Record; - metadata?: any; - [x: string]: any; - } - ``` - -- `result` - reactive data object containing the response from the backend. - -- `loading` - reactive object containing information about the loading state of `search`. - -- `error` - reactive object containing the error message if `search` failed for any reason. - - ```ts - interface UseFacetErrors { - search: Error; - } - ``` - -## Getters -Because the `result` property is a raw response with some additional properties, it's recommended to use `facetGetters` for accessing any data from it. It includes the following helper functions: - -- `getAll` - returns all available facets. - -- `getGrouped` - returns grouped facets by facet name. - -- `getCategoryTree` - return the tree of nested categories. - -- `getSortOptions` - returns available and currently selected sorting options. - -- `getProducts` - returns products matching current filters. - -- `getPagination` - returns pagination information. - -- `getBreadcrumbs` - returns breadcrumbs information. - - ```ts - interface FacetsGetters { - getAll: (searchData: SearchData, criteria?: string[]) => AgnosticFacet[]; - getGrouped: (searchData: SearchData, criteria?: string[]) => AgnosticGroupedFacet[]; - getCategoryTree: (searchData: SearchData) => AgnosticCategoryTree; - getSortOptions: (searchData: SearchData) => AgnosticSort; - getProducts: (searchData: SearchData) => ProductVariant[]; - getPagination: (searchData: SearchData) => AgnosticPagination; - getBreadcrumbs: (searchData: SearchData) => AgnosticBreadcrumb[]; - } - - interface AgnosticFacet { - type: string; - id: string; - value: any; - attrName?: string; - count?: number; - selected?: boolean; - metadata?: any; - } - - interface AgnosticGroupedFacet { - id: string; - label: string; - count?: number; - options: AgnosticFacet[]; - } - - interface AgnosticCategoryTree { - label: string; - slug?: string; - items: AgnosticCategoryTree[]; - isCurrent: boolean; - count?: number; - [x: string]: unknown; - } - - interface AgnosticSort { - options: AgnosticFacet[]; - selected: string; - } - - type SearchData = FacetSearchResult - - interface FacetSearchResult { - data; - input: AgnosticFacetSearchParams; - } - - interface AgnosticFacetSearchParams { - categorySlug?: string; - rootCatSlug?: string; - term?: string; - page?: number; - itemsPerPage?: number; - sort?: string; - filters?: Record; - metadata?: any; - [x: string]: any; - } - - interface AgnosticPagination { - currentPage: number; - totalPages: number; - totalItems: number; - itemsPerPage: number; - pageOptions: number[]; - } - - interface AgnosticBreadcrumb { - text: string; - link: string; - } - - interface FacetResultsData { - products: ProductVariant[]; - categories: Category[]; - facets: Record; - total: number; - perPageOptions: number[]; - itemsPerPage: number; - } - - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - ``` - -## Configuration - -Faceting configuration can be modified to change available sorting options, filters, etc. It must be passed to: -- `@vsf-enterprise/ct-faceting/nuxt` module in `nuxt.config.js`. -- `@vsf-enterprise/ct-faceting/server` integration in `middleware.config.js`. - -::: warning Keep your configuration synchronized -Parts of the configuration marked as `` must be identical in both files. -::: - -```javascript -// nuxt.config.js -export default { - buildModules: [ - ['@vsf-enterprise/ct-faceting/nuxt', { - // - }], - ] -}; - -// middleware.config.js -module.exports = { - integrations: { - ctf: { - location: '@vsf-enterprise/ct-faceting/server', - configuration: { - api: { - authHost: "", - projectKey: "", - clientId: "", - clientSecret: "", - scopes: [ - "" - ], - }, - faceting: { - host: "" - }, - // - } - } - } -}; -``` - -If the explicit configuration is not provided in place of ``, the following defaults will be used: - -```javascript -{ - pageOptions: [20, 50, 100], - subcategoriesLimit: 100, - availableFacets: [ - { facet: 'categories.id', type: 'string', option: 'subtree("*")', name: 'category', filteringStrategy: 'query' }, // Don't change the "name" of this facet - { facet: 'variants.attributes.size', type: 'string', option: '', name: 'size' }, - { facet: 'variants.attributes.color.key', type: 'string', option: '', name: 'color' } - ], - sortingOptions: [ - { id: 'latest', name: 'Latest', facet: 'createdAt', direction: 'desc' }, - { id: 'price-up', name: 'Price from low to high', facet: 'price', direction: 'asc' }, - { id: 'price-down', name: 'Price from high to low', facet: 'price', direction: 'desc' }, - { id: 'relevance', name: 'Relevance', facet: 'score', direction: 'desc' }, - ], - filteringStrategy: 'filter' -} -``` - -- `pageOptions` - an array of number of elements displayed per page. -- `subcategoriesLimit` - the maximum number of subcategories displayed for any given category. -- `availableFacets` - an array of filters available to the user. - - `facet` - facet expressions described on [this page](https://docs.commercetools.com/api/projects/products-search#termfacetexpression). - - `type` - `facet` data type. Valid values are `string`, `date`, `time`, `datetime`, `boolean` or `number`. - - `option` - filtering options described on [this page](https://docs.commercetools.com/api/projects/products-search#filters). - - `name` - facet alias described on [this page](https://docs.commercetools.com/api/projects/products-search#alias). `category` alias for the first facet shown above is a constant and shouldn't be changed. - - `filteringStrategy` - scope applied to this specific filter. Possible values are `filter`, `query` or `facets`. For more information refer to [this page](https://docs.commercetools.com/api/projects/products-search#filters). -- `sortingOptions` - an array of sorting options available to the user. - - `id` - unique `identifier` for the option. - - `name` - label for the option. - - `facet` - the name of the field to sort by. For more information refer to [this page](https://docs.commercetools.com/api/projects/products-search#sorting). - - `direction` - sorting direction. Valid values are `asc` or `desc`. -- `filteringStrategy` - fallback scope applied to the facets that don't have strategy defined. Possible values are `filter`, `query` or `facets`. For more information refer to [this page](https://docs.commercetools.com/api/projects/products-search#filters). - -## Example - -```js -import { useFacet, facetGetters } from '@vsf-enterprise/commercetools'; - -setup(props, context) { - const { result, search, loading } = useFacet(); - - onSSR(async () => { - await search({ - categorySlug: 'clothing', - sort: 'latest', - itemsPerPage: 10, - term: 'some search query' - }); - }); - - return { - products: computed(() => facetGetters.getProducts(result.value)), - categoryTree: computed(() => facetGetters.getCategoryTree(result.value)), - breadcrumbs: computed(() => facetGetters.getBreadcrumbs(result.value)), - sortBy: computed(() => facetGetters.getSortOptions(result.value)), - facets: computed(() => facetGetters.getGrouped(result.value, ['color', 'size'])), - pagination: computed(() => facetGetters.getPagination(result.value)), - loading - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-forgot-password.md b/packages/core/docs/commercetools/composables/use-forgot-password.md deleted file mode 100644 index 0b114c69b1..0000000000 --- a/packages/core/docs/commercetools/composables/use-forgot-password.md +++ /dev/null @@ -1,184 +0,0 @@ -# `useForgotPassword` - -## Features - -`useForgotPassword` composable can be used to: - -* generate reset password token -* set new password using token - -## API - -- `request` - function to generate reset password token. When invoked, it requests data from the API and populates the `token` property. This method accepts a single `params` object with the following properties: - - - `params: ResetPasswordParams` - - - `customQuery?: CustomQuery` - - ```typescript - interface ResetPasswordParams { - email: string; - } - - type CustomQuery = { - customerCreatePasswordResetToken: string - } - ``` - -- `setNew` - function to set new user password after `request`. When invoked, it requests data from the API and populates the `result` object. This method accepts a single `params` object with the following properties: - - - `params: SetNewPasswordParams` - - - `customQuery?: CustomQuery` - - ```typescript - interface SetNewPasswordParams { - tokenValue: string; - newPassword: string; - } - - type CustomQuery = { - customerResetPassword: string - } - ``` - -- `token: string` - reactive data string containing the reset token. - -- `loading: boolean` - reactive object containing information about loading state of `setNew` and `request` methods. - -- `error: UseForgotPasswordErrors` - reactive object containing the error message, if `setNew` or `request` failed for any reason. - - ```ts - interface UseForgotPasswordErrors { - request: Error; - setNew: Error; - } - ``` - -## Getters - -- `getResetPasswordToken` - returns generated reset password token. - -- `isPasswordChanged` - returns a boolean value of a password set status. - - ```ts - interface ForgotPasswordGetters { - getResetPasswordToken: (result: ForgotPasswordResult) => string - isPasswordChanged: (result: ForgotPasswordResult) => boolean - } - - interface ForgotPasswordResult { - resetPasswordResult: CreatePasswordResetTokenResponse; - setNewPasswordResult: ResetPasswordResponse; - } - - type CreatePasswordResetTokenResponse = QueryResponse<'customerCreatePasswordResetToken', CustomerPasswordToken>; - - type ResetPasswordResponse = QueryResponse<'customerResetPassword', Customer>; - - type CustomerPasswordToken = { - customerId: Scalars["String"]; - expiresAt: Scalars["DateTime"]; - value: Scalars["String"]; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - } - - type Customer = Versioned & { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - /** This field contains non-typed data. Consider using `customFields` as a typed alternative. */ - customFieldsRaw?: Maybe>; - /** This field would contain type data */ - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - /** Custom fields are returned as a list instead of an object structure. */ - customFieldList?: Maybe>; - }; - ``` - -## Example - -Requesting reset password token and setting new user password. - -```vue - - - -``` diff --git a/packages/core/docs/commercetools/composables/use-make-order.md b/packages/core/docs/commercetools/composables/use-make-order.md deleted file mode 100644 index c0d0d06ca8..0000000000 --- a/packages/core/docs/commercetools/composables/use-make-order.md +++ /dev/null @@ -1,107 +0,0 @@ -# `useMakeOrder` - -## Features - -`useMakeOrder` composable is responsible for making an order - -## API - -- `make` - function for making an order. This method accepts a single optional `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - createMyOrderFromCart: string - } - ``` - -- `order: Order` - a main data object that contains a made order. - - ```ts - type Order = Versioned & { - __typename?: "Order"; - customerId?: Maybe; - customer?: Maybe; - customerEmail?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - customLineItems: Array; - totalPrice: Money; - taxedPrice?: Maybe; - shippingAddress?: Maybe
; - billingAddress?: Maybe
; - inventoryMode: InventoryMode; - taxMode: TaxMode; - taxRoundingMode: RoundingMode; - taxCalculationMode: TaxCalculationMode; - customerGroup?: Maybe; - customerGroupRef?: Maybe; - country?: Maybe; - shippingInfo?: Maybe; - discountCodes: Array; - refusedGifts: Array; - refusedGiftsRefs: Array; - paymentInfo?: Maybe; - locale?: Maybe; - shippingRateInput?: Maybe; - origin: CartOrigin; - storeRef?: Maybe; - store?: Maybe; - itemShippingAddresses: Array
; - completedAt?: Maybe; - orderNumber?: Maybe; - orderState: OrderState; - stateRef?: Maybe; - state?: Maybe; - shipmentState?: Maybe; - paymentState?: Maybe; - syncInfo: Array; - returnInfo: Array; - lastMessageSequenceNumber: Scalars["Long"]; - cartRef?: Maybe; - cart?: Maybe; - /** This field contains non-typed data. Consider using `customFields` as a typed alternative. */ - customFieldsRaw?: Maybe>; - /** This field would contain type data */ - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - /** Custom fields are returned as a list instead of an object structure. */ - customFieldList?: Maybe>; - }; - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of your `make` method. - -- `error: UseMakeOrderErrors` - a reactive object containing the error message, if `load` or `save` failed for any reason. - - ```ts - interface UseMakeOrderErrors { - make?: Error; - } - ``` - -## Getters - -We do not provide getters for checkout and its parts. - -## Example - -```js -import { useMakeOrder } from '@vue-storefront/commercetools'; -export default { - setup () { - const { make, order } = useMakeOrder(); - return { - make, - order - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-product.md b/packages/core/docs/commercetools/composables/use-product.md deleted file mode 100644 index b92de6015b..0000000000 --- a/packages/core/docs/commercetools/composables/use-product.md +++ /dev/null @@ -1,192 +0,0 @@ -# `useProduct` - -## Features - -`useProduct` composable is responsible for fetching a list of products. - -## API - -- `search` - the main querying function used to query products from the eCommerce platform and populate the `products` object with the result. Every time you invoke this function API request is made. This method accepts a single `params` object. The `params` has the following options: - - - `searchParams: ProductsSearchParams` - - - `customQuery?: CustomQuery` - - ```ts - interface ProductsSearchParams { - perPage?: number; - page?: number; - sort?: any; - term?: any; - filters?: Record; - catId?: string | string[]; - skus?: string[]; - slug?: string; - id?: string; - } - - type CustomQuery = { - products: string - } - ``` - -- `products: ProductVariant[]` - the main data object that contains an array of products fetched by `search` method. - - ```ts - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of your `search` method. - -- `error: UseProductErrors` - reactive object containing the error message, if `search` failed for any reason. - - ```ts - interface UseProductErrors { - search: Error; - } - ``` - -## Getters - -- `getName` - returns product name. - -- `getSlug` - returns product slug. - -- `getPrice` - returns product price. - -- `getGallery` - returns product gallery. - -- `getCoverImage` - returns cover image of product. - -- `getFiltered` - returns filtered product. - -- `getAttributes` - returns product attributes. - -- `getDescription` - returns product description. - -- `getCategoryIds` - returns all product categories. - -- `getId` - returns product ID. - -- `getFormattedPrice` - returns product price with currency sign. - -- `getTotalReviews` - returns total number of reviews product has. - -- `getAverageRating` - returns average rating from all reviews. - - ```ts - interface ProductGetters { - getName: (product: ProductVariant | Readonly) => string; - getSlug: (product: ProductVariant | Readonly) => string; - getPrice: (product: ProductVariant | Readonly) => AgnosticPrice; - getGallery: (product: ProductVariant) => AgnosticMediaGalleryItem[]; - getCoverImage: (product: ProductVariant) => string; - getFiltered: (products: ProductVariant[], filters: ProductVariantFilters | any = {}) => ProductVariant[]; - getAttributes: (products: ProductVariant[] | ProductVariant, filterByAttributeName?: string[]) => Record; - getDescription: (product: ProductVariant) => string; - getCategoryIds: (product: ProductVariant) => string[]; - getId: (product: ProductVariant) => string; - getFormattedPrice: (price: number) => string; - getTotalReviews: (product: ProductVariant) => number; - getAverageRating: (product: ProductVariant) => number; - } - - interface AgnosticPrice { - regular: number | null; - special?: number | null; - } - - interface AgnosticMediaGalleryItem { - small: string; - normal: string; - big: string; - } - - interface AgnosticAttribute { - name?: string; - value: string | Record; - label: string; - } - - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - - interface ProductVariantFilters { - master?: boolean; - attributes?: Record; - } - ``` - -## Examples - -```js -// search single product -import { useProduct, productGetters } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core' -import { computed } from '@nuxtjs/composition-api'; - -export default { - setup () { - const { products, search, loading, error } = useProduct(''); - - onSSR(async () => { - await search({ slug: 'super-t-shirt' }) - }) - - return { - loading, - error, - product: computed(() => productGetters.getFiltered(products.value, { master: true, attributes: context.root.$route.query })[0]), - option: computed(() => productGetters.getAttributes(products.value, ['color', 'size'])), - configuration: computed(() => productGetters.getCategoryIds(product.value)) - } - } -} -``` - -```js -// search products by ids -import { useProduct, productGetters } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -import { computed } from '@nuxtjs/composition-api'; - -export defaut { - setup () { - const { products, search } = useProduct(''); - - onSSR(async () => { - await search({ ids: ['id-1', 'id-2'] }); - }); - - return { - products, - masterProducts: computed(() => productGetters.getFiltered(products.value, { master: true })) - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-review.md b/packages/core/docs/commercetools/composables/use-review.md deleted file mode 100644 index 24912ac169..0000000000 --- a/packages/core/docs/commercetools/composables/use-review.md +++ /dev/null @@ -1,155 +0,0 @@ -# `useReview` - -## Features - -`useReview` composable can be used to: - -* fetch: - * reviews list, - * average rating, - * rating distribution (number of reviews per rate). -* submit new reviews. - -## API - -- `search` - function for fetching review data. When invoked, it requests data from the API and populates `reviews` property. This method accepts a single params object. The `params` has the following option: - - - `productId: string` - - - `limit?: number` - - - `offset?: number` - - - `customQuery?: CustomQuery` - - ```typescript - type CustomQuery = { - reviews: string - } - ``` - -- `addReview` - function for posting new review. When invoked, it submits data to the API and populates `reviews` property with updated information. This method accepts a single params object. The `params` has the following options: - - - `productId: string` - - - `limit?: number` - - - `offset?: number` - - - `draft: ReviewDraft` - - - `customQuery?: CustomQuery` - - ```typescript - interface ReviewDraft { - authorName: string; - text: string; - rating: number; - } - - type CustomQuery = { - addReview: string - } - ``` - -- `reviews: Review[]` - reactive data object containing the response from the backend. - - ```ts - type Review = any; - ``` - -- `loading: boolean` - reactive object containing information about loading state of `search` and `addReview` methods. - -- `error: UseReviewErrors` - reactive object containing the error message, if `search` or `addReview` failed for any reason. - - ```ts - interface UseReviewErrors { - search: Error; - addReview: Error; - } - ``` - -## Getters - -- `getItems` - returns list of reviews. - -- `getTotalReviews` - returns total number of reviews product has. - -- `getAverageRating` - returns average rating from all reviews. - -- `getRatesCount` - returns rating distribution (number of reviews per rate). - -- `getReviewsPage` - returns current page, if results are paginated. - -- `getReviewId` - returns unique ID from an individual review item. - -- `getReviewAuthor` - returns author name from an individual review item. - -- `getReviewMessage` - returns message from an individual review item. - -- `getReviewRating` - returns rating from an individual review item. - -- `getReviewDate` - returns creation date from an individual review item. - - ```typescript - interface ReviewGetters { - getItems: (review: ReviewResponse) => Review[]; - getTotalReviews: (review: ReviewResponse) => number; - getAverageRating: (review: ReviewResponse) => number; - getRatesCount: (review: ReviewResponse) => AgnosticRateCount[]; - getReviewsPage: (review: ReviewResponse) => number; - getReviewId: (item: Review) => string; - getReviewAuthor: (item: Review) => string; - getReviewMessage: (item: Review) => string; - getReviewRating: (item: Review) => number; - getReviewDate: (item: Review) => string; - } - - type ReviewResponse = { - results: Review[], - total: number; - limit: number; - offset: number; - averageRating: number; - ratingsDistribution: { - [rating: number]: number; - }; - } - - type Review = any; - - interface AgnosticRateCount { - rate: number; - count: number; - } - ``` - -## Example - -```typescript -import { onSSR } from '@vue-storefront/core'; -import { useReview, reviewGetters } from '@vsf-enterprise/commercetools'; - -export default { - setup() { - const { - reviews, - search, - loading, - error - } = useReview(''); - - onSSR(async () => { - await search({ productId: '' }); - }); - - return { - reviews: computed(() => reviewGetters.getItems(reviews.value)), - averageRating: computed(() => reviewGetters.getAverageRating(reviews.value)), - totalReviews: computed(() => reviewGetters.getTotalReviews(reviews.value)), - loading, - error - }; - } -}; -``` diff --git a/packages/core/docs/commercetools/composables/use-shipping-provider.md b/packages/core/docs/commercetools/composables/use-shipping-provider.md deleted file mode 100644 index dd1d92b219..0000000000 --- a/packages/core/docs/commercetools/composables/use-shipping-provider.md +++ /dev/null @@ -1,110 +0,0 @@ -# `useShippingProvider` - -## Features - -`useShippingProvider` composable can be used for: - -* Loading shipping methods for the current cart. -* Selecting shipping method for the current cart. - -## API - -- `load` - function for fetching shipping method. When invoked, it requests data from the API and populates the `response` key inside the `state` property. This method accepts a single optional `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - getBasicProfile: string - } - ``` - -- `save` - a function for selecting a shipping method. This method accepts a single `saveParams` object. The `saveParams` has the following options: - - - `shippingMethod: ShippingMethod` - - - `customQuery?: CustomQuery` - - ```ts - type ShippingMethod = Versioned & { - __typename?: "ShippingMethod"; - id: Scalars["String"]; - version: Scalars["Long"]; - name: Scalars["String"]; - description?: Maybe; - zoneRates: Array; - isDefault: Scalars["Boolean"]; - predicate?: Maybe; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - key?: Maybe; - lastModifiedBy?: Maybe; - createdBy?: Maybe; - taxCategoryRef?: Maybe; - taxCategory?: Maybe; - }; - - type CustomQuery = { - updateCart: string - } - ``` - -- `state: ShippingProviderState` - a main data object that contains a shipping method - - ```ts - interface ShippingProviderState { - response: ShippingInfo - } - - type ShippingInfo = { - __typename?: "ShippingInfo"; - shippingMethodName: Scalars["String"]; - price: Money; - shippingRate: ShippingRate; - taxRate?: Maybe; - taxCategory?: Maybe; - deliveries: Array; - discountedPrice?: Maybe; - taxedPrice?: Maybe; - shippingMethodState: ShippingMethodState; - shippingMethod?: Maybe; - shippingMethodRef?: Maybe; - }; - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of your `load` or `save` method. - -- `error: UseShippingProviderErrors` - a reactive object containing the error message, if `load` or `save` failed for any reason. - - ```ts - interface UseShippingProviderErrors { - load?: Error; - save?: Error; - } - ``` - -## Getters - -We do not provide getters for checkout and its parts. - -## Example - -```js -import { useShippingProvider } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -import { computed } from '@nuxtjs/composition-api'; - -export default { - setup () { - const { load, state } = useShippingProvider(); - - onSSR(async () => { - await load(); - }); - - return { - selectedShippingMethod: computed(() => state.value && state.value.response) - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-shipping.md b/packages/core/docs/commercetools/composables/use-shipping.md deleted file mode 100644 index 1c71e5a071..0000000000 --- a/packages/core/docs/commercetools/composables/use-shipping.md +++ /dev/null @@ -1,98 +0,0 @@ -# `useShipping` - -## Features - -`useShipping` composable can be used for: - -* Loading shipping address for the current cart. -* Saving shipping address for the current cart. - -## API - -- `load` - function for fetching shipping address. When invoked, it requests data from the API and populates `shipping` property. This method accepts a single optional `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - getBasicProfile: string - } - ``` - -- `save` - function for saving shipping address. This method accepts a single `saveParams` object. The `saveParams` has the following options: - - - `shippingDetails: Address` - - - `customQuery?: CustomQuery` - - ```ts - type Address = { - __typename?: "Address"; - id?: Maybe; - title?: Maybe; - salutation?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - streetName?: Maybe; - streetNumber?: Maybe; - additionalStreetInfo?: Maybe; - postalCode?: Maybe; - city?: Maybe; - region?: Maybe; - state?: Maybe; - country: Scalars["Country"]; - company?: Maybe; - department?: Maybe; - building?: Maybe; - apartment?: Maybe; - pOBox?: Maybe; - contactInfo: AddressContactInfo; - phone?: Maybe; - email?: Maybe; - additionalAddressInfo?: Maybe; - externalId?: Maybe; - key?: Maybe; - }; - - type CustomQuery = { - updateCart: string - } - ``` - -- `shipping: Address` - the main data object that contains a shipping address. - -- `loading: boolean` - a reactive object containing information about the loading state of your `load` or `save` method. - -- `error: UseShippingErrors` - a reactive object containing the error message if `load` or `save` failed for any reason. - - ```ts - interface UseShippingErrors { - load?: Error; - save?: Error; - } - ``` - -## Getters - -We do not provide getters for checkout and its parts. - -## Example - -```js -import { useShipping } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { load, shipping } = useShipping(); - - onSSR(async () => { - await load(); - }); - - return { - shipping - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-store.md b/packages/core/docs/commercetools/composables/use-store.md deleted file mode 100644 index 4c8ce80f41..0000000000 --- a/packages/core/docs/commercetools/composables/use-store.md +++ /dev/null @@ -1,170 +0,0 @@ -# `useStore` - -## Features - -`useStore` composable can be used for: - -* Loading available stores with related channels. -* Change and save selected store / channel. - -## API - -- `load` - function for fetching stores data. When invoked, it requests data from the API and populates `response` property. This method accepts a single optional `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - [key: string]: string - } - ``` - -- `change` - function for changing and saving selected store / channel. This method accepts a single params object. The params has the following options: - - - `currentStore: AgnosticStore` - - - `store: AgnosticStore` - - - `customQuery?: CustomQuery` - - ```ts - interface AgnosticStore { - name: string; - id: string; - description?: string; - locales?: AgnosticLocale[]; - currencies?: AgnosticCurrency[] - address?: AgnosticAddress; - geoLocation?: AgnosticGeoLocation; - [x: string]: unknown; - } - ``` - -- `response` - a main data object that contains loaded stores data. - - ```ts - type StoreQueryResult = { - offset: Scalars["Int"]; - count: Scalars["Int"]; - total: Scalars["Long"]; - results: Array; - }; - - export type Store = { - id: Scalars["String"]; - version: Scalars["Long"]; - key: Scalars["String"]; - name?: Maybe; - nameAllLocales?: Maybe>; - languages?: Maybe>; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - distributionChannels: Array; - supplyChannels: Array; - }; - ``` - -- `loading: boolean` - a reactive object containing information about loading state of your `load` method. - -- `error: UseShippingErrors` - a reactive object containing the error message, if `load` or `save` failed for any reason. - - ```ts - export interface UseStoreErrors { - load: Error | null; - change: Error | null; - } - ``` - -## Getters - -`storeGetter` object contains following methods: - -- `getItems` - returns list of stores as `AgnosticStore` array. - -- `getSelected` - returns selected store as `AgnosticStore`. - - -Related references: - - [storeGetter](/commercetools/api-reference/commercetools.storegetters.html) - - [UseStoreGetters](/reference/api/core.usestoregetters.html) - - [StoresData](/commercetools/api-reference/commercetools.storesdata.html) - - ```typescript - export interface useStoreGetters { - getItems(stores: StoresData, criteria?: CRITERIA): AgnosticStore[]; - getSelected(stores: StoresData): AgnosticStore | undefined - } - - export interface StoresData extends StoreQueryResult { - _selectedStore: string; - } - - export type StoreQueryResult = { - __typename?: "StoreQueryResult"; - offset: Scalars["Int"]; - count: Scalars["Int"]; - total: Scalars["Long"]; - results: Array; - } - - export interface AgnosticStore { - name: string; - id: string; - description?: string; - locales?: AgnosticLocale[]; - currencies?: AgnosticCurrency[] - address?: AgnosticAddress; - geoLocation?: AgnosticGeoLocation; - [x: string]: unknown; - } - - export interface AgnosticLocale { - code: string; - label: string; - [x: string]: unknown; - } - - export interface AgnosticCurrency { - code: string; - label: string; - prefixSign: boolean; - sign: string; - [x: string]: unknown; - } - - export interface AgnosticAddress { - addressLine1: string; - addressLine2: string; - [x: string]: unknown; - } - - export interface AgnosticGeoLocation { - type: string; - coordinates?: unknown; - [x: string]: unknown; - } - ``` - -## Example - -```js -import { useStore, storeGetters } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { load, response } = useStore(); - - onSSR(async () => { - await load(); - }); - - return { - stores: storesGetters.getItems(response.value), - sselectedStore: storesGetters.getSelected(response.value) - }; - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-user-billing.md b/packages/core/docs/commercetools/composables/use-user-billing.md deleted file mode 100644 index 91ff7b15aa..0000000000 --- a/packages/core/docs/commercetools/composables/use-user-billing.md +++ /dev/null @@ -1,315 +0,0 @@ -# `useUserBilling` - -## Features - -`useUserBilling` composable can be used to: - -* fetch existing billing addresses, -* submit new billing addresses, -* modify and delete existing billing addresses. - -## API - -- `load` - function for fetching user addresses. When invoked, it requests data from the API and populates `billing` property. - -- `addAddress` - function for posting new billing address. This method accepts a single `params` object. The `params` has the following options: - - - `address: BillingAddressAddParams` - - - `customQuery?: customQuery` - - ```typescript - interface BillingAddressAddParams { - address: { - firstName: string; - lastName: string; - streetName: string; - postalCode: string; - city: string; - state: string; - country: string; - apartment: string; - phone: string; - isDefault?: boolean; - } - } - type customQuery = { - addBillingAddress: string - } - ``` - -- `deleteAddress` - a function for deleting existing billing address. This method accepts a single `params` object. The `params` has the following options: - - - `address: BillingAddressDeleteParams` - - - `customQuery?: customQuery` - - ```typescript - interface BillingAddressDeleteParams { - address: { - id: string; - } - } - type customQuery = { - deleteBillingAddress: string - } - ``` - -- `updateAddress` - a function for updating existing billing address. This method accepts a single `params` object. The `params` has the following options: - - - `address: BillingAddressUpdateParams` - - - `customQuery?: customQuery` - - ```typescript - interface BillingAddressUpdateParams { - address: { - id: string; - firstName: string; - lastName: string; - streetName: string; - postalCode: string; - city: string; - state: string; - country: string; - apartment: string; - phone: string; - isDefault?: boolean; - } - } - type customQuery = { - updateBillingAddress: string - } - ``` - -- `setDefaultAddress` - a function for settings an existing billing address as default. This method accepts a single `params` object. The `params` has the following options: - - - `address: BillingAddressSetDefaultParams` - - - `customQuery?: customQuery` - - ```typescript - interface BillingAddressSetDefaultParams { - address: { - id: string; - } - } - type customQuery = { - setDefaultBillingAddress: string - } - ``` - -- `billing: User` - a reactive data object containing response from the backend. - - ```ts - type Customer = { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - - type User = Customer; - ``` - -- `loading: boolean` - a reactive object containing information about loading state of `load`, `addAddress`, `deleteAddress`, `updateAddress` and `setDefaultAddress` methods. - -- `error: UseUserBillingErrors` - a reactive object containing the error message if some properties failed for any reason. - -## Getters - -- `getAddresses` - returns list of billing addresses. - -- `getDefault` - returns a default billing address. - -- `getTotal` - returns a total number of billing addresses the user has. - -- `getId` - returns id from an individual address. - -- `getPostCode` - returns post code from an individual address. - -- `getStreetName` - returns street name from an individual address. - -- `getStreetNumber` - returns street number from an individual address. - -- `getCity` - returns city name from an individual address. - -- `getFirstName` - returns first name from an individual address. - -- `getLastName` - returns last name from an individual address. - -- `getCountry` - returns country name from an individual address. - -- `getPhone` - return phone number from an individual address. - -- `getEmail` - returns e-mail address from an individual address. - -- `getProvince` - returns province (state) from an individual address. - -- `getCompanyName` - returns company name from an individual address. - -- `getTaxNumber` - returns tax number from an individual address. - -- `getApartmentNumber` - returns apartment number from an individual address. - -- `isDefault` - return information if address is current default. - - ```typescript - interface UserBillingGetters { - getAddresses: (billing: User, criteria?: Record) => BillingAddress[]; - getDefault: (billing: User) => BillingAddress; - getTotal: (billing: User) => number; - getId: (address: BillingAddress) => string | number; - getPostCode: (address: BillingAddress) => string; - getStreetName: (address: BillingAddress) => string; - getStreetNumber: (address: BillingAddress) => string | number; - getCity: (address: BillingAddress) => string; - getFirstName: (address: BillingAddress) => string; - getLastName: (address: BillingAddress) => string; - getCountry: (address: BillingAddress) => string; - getPhone: (address: BillingAddress) => string; - getEmail: (address: BillingAddress) => string; - getProvince: (address: BillingAddress) => string; - getCompanyName: (address: BillingAddress) => string; - getTaxNumber: (address: BillingAddress) => string; - getApartmentNumber: (address: BillingAddress) => string | number; - isDefault: (address: BillingAddress) => boolean; - } - - type Customer = { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - - type User = Customer; - - type Address = { - __typename?: "Address"; - id?: Maybe; - title?: Maybe; - salutation?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - streetName?: Maybe; - streetNumber?: Maybe; - additionalStreetInfo?: Maybe; - postalCode?: Maybe; - city?: Maybe; - region?: Maybe; - state?: Maybe; - country: Scalars["Country"]; - company?: Maybe; - department?: Maybe; - building?: Maybe; - apartment?: Maybe; - pOBox?: Maybe; - contactInfo: AddressContactInfo; - additionalAddressInfo?: Maybe; - externalId?: Maybe; - key?: Maybe; - } - - type BillingAddress = Address & { - isDefault?: boolean; - } - ``` - -## Example - -```typescript -import { onSSR } from '@vue-storefront/core'; -import { useUserBilling, userBillingGetters } from '@vsf-enterprise/commercetools'; - -export default { - setup() { - const { - billing, - load, - addAddress, - deleteAddress, - updateAddress - } = useUserBilling(); - - onSSR(async () => { - await load(); - }); - - return { - billing: computed(() => userBillingGetters.getAddresses(billing.value)), - userBillingGetters - }; - } -}; -``` diff --git a/packages/core/docs/commercetools/composables/use-user-order.md b/packages/core/docs/commercetools/composables/use-user-order.md deleted file mode 100644 index 44b699f985..0000000000 --- a/packages/core/docs/commercetools/composables/use-user-order.md +++ /dev/null @@ -1,242 +0,0 @@ -# `useUserOrder` - -## Features - -`useUserOrder` composable is responsible for interactions with customer order history from your eCommerce backend. - -## API - -- `searchOrders` - the main querying function used to query user order history from the eCommerce platform and populate the `orders` object with the result. This method accepts a single params object. The `params` has the following options: - - - `id?: string` - - - `page?: number` - - - `perPage?: number` - - - `customQuery?: customQuery` - -- `orders: OrderQueryResult` - the main data object that contains an array of orders fetched by the `searchOrders` method and total number of orders. - - ```ts - type Order = { - __typename?: "Order"; - customerId?: Maybe; - customer?: Maybe; - customerEmail?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - customLineItems: Array; - totalPrice: Money; - taxedPrice?: Maybe; - shippingAddress?: Maybe
; - billingAddress?: Maybe
; - inventoryMode: InventoryMode; - taxMode: TaxMode; - taxRoundingMode: RoundingMode; - taxCalculationMode: TaxCalculationMode; - customerGroup?: Maybe; - customerGroupRef?: Maybe; - country?: Maybe; - shippingInfo?: Maybe; - discountCodes: Array; - refusedGifts: Array; - refusedGiftsRefs: Array; - paymentInfo?: Maybe; - locale?: Maybe; - shippingRateInput?: Maybe; - origin: CartOrigin; - storeRef?: Maybe; - store?: Maybe; - itemShippingAddresses: Array
; - completedAt?: Maybe; - orderNumber?: Maybe; - orderState: OrderState; - stateRef?: Maybe; - state?: Maybe; - shipmentState?: Maybe; - paymentState?: Maybe; - syncInfo: Array; - returnInfo: Array; - lastMessageSequenceNumber: Scalars["Long"]; - cartRef?: Maybe; - cart?: Maybe; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - ``` - -- `loading: boolean` - a reactive object containing information about the loading state of your `searchOrders` method. - -- `error: UseUserOrderErrors` - reactive object containing the error message if some properties failed for any reason. - - ```ts - interface UseUserOrderErrors { - search: Error; - } - ``` - -## Getters - -- `getDate` - returns order date. - -- `getId` - returns order Id. - -- `getStatus` - returns order status. - -- `getPrice` - returns order price. - -- `getItems` - returns order items. - -- `getItemSku` - returns order item sku. - -- `getItemName` - returns order item name. - -- `getItemQty` - returns order item quantity. - -- `getItemPrice` - returns order item price. - -- `getFormattedPrice` - returns order price with currency sign. - -- `getOrdersTotal` - returns total number of orders (not affected by pgaination limit). - - ```ts - interface UserOrderGetters { - getDate: (order: Order) => string; - getId: (order: Order) => string; - getStatus: (order: Order) => AgnosticOrderStatus; - getPrice: (order: Order) => number; - getItems: (order: Order) => LineItem[]; - getItemSku: (item: LineItem) => string; - getItemName: (item: LineItem) => string; - getItemQty: (item: LineItem) => number; - getItemPrice: (item: LineItem) => number; - getFormattedPrice: (price: number) => string; - getOrdersTotal: (orders: OrderQueryResult) => number; - } - - type Order = { - __typename?: "Order"; - customerId?: Maybe; - customer?: Maybe; - customerEmail?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - customLineItems: Array; - totalPrice: Money; - taxedPrice?: Maybe; - shippingAddress?: Maybe
; - billingAddress?: Maybe
; - inventoryMode: InventoryMode; - taxMode: TaxMode; - taxRoundingMode: RoundingMode; - taxCalculationMode: TaxCalculationMode; - customerGroup?: Maybe; - customerGroupRef?: Maybe; - country?: Maybe; - shippingInfo?: Maybe; - discountCodes: Array; - refusedGifts: Array; - refusedGiftsRefs: Array; - paymentInfo?: Maybe; - locale?: Maybe; - shippingRateInput?: Maybe; - origin: CartOrigin; - storeRef?: Maybe; - store?: Maybe; - itemShippingAddresses: Array
; - completedAt?: Maybe; - orderNumber?: Maybe; - orderState: OrderState; - stateRef?: Maybe; - state?: Maybe; - shipmentState?: Maybe; - paymentState?: Maybe; - syncInfo: Array; - returnInfo: Array; - lastMessageSequenceNumber: Scalars["Long"]; - cartRef?: Maybe; - cart?: Maybe; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - - enum AgnosticOrderStatus { - Open = 'Open', - Pending = 'Pending', - Confirmed = 'Confirmed', - Shipped = 'Shipped', - Complete = 'Complete', - Cancelled = 'Cancelled', - Refunded = 'Refunded' - } - - type LineItem = { - __typename?: "LineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - name?: Maybe; - nameAllLocales: Array; - productSlug?: Maybe; - productType?: Maybe; - productTypeRef?: Maybe; - variant?: Maybe; - price: ProductPrice; - taxedPrice?: Maybe; - totalPrice?: Maybe; - quantity: Scalars["Long"]; - state: Array; - taxRate?: Maybe; - supplyChannel?: Maybe; - supplyChannelRef?: Maybe; - distributionChannel?: Maybe; - distributionChannelRef?: Maybe; - discountedPricePerQuantity: Array; - lineItemMode: LineItemMode; - priceMode: LineItemPriceMode; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - shippingDetails?: Maybe; - inventoryMode?: Maybe; - customFieldList?: Maybe>; - } - ``` - -## Example - -```js -import { useUserOrder, orderGetters } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup() { - const { orders, search, loading, error } = useUserOrder(); - - onSSR(async () => { - await search(); - }); - - return { - // extract a list of orders from a `orders` object - orders: computed(() => orderGetters.getItems(shipping.value)), - }; - } -}; -``` diff --git a/packages/core/docs/commercetools/composables/use-user-shipping.md b/packages/core/docs/commercetools/composables/use-user-shipping.md deleted file mode 100644 index b2e67a04ed..0000000000 --- a/packages/core/docs/commercetools/composables/use-user-shipping.md +++ /dev/null @@ -1,325 +0,0 @@ -# `useUserShipping` - -## Features - -`useUserShipping` composable can be used to: - -* fetch existing shipping addresses, -* submit new shipping addresses, -* modify and delete existing shipping addresses. - -## API - -- `load` - function for fetching user addresses. When invoked, it requests data from the API and populates `shipping` property. - -- `addAddress` - function for posting new shipping address. This method accepts a single `params` object. The `params` has the following options: - - - `address: ShippingAddressAddParams` - - - `customQuery?: customQuery` - - ```typescript - interface ShippingAddressAddParams { - address: { - firstName: string; - lastName: string; - streetName: string; - postalCode: string; - city: string; - state: string; - country: string; - apartment: string; - phone: string; - isDefault?: boolean; - } - } - type customQuery = { - addShippingAddress: string - } - ``` - -- `deleteAddress` - function for deleting existing shipping address. This method accepts a single `params` object. The `params` has the following options: - - - `address: ShippingAddressDeleteParams` - - - `customQuery?: customQuery` - - ```typescript - interface ShippingAddressDeleteParams { - address: { - id: string; - } - } - type customQuery = { - deleteShippingAddress: string - } - ``` - -- `updateAddress` - function for updating existing shipping address. This method accepts a single `params` object. The `params` has the following options: - - - `address: ShippingAddressUpdateParams` - - - `customQuery?: customQuery` - - ```typescript - interface ShippingAddressUpdateParams { - address: { - id: string; - firstName: string; - lastName: string; - streetName: string; - postalCode: string; - city: string; - state: string; - country: string; - apartment: string; - phone: string; - isDefault?: boolean; - } - } - type customQuery = { - updateShippingAddress: string - } - ``` - -- `setDefaultAddress` - function for settings an existing shipping address as default. This method accepts a single `params` object. The `params` has the following options: - - - `address: ShippingAddressSetDefaultParams` - - - `customQuery?: customQuery` - - ```typescript - interface ShippingAddressSetDefaultParams { - address: { - id: string; - } - } - type customQuery = { - setDefaultShippingAddress: string - } - ``` - -- `shipping: User` - a reactive data object containing a response from the backend. - - ```ts - type Customer = { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - - type User = Customer; - ``` - -- `loading: boolean` - a reactive object containing information about loading state of `load`, `addAddress`, `deleteAddress`, `updateAddress` and `setDefaultAddress` methods. - -- `error: UseUserShippingErrors` - a reactive object containing the error message if some properties failed for any reason. - - ```ts - interface UseUserShippingErrors { - addAddress: Error; - deleteAddress: Error; - updateAddress: Error; - load: Error; - setDefaultAddress: Error; - } - ``` - -## Getters - -- `getAddresses` - returns list of shipping addresses. - -- `getDefault` - returns a default shipping address. - -- `getTotal` - returns the total number of shipping addresses the user has. - -- `getId` - returns id from an individual address. - -- `getPostCode` - returns post code from an individual address. - -- `getStreetName` - returns street name from an individual address. - -- `getStreetNumber` - returns street number from an individual address. - -- `getCity` - returns city name from an individual address. - -- `getFirstName` - returns first name from an individual address. - -- `getLastName` - returns last name from an individual address. - -- `getCountry` - returns country name from an individual address. - -- `getPhone` - return phone number from an individual address. - -- `getEmail` - returns e-mail address from an individual address. - -- `getProvince` - returns province (state) from an individual address. - -- `getCompanyName` - returns company name from an individual address. - -- `getTaxNumber` - returns tax number from an individual address. - -- `getApartmentNumber` - returns apartment number from an individual address. - -- `isDefault` - return information if address is current default. - - ```typescript - interface UserShippingGetters { - getAddresses: (shipping: User, criteria?: Record) => ShippingAddress[]; - getDefault: (shipping: User) => ShippingAddress; - getTotal: (shipping: User) => number; - getId: (address: ShippingAddress) => string | number; - getPostCode: (address: ShippingAddress) => string; - getStreetName: (address: ShippingAddress) => string; - getStreetNumber: (address: ShippingAddress) => string | number; - getCity: (address: ShippingAddress) => string; - getFirstName: (address: ShippingAddress) => string; - getLastName: (address: ShippingAddress) => string; - getCountry: (address: ShippingAddress) => string; - getPhone: (address: ShippingAddress) => string; - getEmail: (address: ShippingAddress) => string; - getProvince: (address: ShippingAddress) => string; - getCompanyName: (address: ShippingAddress) => string; - getTaxNumber: (address: ShippingAddress) => string; - getApartmentNumber: (address: ShippingAddress) => string | number; - isDefault: (address: ShippingAddress) => boolean; - } - - type Customer = { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - - type User = Customer; - - type Address = { - __typename?: "Address"; - id?: Maybe; - title?: Maybe; - salutation?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - streetName?: Maybe; - streetNumber?: Maybe; - additionalStreetInfo?: Maybe; - postalCode?: Maybe; - city?: Maybe; - region?: Maybe; - state?: Maybe; - country: Scalars["Country"]; - company?: Maybe; - department?: Maybe; - building?: Maybe; - apartment?: Maybe; - pOBox?: Maybe; - contactInfo: AddressContactInfo; - additionalAddressInfo?: Maybe; - externalId?: Maybe; - key?: Maybe; - } - - type ShippingAddress = Address & { - isDefault?: boolean; - } - ``` - -## Example - -```typescript -import { onSSR } from '@vue-storefront/core'; -import { useUserShipping, userShippingGetters } from '@vsf-enterprise/commercetools'; - -export default { - setup() { - const { - shipping, - load, - addAddress, - deleteAddress, - updateAddress - } = useUserShipping(); - - onSSR(async () => { - await load(); - }); - - return { - shipping: computed(() => userShippingGetters.getAddresses(shipping.value)), - userShippingGetters - }; - } -}; -``` diff --git a/packages/core/docs/commercetools/composables/use-user.md b/packages/core/docs/commercetools/composables/use-user.md deleted file mode 100644 index 5c2345bcf7..0000000000 --- a/packages/core/docs/commercetools/composables/use-user.md +++ /dev/null @@ -1,162 +0,0 @@ -# `useUser` - -## Features - -`useUser` composable can be used to: - -- manage user authentication -- manage authentication data like email address, login, or password. - -If you want to fetch/save other user data you should use the following composables: -- [`useUserBilling`](./use-user-billing.md) -- [`useUserShipping`](./use-user-shipping.md) -- [`useUserOrders`](./use-user-orders.md) - -## API - -- `user` - reactive object containing information about the current user. - - ```ts - type Customer = { - __typename?: "Customer"; - customerNumber?: Maybe; - email: Scalars["String"]; - password: Scalars["String"]; - addresses: Array
; - defaultShippingAddressId?: Maybe; - defaultBillingAddressId?: Maybe; - shippingAddressIds: Array; - billingAddressIds: Array; - isEmailVerified: Scalars["Boolean"]; - customerGroupRef?: Maybe; - externalId?: Maybe; - key?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - middleName?: Maybe; - title?: Maybe; - locale?: Maybe; - salutation?: Maybe; - dateOfBirth?: Maybe; - companyName?: Maybe; - vatId?: Maybe; - customerGroup?: Maybe; - defaultShippingAddress?: Maybe
; - defaultBillingAddress?: Maybe
; - shippingAddresses: Array
; - billingAddresses: Array
; - storesRef: Array; - stores: Array; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - customFieldList?: Maybe>; - } - ``` - -- `updateUser` - a function for updating user data. When invoked, it submits data to the API and populates user property with updated information. This method accepts a single `params` object. The `params` has the following option: - - - `user: UPDATE_USER_PARAMS` - - ```ts - interface UPDATE_USER_PARAMS { - email: string; - password: string; - firstName?: string; - lastName?: string; - } - ``` - -- `register: UseUserRegisterParams` - a function for creating a new user. When invoked, it submits new user data to the API and saves them. This method accepts a single `params` object. The `params` has the following option: - - - `user: UseUserRegisterParams` - - ```ts - interface UseUserRegisterParams { - email: string; - password: string; - firstName?: string; - lastName?: string; - } - ``` - -- `login: UseUserLoginParams` - function for log in a user based on a username and password. This method accepts a single `params` object. The `params` has the following option: - - - `user: UseUserLoginParams` - - ```ts - interface UseUserLoginParams { - username: string; - password: string; - } - ``` - -- `logout` - a function for logging out the user. - -- `changePassword` - a function for changing user password. This method accepts a single `params` object. The `params` has the following options: - - - `currentPassword: string` - - - `newPassword: string` - -- `loading: boolean` - a reactive object containing information about loading state of `user`. - -- `isAuthenticated: boolean` - checks if the user is authenticated or not. - -- `error: UseUserErrors` - a reactive object containing the error message if some properties failed for any reason. - - ```ts - interface UseUserErrors { - updateUser: Error; - register: Error; - login: Error; - logout: Error; - changePassword: Error; - load: Error; - } - ``` - -## Getters - -- `getFirstName` - returns user first name. - -- `getLastName` - returns user last name. - -- `getFullName` - returns full user name. - -- `getEmailAddress` - returns user email address. - - ```ts - interface UserGetters { - getFirstName: (user: Customer) => string; - getLastName: (user: Customer) => string; - getFullName: (user: Customer) => string; - getEmailAddress: (user: Customer) => string; - } - ``` - -## Example - -```js -import { useUser } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { user, register, login, loading } = useUser(); - - return { - register, - login, - loading, - firstName: userGetters.getFirstName(user.value), - email: userGetters.getEmailAddress(user.value) - } - } -} -``` diff --git a/packages/core/docs/commercetools/composables/use-wishlist.md b/packages/core/docs/commercetools/composables/use-wishlist.md deleted file mode 100644 index 06b6aefa50..0000000000 --- a/packages/core/docs/commercetools/composables/use-wishlist.md +++ /dev/null @@ -1,272 +0,0 @@ -# `useWishlist` - -## Features - -`useWishlist` composable is responsible for integrating with a wishlist from commercetools. It allows to: - -- fetch products from the wishlist -- add products to the wishlist -- remove products from the wishlist -- check if a product is on the wishlist - -## API - -- `wishlist: Wishlist` - a main data object. - - ```ts - type ShoppingList = { - __typename?: "ShoppingList"; - key?: Maybe; - name?: Maybe; - nameAllLocales: Array; - description?: Maybe; - descriptionAllLocales?: Maybe>; - slug?: Maybe; - slugAllLocales?: Maybe>; - customerRef?: Maybe; - customer?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - textLineItems: Array; - custom?: Maybe; - deleteDaysAfterLastModification?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - } - - type Wishlist = ShoppingList; - ``` - -- `load` - a function used to retrieve wishlist products. When invoked, it requests data from the API and populates `wishlist` property. This method accepts a single `params` object. The `params` has the following option: - - - `customQuery?: CustomQuery` - - ```ts - type CustomQuery = { - createMyShoppingList: string - } - ``` - -- `addItem` - a function used to add a new product to the wishlist. When invoked, it submits data to the API and populates `wishlist` property with updated information. This method accepts a single `params` object. The `params` has the following options: - - - `product: ProductVariant` - - - `customQuery?: customQuery` - - ```ts - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - - type CustomQuery = { - updateShoppingList: string - } - ``` - -- `removeItem` - a function that removes products from the wishlist. It submits data to the API and populates the updated `wishlist` property. This method accepts a single `params` object. The `params` has the following options: - - - `product: LineItem` - - - `customQuery?: customQuery` - - ```ts - type LineItem = { - __typename?: "LineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - name?: Maybe; - nameAllLocales: Array; - productSlug?: Maybe; - productType?: Maybe; - productTypeRef?: Maybe; - variant?: Maybe; - price: ProductPrice; - taxedPrice?: Maybe; - totalPrice?: Maybe; - quantity: Scalars["Long"]; - state: Array; - taxRate?: Maybe; - supplyChannel?: Maybe; - supplyChannelRef?: Maybe; - distributionChannel?: Maybe; - distributionChannelRef?: Maybe; - discountedPricePerQuantity: Array; - lineItemMode: LineItemMode; - priceMode: LineItemPriceMode; - customFieldsRaw?: Maybe>; - customFields?: Maybe; - custom?: Maybe; - shippingDetails?: Maybe; - inventoryMode?: Maybe; - customFieldList?: Maybe>; - } - - type CustomQuery = { - updateShoppingList: string - } - ``` - -- `clear` - a function that removes all products from the wishlist and populates clear `wishlist` property. - -- `isInWishlist` - a function that checks if a product is on the wishlist. It returns boolean value. This method accepts a single `params` object. The `params` has the following option: - - - `product: ProductVariant` - - ```ts - type ProductVariant = { - __typename?: "ProductVariant"; - id: Scalars["Int"]; - key?: Maybe; - sku?: Maybe; - prices?: Maybe>; - price?: Maybe; - images: Array; - assets: Array; - availability?: Maybe; - attributesRaw: Array; - attributes: ProductType; - attributeList: Array; - } - ``` - -- `loading: boolean` - a reactive object containing information about loading state of the cart. - -- `error: UseWishlistErrors` - reactive object containing the error message, if some properties failed for any reason. - - ```ts - interface UseWishlistErrors { - addItem: Error; - removeItem: Error; - load: Error; - clear: Error; - } - ``` - -## Getters - -- `getItems` - returns list of products on the wishlist - -- `getItemName` - returns product's name from the wishlist. - -- `getItemImage` - returns product's image from the wishlist. - -- `getItemPrice` - returns product's price from the wishlist. - -- `getItemQty` - returns a quantity of product which is on the wishlist. - -- `getItemAttributes` - returns product variant attribute chosen by its name. - -- `getItemSku` - returns product's SKU code. - -- `getTotals` - returns price of products. - -- `getTotalItems` - returns an amount of all items that are currently on the wishlist. - -- `getFormattedPrice` - returns price in a formatted manner, taking into account local specifics. - - ```typescript - interface WishlistGetters { - getTotals: (wishlist: Wishlist) => AgnosticTotals; - getItems: (wishlist: Wishlist) => ShoppingListLineItem[]; - getItemName: (product: ShoppingListLineItem) => string; - getItemImage: (product: ShoppingListLineItem) => string; - getItemPrice: (product: ShoppingListLineItem) => AgnosticPrice; - getItemQty: (product: ShoppingListLineItem) => number; - getItemAttributes: (product: ShoppingListLineItem, filterByAttributeName?: string[]) => ({}); - getItemSku: (product: ShoppingListLineItem) => string; - getTotalItems: (wishlist: Wishlist) => number; - getFormattedPrice: (price: number) => string; - }; - - interface AgnosticTotals { - total: number; - subtotal: number; - special?: number; - [x: string]: unknown; - } - - interface AgnosticPrice { - regular: number | null; - special?: number | null; - } - - type Wishlist = { - __typename?: "ShoppingList"; - key?: Maybe; - name?: Maybe; - nameAllLocales: Array; - description?: Maybe; - descriptionAllLocales?: Maybe>; - slug?: Maybe; - slugAllLocales?: Maybe>; - customerRef?: Maybe; - customer?: Maybe; - anonymousId?: Maybe; - lineItems: Array; - textLineItems: Array; - custom?: Maybe; - deleteDaysAfterLastModification?: Maybe; - id: Scalars["String"]; - version: Scalars["Long"]; - createdAt: Scalars["DateTime"]; - lastModifiedAt: Scalars["DateTime"]; - createdBy?: Maybe; - lastModifiedBy?: Maybe; - } - - type ShoppingListLineItem = { - __typename?: "ShoppingListLineItem"; - id: Scalars["String"]; - productId: Scalars["String"]; - variantId?: Maybe; - productTypeRef: Reference; - productType: ProductTypeDefinition; - quantity: Scalars["Int"]; - addedAt: Scalars["DateTime"]; - name?: Maybe; - nameAllLocales: Array; - deactivatedAt?: Maybe; - custom?: Maybe; - productSlug?: Maybe; - variant?: Maybe; - } - ``` - -## Example - -```typescript -import { onSSR } from '@vue-storefront/core'; -import { useWishlist, wishlistGetters } from '@vsf-enterprise/commercetools'; - -export default { - setup() { - const { load: loadWishlist } = useWishlist(); - - const wishlistItems = computed(() => wishlistGetters.getItems()); - - onSSR(async () => { - await loadWishlist(); - }); - - return { - loadWishlist, - wishlistItems - }; - } -}; -``` diff --git a/packages/core/docs/commercetools/essentials/configuration.md b/packages/core/docs/commercetools/essentials/configuration.md deleted file mode 100644 index a271c67b07..0000000000 --- a/packages/core/docs/commercetools/essentials/configuration.md +++ /dev/null @@ -1,104 +0,0 @@ -# Configuration - -The commercetools configuration is located in two places: - -- nuxt.config.js is a place where you're configuring properties related only to the frontend part of your application. - -- middleware.config.js is a place where you're configuring the commercetools SDK, Apollo, and extensions. You will put there API keys, integration configurations, custom GraphQL queries, and new API endpoints. - -## Nuxt commercetools configuration - -```js -// nuxt.config.js -['@vue-storefront/commercetools/nuxt', { - i18n: { - useNuxtI18nConfig: true - } -}] -``` - -- `useNuxtI18nConfig` - when this property is set to true, `@vue-storefront/commercetools/nuxt` package will use `i18n` config object provided in `nuxt.config.js`. When set to false, `i18n` config should be declared directly inside this package configuration. You can read more about `i18n` configuration on the [internationalization](/getting-started/internationalization.md) page. - -## Middleware commercetools configuration - -You can read more about middleware configuration on the [Server Middleware](/architecture/server-middleware.html#configuration) page. - -```js -// middleware.config.js -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - api: { - uri: 'https://.com//graphql', - authHost: 'https://auth.sphere.io', - projectKey: '', - clientId: '', - clientSecret: '', - scopes: [ - 'manage_products:', - /* other scope rules */ - ] - } - } - } - } -}; -``` - -### `api` - -- `uri` - link to your commercetools GraphQL API instance. -- `authHost` - link to commercetools Authentication Server. It is used to request an access token from commercetools OAuth 2.0 service. To choose the nearest service, please visit [commercetools hosts list](https://docs.commercetools.com/api/authorization) -- `projectKey` - name of your commercetools project, i.e. `my-awesome-vsf-project` -- `clientId` - unique commercetools Client ID. Visit [commercetools documentation](https://docs.commercetools.com/tutorials/getting-started#creating-an-api-client) for more details about creating an API Client -- `clientSecret` - commercetools secret API key. Visit [commercetools documentation](https://docs.commercetools.com/tutorials/getting-started#creating-an-api-client) for more details about creating an API Client -- `scopes` - The scope constrains the endpoints to which a client has access and whether a client has read or write access to an endpoint. Visit [commercetools documentation](https://docs.commercetools.com/api/scopes#top) for more details about Scopes. - -By default, the internationalization settings, such as `currency`, `locale`, and `country` are loaded from cookies. To override this behavior, you can set those properties inside the `configuration` section. - -```js -// middleware.config.js -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - api: { /* ... */}, - currency: 'EUR', - locale: 'en', - country: 'US' - } - } - } -}; -``` - - -### `acceptLanguage` - -An array of possible locales commercetools will use. You can read more about the commercetools internationalization configuration [here](https://docs.commercetools.com/api/projects/orders-import#language-filtering) - -```js -acceptLanguage: ['en-gb', 'en-us'] -``` - -### `languageMap` - -If you supply a `languageMap` during the setup, this will be used to map a locale to the accepted languages. - -```js -languageMap: { - 'en-gb': ['en-gb', 'en-us'], - 'en-us': ['en-us', 'en-gb'], -} -``` - -### `inventoryMode` - -If you want to change the way your commercetools inventory is being tracked, you can provide `inventoryMode` option in the middleware configuration. It can be set to one of the following values: `None`, `TrackOnly`, and `ReserveOnOrder`. When not specified, the Inventory Mode is set to `None` by default. You can read more about Inventory Modes in [commercetools documentation](https://docs.commercetools.com/api/projects/carts#inventorymode). - -```js -inventoryMode: 'TrackOnly' -``` diff --git a/packages/core/docs/commercetools/essentials/store-setup.md b/packages/core/docs/commercetools/essentials/store-setup.md deleted file mode 100644 index 41ee22563d..0000000000 --- a/packages/core/docs/commercetools/essentials/store-setup.md +++ /dev/null @@ -1,426 +0,0 @@ -# Setting up a Vue Storefront store with commercetools - -This document will guide you through the process of setting up a Vue Storefront store with commercetools. This guide intentionally only describes the basic working configuration to get you up and running as fast as possible. To learn more about commercetools, see the [commercetools documentation](https://docs.commercetools.com/merchant-center/). - -## Prerequisites - -This guide assumes you already have access to the commercetools Merchant Center and generated the Vue Storefront project. - -Refer to our [Installation](/general/installation.html) guide if you don't have the Vue Storefront project yet. - -## Create a new commercetools project - -Log into your commercetools account and create a new project following the [Create a project](https://docs.commercetools.com/merchant-center/projects#creating-a-project) guide from commercetools. One project can provide data for multiple selling channels, but you can have more than one project with different settings and catalogs if you need it. - -By default, you can only connect the Vue Storefront project to one commercetools project. However, you can modify the `middleware.config.js` and `nuxt.config.js` files to export different configurations based on environment variables. This way, you can use one Vue Storefront project for multiple commercetools projects. - -## Configuring commercetools project - -When you already have a project in commercetools, you can start configuring the store in the `Project settings` page in commercetools Merchant Center. - -:::tip More information -For more information about the project set up in commercetools, see the [Project settings](https://docs.commercetools.com/merchant-center/project-settings) page in commercetools documentation. -::: - -
- Position of the 'Projects settings' page in the menu in commercetools -
- -### Configuring `International` tab - -When you open the `Project settings` page from the menu, you will see a few tabs at the top. The first step in configuring a commercetools store is to configure options in the `International` tab. - -Start by selecting currencies available in your store: - -
- Input to modify currencies available in the store -
- -Then, select supported languages: - -
- Input to modify languages available in the store -
- -Next, select the available countries: - -
- Input to modify countries available in the store -
- -Finally, set zones. They are helpful when few countries share the same delivery costs. You need to configure at least one shipping zone to be able to set up shipping methods later. - -
- Page to modify currencies available in the store -
- -### Configuring `Taxes` tab - -In the `Taxes` tab on the `Project settings` page, you can configure tax rates for the countries configured in the `International` tab. - -
- Page to enter tax information for each country in the store -
- -### Configuring `Shipping methods` tab - -You can add a shipping method in the `Shipping methods` tab on the `Project settings` page. First, select if the price will be fixed or tiered. Then, enter specific methods for each zone and currency. - -
- Page to enter shipping methods and their prices for each zone in the store -
- -## Adding a new category - -Categories allow you to organize the products in groups and make them easy to find by the customer. - -:::tip More information -For more information about categories, see the [Modeling Categories](https://docs.commercetools.com/tutorials/product-modeling/categories) page in commercetools documentation. -::: - -To create a category, go to the `Add category` page from the sidebar menu. - -
- Position of the 'Add category' page in the menu in commercetools -
- -Enter the name and category order. - -
- Page to enter basic information about the product category, such as name, descrioption and unique key -
- -If applicable, select the parent category to which this category belongs. - -
- Page to select parent categories -
- -Enter the category slug. It will be part of the URL for this category. - -
- Page to enter search engine related attributes, such as short slug, meta title and description -
- -:::warning -You have to create a category structure with at least two levels to display the category page in the Vue Storefront project correctly. -::: - -You can see your categories in the `categories search` menu: - -
- Page listing all categories available in the store -
- -## Adding a new product type - -Before we can add any new product in commercetools, we need at least one product type. Product types are templates with specific attributes for products of the same type. - -:::tip More information -For more information about product types, see the [Modeling Product Types and Attributes](https://docs.commercetools.com/tutorials/product-modeling/product-types) page in commercetools documentation. -::: - -To create a product type, go to the `Product types` page from the sidebar menu and click the `Add product type` button. - -
- Position of the 'Product types' page in the menu in commercetools -
- -Enter name and description and click the `Save` button. Without saving, you won't be able to add attributes in the next step. - -
- Page to enter basic information about the product type, such as name, description and unique key -
- - -Click the `Add an attribute` button and enter the name, label, constraints, and type fields. - -
- Page to enter attributes of the product type -
- -## Adding a new product - -After creating at least one product type, you can add a new product. - -:::tip More information -For more information about products, see the [Modeling Products](https://docs.commercetools.com/tutorials/product-modeling/products) page in the commercetools documentation. -::: - -To create a product, go to the `Add product` page. - -
- Position of the 'Add product' page in the menu in commercetools -
- -Start by selecting the product type. - -
- Page to select type of the product -
- -Type the name and assign the tax category. - -
- Page to enter basic information about the product, such as name, description, unique key and category -
- -Click the `Add variant` button and add at least one variant of the product with attributes and SKU number. - -
- Page to enter product SKU and additional variant attributes -
- -Enter a slug, keywords, and metadata to optimize searching. Once you are finished, click the `Save` button. - -
- Page to enter search engine related information, such as keywords, short slug, meta title and description -
- -Once the product is saved and you are redirected to the product summary page, change product status to `Published` in the top right part of the product screen. - -
- Page showing a summary of the newly created product and 'Published' status of the product -
- -### Creating an API client - -With the commercetools already configured, we can connect it to the Vue Storefront application. To do so, we need to generate two API clients. - -Go to the `Developer settings` page. - -
- Position of the 'Developer settings' page in the menu in commercetools -
- -Click the `Create new API client` button and enter the `name` for the first API client. The application will use this API client to generate an access token for guests and customers visiting your shop. Then in the `Scopes` section, select the `Mobile & single-page application client` option from the list of available templates. Additionally, select the `Stores` checkbox in the `View` column. The image below shows which permissions you should select. - -:::tip More information -For more information about scopes, see the [Scopes](https://docs.commercetools.com/api/scopes) page in the commercetools documentation. -::: - -
- List of checkboxes indicating which scopes were selected for the customer API client -
- -When you click on the `Create API client` button, you will see all the credentials. **They are only displayed once, so you need to store them securely.** You can also download them in the format you need. - -
- Modal showing credentials for the newly created API client -
- -Repeat the same process, but this time only select the `Customers` and `Products` permissions from the `Manage` column. The application will use this API client to generate access tokens used by the Server Middleware to perform operations that require higher permissions than what regular guests and customers should have access to. - -
- List of checkboxes indicating which scopes were selected for the server API client -
- -## Configuring commercetools integration in Vue Storefront - -Open the `middleware.config.js` file in your Vue Storefront project. Inside of the `ct` and `ctf` configuration objects, you will find objects named `api` and `serverApi`. Replace the values in all of them with the values displayed after creating an API client, where `api` should hold values from the first API client (customer) and `serverApi` from the second API client (server). - -Make sure to replace all parts starting with `<` and endpoint with `>`, like ``, etc. - -For more information about available configuration options refer to the [Configuration](./configuration.md) page. - -```js{8-25,27-35,42-57} -// middleware.config.js - -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - // Customer API-client - api: { - uri: 'https://api.commercetools.com//graphql', - authHost: 'https://auth...commercetools.com/', - projectKey: '', - clientId: '', - clientSecret: '', - scopes: [ - 'create_anonymous_token:', - 'manage_my_profile:', - 'view_categories:', - 'manage_my_payments:', - 'manage_my_orders:', - 'manage_my_shopping_lists:', - 'view_published_products:', - 'view_stores:' - ], - }, - - // Server API-client - serverApi: { - clientId: '', - clientSecret: '', - scopes: [ - 'manage_customers:', - 'manage_products:' - ] - } - } - }, - - ctf: { - location: '@vsf-enterprise/ct-faceting/server', - configuration: { - // Customer API-client - api: { - authHost: 'https://auth...commercetools.com/', - projectKey: '', - clientId: '', - clientSecret: '', - scopes: [ - 'create_anonymous_token:', - 'manage_my_profile:', - 'view_categories:', - 'manage_my_payments:', - 'manage_my_orders:', - 'manage_my_shopping_lists:', - 'view_published_products:', - 'view_stores:' - ] - } - faceting: { - host: 'https://api.commercetools.com' - } - } - } - } -}; -``` - -The next step is to set up the internationalization options in the `nuxt.config.js` file. You should set up the countries, currencies, and locales precisely the same as in your commercetools project. It's common to forget, e.g., that `en` is not the same as `en-US`. - - -```js -// nuxt.config.js - -module.exports = { - i18n: { - currency: 'USD', - country: 'US', - countries: [ - { name: 'US', label: 'United States' }, - { name: 'DE', label: 'Germany' } - ], - currencies: [ - { name: 'USD', label: 'Dollar' }, - { name: 'EUR', label: 'Euro' } - ], - locales: [ - { code: 'en', label: 'English', file: 'en.js', iso: 'en' }, - { code: 'de-DE', label: 'German', file: 'de.js', iso: 'de' }, - ] - } -}; -``` - -Now in the terminal, go to the Vue Storefront project directory and start the application: - -```sh -yarn dev -``` - -If you followed all the previous steps, you should see your project working, filled with data you previously set up in your commercetools project. diff --git a/packages/core/docs/commercetools/guide/authentication.md b/packages/core/docs/commercetools/guide/authentication.md deleted file mode 100644 index 8c853e6028..0000000000 --- a/packages/core/docs/commercetools/guide/authentication.md +++ /dev/null @@ -1,199 +0,0 @@ -# Authentication - -Authentication is a process of recognizing the user's identity. It allows associating incoming requests with an account or a person when provided credentials are compared with ones in the database. - -All operations related to this process can be handled with methods exposed by `useUser` composable - -## Registering a new user - -Registering a new user can be done using `register` method. -```vue - - - -``` - -## Checking if the user is logged in - -Many interactions in the application are only available ( `useUser` prefixed functions like `useUserOrder`) or look different if the customer is logged in. To check if the user is authenticated, we will use `isAuthenticated` method from `useUser`. - -Like with all other composables, it's important to remember to call `load` before accessing any other property or function of `useUser`. Otherwise, `isAuthenticated` will always return `false`. - -```js{8,16} -import { useUser } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - isAuthenticated - } = useUser(); - - onSSR(async () => { - await load(); - }); - - return { - isAuthenticated - }; - } -} -``` - -## Logging in - -Signing in can be done using `login` method. -```vue - - - -``` -`user` [ref](https://v3.vuejs.org/api/refs-api.html#ref) either contains an object of the signed-in user or equals `null` - -## Logging out - -Signing out can be done using `logout` method. -```vue - - - -``` - -## Forgot Password - -Usually, the process of resetting a user password consists of two steps: - -1. Generating reset password token for a given email address: - -```vue - - - -``` - -2. Setting a new user password using the token and new password. - -```vue - - - -``` diff --git a/packages/core/docs/commercetools/guide/cart.md b/packages/core/docs/commercetools/guide/cart.md deleted file mode 100644 index 22c613d8b6..0000000000 --- a/packages/core/docs/commercetools/guide/cart.md +++ /dev/null @@ -1,248 +0,0 @@ -# Cart - -Customer's cart can be loaded using `useCart` composable and data can be accessed using `cartGetters`. - -## Loading and creating the cart - -The `load` method will load your cart from the server or create a new one if it doesn't exist. The `cart` object will be `null` until you load it. - - -```js -import { useCart } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -export default { - setup() { - const { - cart, - load - } = useCart(); - - onSSR(async () => { - await load(); - }); - - return { - cart, - load - }; - } -}; -``` - - -## Adding item to the cart - -To add the product to the cart you can use `addItem` method: - -```vue - - -``` - -## Removing items and changing their quantity - -To remove an item from the cart use `removeItem` method, and similarly to update quantity use `updateItemQty` method: - -```vue - - - -``` - -## Checking if an item is in the cart - -To check if a specific product configuration is already in the cart, pass it to `isInCart` method: - -```js -import { computed } from '@nuxtjs/composition-api'; -import { useCart } from '@vue-storefront/commercetools'; - -export default { - props: { - products: { - type: Array, - required: true - } - }, - setup() { - const { isInCart } = useCart(); - - return { - isInCart - }; - } -}; - -``` - -## Removing all cart items at once - -To clear cart items (not delete it) use `clear` method. - -```vue - - -``` - - -## Applying and removing discount coupons - -You can apply promotional coupons to your cart with `applyCoupon` and remove with `removeCoupon` method: - -```vue - - -``` diff --git a/packages/core/docs/commercetools/guide/checkout.md b/packages/core/docs/commercetools/guide/checkout.md deleted file mode 100644 index 20c5283d37..0000000000 --- a/packages/core/docs/commercetools/guide/checkout.md +++ /dev/null @@ -1,367 +0,0 @@ -# Checkout - -Checkout is a process of providing shipping and billing addresses and selecting shipping and payment methods needed to place an order and pay for it. - -## Collecting and saving shipping details - -Shipping details are information about the recipient's address required to ship the order. - -You can load shipping details by calling the `load` method in `useShipping` composable and accessing the `shipping` property after loading is done. - -```js{8,16} -import { useShipping } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - shipping - } = useShipping(); - - onSSR(async () => { - await load(); - }); - - return { - shipping - }; - } -} -``` - -`shipping` property returns `null` if the `load` function was not invoked or nothing is saved. - -You can use the `save` method to save shipping details, so they are available next time you `load` them. - -```vue{2,15,24} - - - -``` - -## Selecting a shipping method - -`VsfShippingProvider` is a component that aggregates one or more shipping methods from a single provider like FedEx or DHL. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. - -The component is responsible for: - -- Loading and displaying available shipping methods. -- Loading selected shipping method. -- Selecting and configuring shipping method. - -All you have to do is to import a component and add it to the template. - -```vue - -``` - -`VsfShippingProvider` sets `state.value._status` property of `useShippingProvider` to `true` or `false`. The property informs whether a user is ready to go to the next step (`true`) or not (`false`). - -### Extending `VsfShippingProvider` and reacting to its events - -You can pass asynchronous functions to the `VsfShippingProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". - -Because every shipping provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. - -- **beforeLoad** `(config => config)` - Called before loading shipping methods. -- **afterLoad** `(shippingMethodsResponse => shippingMethodsResponse.shippingMethods)` - Called after loading shipping methods. -- **beforeSelect** `(shippingMethod => shippingMethod)` - Called before selecting shipping method. -- **afterSelect** `(selectedShippingMethod => void)` - Called after selecting shipping method. -- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked shipping method, e.g. selecting parcel locker on the map. -- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked shipping method. -- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. - -```vue - -``` - -### Accessing current shipping method's details outside the component - -Sometimes you have to show the information about a selected shipping method in a different place than the `VsfShippingProvider` component. - -For such cases, you can use `useShippingProvider` composable. It has been made for loading and saving a current shipping method. After loading the data via the `load` method, it stores the information in some property of a `state` object, so you can access it from many places. - -```ts -import { useShippingProvider } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; -import { computed } from '@nuxtjs/composition-api'; - -export default { - setup () { - const { load, state } = useShippingProvider(); - - onSSR(async () => { - await load(); - }); - - return { - selectedShippingMethod: computed(() => ...) - } - } -} -``` - -## Collecting and saving billing details - -Billing details are information about the payer's address used by store owners to prepare invoices and payment providers to evaluate the probability of fraud payment. - -You can load billing details by calling the `load` method in `useBilling` composable and accessing the `billing` property after loading is done. - -```js{8,16} -import { useBilling } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - billing - } = useBilling(); - - onSSR(async () => { - await load(); - }); - - return { - billing - }; - } -} -``` - -`billing` property returns `null` if the `load` function was not invoked or nothing is saved. - -You can use the `save` method to save billing details. - -```vue{2,15,24} - - - -``` - -## Making an order - -After the user has provided all the information required by your eCommerce, you are ready to *make an order*. To do that, you have to call a `make` method from the `useMakeOrder` composable. - -```js -import { useMakeOrder } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { make } = useMakeOrder(); - - return { - make - } - } -} -``` - -When the order is created, you can redirect the user to the page thanking them for making an order and refresh the cart. - -```js -import { useMakeOrder, useCart } from '@vue-storefront/commercetools'; - -export default { - setup (_, context) { - const { make, order } = useMakeOrder(); - const { setCart } = useCart(); - - const processOrder = async () => { - await make(); - context.root.$router.push(`/checkout/thank-you?order=${order.value.id}`); - setCart(null); - } - } -} -``` - -## Payment providers - -A `VsfPaymentProvider` is a component that provides one or more payment methods. One such component integrates one third-party provider of payments like Checkout.com or Adyen. This component is usually the only thing that you need to integrate a particular vendor into your project and is always delivered as third-party integration. - -The component is responsible for: - -- Loading and displaying available payment methods. -- Loading selected payment method. -- Picking and configuring payment method. - -The first thing you have to do is to import the component and add it to the template. - -```vue - - - -``` - -The next step is making a payment. Each package with a payment provider might use a slightly different approach, but we described the two most common below. - -### SDK takes the full control - -If the payment provider's SDK handles the whole payment and you can only provide your own callbacks for certain events. You want to make an order in the `beforePay` async hook. - -```vue - - - -``` - -### SDK allows externalizing pay method - -If the payment provider's SDK handles the process of configuring payment but allows you to decide when to finalize then: - -- Composable shares a `pay` method. -- Composable shares a `status` boolean ref that informs if you are ready to call `pay`. - -```vue - - - -``` - -### Extending `VsfPaymentProvider` and reacting to its events - -You can pass asynchronous functions to the `VsfPaymentProvider` component to hook into different events within its lifecycle, override initial function parameters or react to specific events like method selection. Let's call these methods "hooks". - -Because every payment provider is different, not all of them are present in every integration. Always refer to the documentation of a specific provider to learn which hooks are available. - -- **beforeLoad** `(config => config)` - Called before loading payment methods. -- **afterLoad** `(paymentMethodsResponse => paymentMethodsResponse.paymentMethods)` - Called after loading payment methods. -- **beforeSelect** `(paymentMethod => paymentMethod)` - Called before selecting payment method. -- **afterSelect** `(selectedPaymentMethod => void)` - Called after selecting payment method. -- **beforePay** `(paymentDetails => paymentDetails)` - Called before pay. -- **afterPay** `(paymentResponse => void)` - Called after pay. -- **beforeSelectedDetailsChange** `(details => details)` - Called before modifying currently picked payment method, e.g. changing credit card's details. -- **afterSelectedDetailsChange** `(details => void)` - Called after modifying currently picked payment method, e.g. changing credit card's details. -- **onError** `(({ action, error }) => void)` - Called when some operation throws an error. - -```vue - -``` diff --git a/packages/core/docs/commercetools/guide/product-catalog.md b/packages/core/docs/commercetools/guide/product-catalog.md deleted file mode 100644 index 693ca74bf1..0000000000 --- a/packages/core/docs/commercetools/guide/product-catalog.md +++ /dev/null @@ -1,236 +0,0 @@ -# Product catalog - -There are two composables used to interact with the product catalog - `useProduct` and `useFacet`. - -`useProduct` allows loading products and their variants when some parameters like IDs, SKUs, or slugs are already known. - -`useFacet` allows more complex queries where categories, search terms, filters, and other options can narrow down and sort the results. - -## Fetching a single product and its variants - -`useProduct` composable is used primarily on the Product Details Page to display information about a single product and its variants. - -Use the `search` method to fetch the product and its variants. The response is available in the `products` object. - -```vue - -``` - -For a full list of parameters that can be passed to the `search` method, refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -## Accessing product data - -Once products are loaded using `useProduct`, access them using `productGetters`. Depending on the product and configuration, the response might contain one or more products or variants. Use the `getFiltered` getter to access them. - -### Accessing products list - -Use the `getFiltered` getter without the second parameter to get the list of all products. - -```vue - -``` - -For a full list of parameters that can be passed to the `search` method, refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -For a full list of available getters, please refer to the [ProductGetters](/reference/api/core.productgetters.html) interface. - -### Accessing master variant - -In most of the eCommerce backends, there is a so-called _master variant_. You can think of it as a default configuration for the product displayed to the user if they haven't selected any other configuration. - -Let's use the `getFiltered` getter again, but this time pass `{ master: true }` as a second parameter to only get the master variant. - -```vue - -``` - -For a full list of parameters that can be passed to the `search` method, refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -For a full list of available getters, please refer to the [ProductGetters](/reference/api/core.productgetters.html) interface. - -:::warning `getFiltered` always returns an array -Even when `{ master: true }` is passed, the `getFiltered` getter still returns an array of products. In the example above, we used `[0]` to access the first element. -::: - -### Accessing products with specific attributes - -To only get the products with specific attributes, pass the `{ attributes }` object as a second parameter. - -```vue - -``` - -For a full list of parameters that can be passed to the `search` method, refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -For a full list of available getters, please refer to the [ProductGetters](/reference/api/core.productgetters.html) interface. - -## Fetching a list of products and available filters - -Faceted search allows users to narrow down search results by applying multiple filters (called dimensions) to the catalog data. In the clothing shop, facet (dimension) would be a brand, size, color, etc. - -`useFacet` composable is used primarily on the Category Page to display products matching specified filters. - -Use the `search` method to fetch the products. The response is available in the `result` object. - -```vue - -``` - -For a full list of parameters, please refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -## Accessing catalog data - -Once data is loaded using `useFacet`, access it using `facetGetters`. Get the data such as products, sorting and filtering options, pagination, and much more. - -```vue - -``` - -For a full list of parameters that can be passed to the `search` method, refer to the [AgnosticFacetSearchParams](/reference/api/core.agnosticfacetsearchparams.html) interface. - -For a full list of available getters, please refer to the [FacetsGetters](/reference/api/core.facetsgetters.html) interface. - -The image below shows where each of these getters fits into a Category page. - -![An example showing how each getter provides data for different parts of the Category page](../images/faceting.jpg) diff --git a/packages/core/docs/commercetools/guide/user-profile.md b/packages/core/docs/commercetools/guide/user-profile.md deleted file mode 100644 index 7cd7df8983..0000000000 --- a/packages/core/docs/commercetools/guide/user-profile.md +++ /dev/null @@ -1,267 +0,0 @@ -# User profile - -## Loading current user - -To access the data of the currently logged-in user, you can use the `user` property of `useUser` composable. - -```js{8,16} -import { useUser } from '@vue-storefront/commercetools'; -import { onSSR } from '@vue-storefront/core'; - -export default { - setup () { - const { - load, - user - } = useUser(); - - onSSR(async () => { - await load(); - }); - - return { - user - }; - } -} -``` - -`user` property will return `null` if the user is not logged in. `userGetters` should handle such cases and return empty data like `''`, `[]` etc., depending on the expected return data type. To prevent empty elements in the template, it's a good practice to check if the user is logged in before using getters. - -```vue{3-5} - - - -``` - -## Updating user credentials - -Updating user data (except for the current password, which is described in the [Changing password](#changing-password) section) can be done using `updateUser` method in `useUser` composable. - -```js -import { useUser } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { error, updateUser } = useUser(); - - const onSubmit = async (formData) => { - await updateUser({ user: formData }); - // "error.value.updateUser" should be empty if request was successful - }; - - return { - onSubmit - }; - } -} -``` - -## Changing password - -Updating user password can be done using `changePassword` method in `useUser` composable. It requires the current and new password to confirm user identity. - -```js -import { useUser } from '@vue-storefront/commercetools'; - -export default { - setup () { - const { error, changePassword } = useUser(); - - const onSubmit = async (formData) => { - await changePassword({ - current: formData.currentPassword, - new: formData.newPassword - }); - // "error.value.changePassword" should be empty if request was successful - }; - - return { - onSubmit - }; - } -} -``` - -## Managing addresses (billing and shipping) - -Managing billing and shipping addresses is done using [useUserBilling](/reference/api/core.useuserbilling.html) and [useUserShipping](/reference/api/core.useusershipping.html) composables. - -Both have an almost identical signature (properties, methods, and getters), so the examples below will only show usage of `useUserBilling`. - -### Displaying a list of addresses - -To get a list of addresses, use `load` and `billing` or `shipping` properties and `getAddresses` method on the corresponding getter. - -```vue - - - -``` - -### Adding, updating, and deleting addresses - -`useUserBilling` and `useUserShipping` composables expose number of methods to manage addresses: - -* `addAddress` -* `deleteAddress` -* `updateAddress` -* `setDefault` - -Below is the example of using `deleteAddress` method. - -```vue{7-9,23,32} - - - -``` - -For more information, please refer to documentation for [useUserBilling](/reference/api/core.useuserbilling.html) and [useUserShipping](/reference/api/core.useusershipping.html) composables. - -## Displaying user orders - -To get a list of orders, use `search` and `orders` properties and `getItems` method on `orderGetters`. - -```vue - - - -``` - -For more information, please refer to documentation for [useUserOrder](/reference/api/core.useuserorder.html) composable. - -## Protecting user profile routes - -If there is a page that should be accessible only to logged-in users, such as user profile, you can use `is-authenticated` middleware in the page-level component: - -```js -export default { - middleware: [ - 'is-authenticated' - ] -} -``` diff --git a/packages/core/docs/commercetools/guide/wishlist.md b/packages/core/docs/commercetools/guide/wishlist.md deleted file mode 100644 index 10a384ec07..0000000000 --- a/packages/core/docs/commercetools/guide/wishlist.md +++ /dev/null @@ -1,430 +0,0 @@ -# Wishlist - -Customer's cart can be loaded using `useWishlist` composable and data can be accessed using `wishlistGetters`. - -## Loading and creating the wishlist - -The `load` method will load your cart from the server or create a new one if it doesn't exist. The `wishlist` object will be `null` until you load it. - -```vue - -``` - - -## Adding an item to the wishlist - -To add the product to the wishlist, you can use `addItem` method: - -```vue - - -``` - -## Removing an item from the wishlist - -To remove an item from the cart, use `removeItem` method. - -```vue - - -``` - -## Checking if an item is on the wishlist - -To check if a product is already on the wishlist, pass it to `isInWishlist` method: - -```vue - - -``` - -## Removing all wishlist items at once - -Cleaning the wishlist can be achieved by `clear` property. - -```vue - - -``` - -## Summary - -### Common usage example - -Here is an example of how both composables can be used in real-life applications. We have three components: a product list, a cart, and a wishlist. In the examples, we cover the logic of adding/removing items from the wish list and cart, working with getters, and loading state. - -The product list: - -```vue - - -``` - -The cart component: - -```vue - - -``` - -The wishlist component: - -```vue - - -``` diff --git a/packages/core/docs/commercetools/images/faceting.jpg b/packages/core/docs/commercetools/images/faceting.jpg deleted file mode 100644 index 49f6372266f4155f45790e2c1c3569a299777cdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142306 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 S_bOcd=kWd?_<#F%_WuIqy^~)6 diff --git a/packages/core/docs/commercetools/images/setup-store/add-product-1.webp b/packages/core/docs/commercetools/images/setup-store/add-product-1.webp deleted file mode 100644 index cbe8b54f24020f9440e4df476e0457e3437c90ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8714 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

a 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 diff --git a/packages/core/docs/commercetools/images/setup-store/add-product-4.webp b/packages/core/docs/commercetools/images/setup-store/add-product-4.webp deleted file mode 100644 index 28494634e654f1e3fea6436b09ae9b0cea2bb266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50030 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 diff --git a/packages/core/docs/commercetools/images/setup-store/add-product-5.webp b/packages/core/docs/commercetools/images/setup-store/add-product-5.webp deleted file mode 100644 index 2c0ca816e312d2dea99d57e32bcd9f4e78b2f352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29982 zcmbTcb9iLknm!!c>7>JsZQHhObkMPFn;qM>Rk7`K?2c{Jug{!0XU?2?XRh!1>Yt}- z*VbC=er{B4WhrrSOcxLk4KZOwbwy4>xIgdh^}(`1sbL_M!1)s-b7aYiNQjA*$`$L- zU@dLm(XSl@>qbex0r{EZd-)kY6j+5wwM&0t^Q`fFxSdn91E%?V2`YS8-+O%rJO_Yd zAN5Z(A6JXuZ_tH)?=wc*7rCe1{sKnbYy$4SaDXPixkuEG-3O3+kkhbJhDW;-zozXK zA0%Iw55Swkg}{@Ylppa+*cD(?z*?Zgcf%VED6$Qh2lxP!K3NuX4-CwJ5+4KasUNjB zIg`Nh&$~~F2jJ}Xq<{)g;uHGG?>%mm;Q%-RobWSxkAFb^TzNZo!c70v`26~;unF`x z(CIPx%zZ0;iTf}(dVdGx{5gRLkm3md1d{q1d?>uvJ^`AQ1Qp`tJ8C@d~^l z=-%EJ00JN0SU!-?0ZGWqz;VALpwuR{paX+ z{`dWNj!)z}g7Z%yKnhR=nE3(x_DIN;e^0X5W`r}J*X zt+T#-)YzN{Hv@&(!SAl@uSx%XQycYwGR??9XqYQc+pl9a()?#eGfvP%qn$!*kuv`m zMA|;e#BYCfhOmQ8=9dk|w!j&)R_Uu>H`G}27%h6cje{w?Y$>yYo9aeUJwn13eQ?AT z#VcnWiIkX#4=q2?Lfwz7KxkGY7Ot}5vq#BfzpXh6Id;iG6l&2J_x8&fbxBS!ZaK&f za9QY;@Y0{5?OlNCN%G6Din?Jh$UKa;1~}mRyg^zvG|3`1+@B2m#h5B8{e}`sX=8|z z+2A=7rafU@t2$wgFTyKkBgf`$a`r4KBNdP7Y(4QBN3!5Y=yBJxx6>4N)*0lpSpRLR z67N~+o9PaNd^Aq22G+I@YI4YQcN zLh0!6EWLu&NVuv7wMPyhyX}eu6%Kmcz0V1^$(v)A>pPY?w1>|$H?451O}`JIJSdlPIPq0Xu!+#7-exp~uMfXFto(*7fP+VtX6XJiD)6gthCAIEjGt)q z%*hv8NMe2CM7!U6^m9=BLi5dt`0&bz|8sEvxX;s`ddnXq=ORdhI<>+FNOgBOR3-+7W8FAXTLwW*L8!%j`FkKMoKw5BBxVDbFl>O!Aq0N2z9jGGsg0br@d zf7Kx{Na#w(LCJ6My=)3j&+Y=NFpxyeaH1izaj}68=E)me3En1BuGhS2c)5bg_E7OT zt&)tFr!!%uydkBvV9N5Z5Od@VqM@Kj>iyIZm}TJ8zeHr-OdI^es2q=a_jsMqaa2m| z6;PYkUUql0V2Z_=Ky^4?6RY7>OHp|i&rgeqIFB8`W(HIL5-u^z+i?O!nr6u^xZgDL zMINi+1x88y1J8;n&l-l z8yMBhmd~mN;2;bkiqCV;gg6>@d&j+tzVYd>v4*`giC<$`^rki@Dewn5s3Q)=uSZYP zB*UCUL;Fik`8!dO=H_Gp_SaqvbwI)Z5b&n|7dDU#Of5M;0a%vya7hp$i!&y=>InyQ zc_9Omf#jzvcD1K1-K2oz97hAjDp&$*I8aDxk8qNm8v6embeLuUNieYCY|{c0%Ltp# zV0xF2#ntJ?s1wm(0k(7^@?8df?>CJ-QmuTfoIy7gpXjNX6nO%>>;2cw>deoO=+f#y zkSGf)Wl69d&QdBeN^Z-_O%$8dQhA)eU}1W?zSxlJJYEq>!%piBVFajN+C7ku<|Dl>B3eRGbGHK=&#;%=#>1>D1KJ)Qh zzY;)~`Vxrj++PhG$_nFVf+t(Y1T6rN^RGSKcJKL-<=^?k`lQTieHKEa7SG+>n>Hhj z2g1piH`)1rikr*f0LI%*GfbgE$HNnzPf5f6DJxD&&d@*OM!?cKZGMxce7COK!!)+f z@y^W@hxr%?pu|)kCN?e}v1`0MEg(=7Ifd~NLM|ivMQJ!gA$ID@Q;LOK*PUM;(s%`4e$lMmJ29Ym!3hUL zm9C?MSxbc$zP=ME4dLq?{Ed^GYm>C6GpCvtk(x*UuD#8oe$VDk03 z7}%a%)GWV>B?tmgYW{t}OQ0S+@L7;6QnZE|QyQuk8$lCAX!2i3>Hby=K+$1XF3&9= zh5ppjJEAGe{?@UjPT6H{+H!cvcmxB=8-&H_HH?tYJqWYwI=}s17or)S0c{$A&f2iA zLgcGLxo##34KQi{tU(#ZX%_)hta~6U`uJt{?}?I`i-%M@RL)T-%4HoBG5Da}WsO0lMh2D7NO+TB{QY2HN z_}?_rtMO9?_5u&x=5O70@}I5w;$JzXAfLsFsNidCdcY(cQC*hKhBh1|lkvWhQ1>tG zdB|By=#MdTc$}g4O>s}|m}=fk)}QUHvi-j)YV7Z;4xtX`-C`sQ&MJtnMr?w3UEp|B z;gkSk6QM;bPQBcJ_TfW_J%42{SK5_>%8vHr{Ru%BCgSi7GUm1`5+E z>&n;vqB5){-t4dCtGA@&;D5HFl8lXwDPZjfR}?aPOoX-N^LTl~-oA-^cLkP`6Jl)0 zt&q-@(=N>%<$0823{x3>{;s^0I54!6B(T`n+M6V*pd3iqM`E0W9OUSZ63?2O_Q^+4 z$rBFzHnt?y<@q1pC%YxCdJ8sGX}=7$^3qDl>s)Lw;`dkp^9O2$(;o=@-RhoJm5LoI zWB}J&U25j*j?0b`9h{N$T>YPje$IjX3;rJ5{9x5E9~e*OfB06Oqny%o{lddXlhPjU z@aBQV8x>#LLG^qpD8wMZhg$OeGtj@&T=b6|`9GxS8S@`}^oPG5Ao%mb79j!+kf4RA zgB2@FJ4L+VTbCU{1k-bQ_5N;S{w7tdW?3mEe^fxFerqc2zH|GR`2Wt|+0RRT`NAJ7 zf92c#m)OsfIY1}QWB!|c+PVf5{FOiK>ei;W-zR|P6kgo-$r!exRRU1~>SGlDW48VT zgRG_C9O3iV!2jap{}|IUw616WSvj425xOU76~@^fsh~AXC~d}Pw)#P*+i2f%B{A9ZaG z-(>N(_kVT#zl!2N+Vmd^dR4QbAo~Ern$4y8M>gMj2pIaN|0*&4%WUVs!8<=twfmzH zEY9w?+mrcaiKTB#Fwmwlf7~V2nnT(kdwB#ktf}?L{Uav)!%6>3a)?*J{rRB?;63t4;k9!F+a0>Rn8s;7;|gv+~~);D3a|VuEdOFtTN5 zq7?+Er-idytv9fs|J3HcWBb2W>K|~Q5o1@UFVvJ|1K+v73|vP>;rb5>{@*Wj{3a^5 zsmj%R#S8Fd{|lf0cQ5zvm_B^u3B;=^rA`WyLfl(!_m=*iNX6ifG4M#avb!GJ(QH;R z6dF4_xWD1AVu1B+ABpA-2VcmNxNan<=Qx(rNH`3l;#T)2prM*hhk*}VtYu=M6!G6f z@IQ0$A07Bq$TUk%Atyu=+ET~#A0tX3`#+bUeoI4Mb#y=!p>+*HmT;!CzV!cZUAbWA za(9ophN{ksz2!F<+ikS?VZ@Q5oMuY*95K z`*+CCFc!a7BsoCD{MJ|Vf9b=2tgZn8AWZW+!H&rEZgW2H8AAhd{M1V4YJNVd;-$hw zhs%T{sa^Y=%5;Wmn=;|+7W0?1EulK0)b@JR8hehING=Au;3XuCa`fRgoN%{3s1NKw zQ&i;NI|*c*n6zH^m1)dN8>7m9mA;aCfA~fDE~Ss4C{9caCYfSa+OR@PdjFBf(`7xvL#G{*iO#Q(Cx{zqK@ zzxOf(0r>>R3xXikCbtH2e5F0V8_)9eHi&W!4srgW>{s<(pt-6(E(ooP7b{V;!Zkma zwRVHQG^)#77kGK>$xU~xJOm9qNiocuT?&ppB;jr~h z%RaG#KyQ#|09L%(+XwsKLX|oRezcbuo#x`DO)mrxIf#DonJ;>auN~CQrtr5u;l`J4 zcgG3gHiDsSHz1S|urd_z1Ip!1ad_r^4Om1BZ{L2bNyVtGGO9<5|^ikO}}Vt>SkQJ30!9_U?O)UU_ZL_8Oe zv+hYRvR}pbh0=eojcaMbGI)8t#!{Va4aeEna9kY&FTv2hb#;pn_Vpn}u{R!Kuq6`5 z!tTaXILPYKPo>>T^v957Z&N+x`UJ3_Mq$oylV-xNpw zNR>(}#kV*N=>vNF2rJrb6!$;`unPuE{OspjN{&_bwb5TC>T95)h_Jv`h%ofWnkH| zWosVocfz!86rAvALh)IulneA_SQ#jTLChY{yLNqUW5x|vATk74pAA8r^6t1yB?M@C zvEgJ`BhnS3EmeTR!Jdme(bL@A1F(Cl*#LPM;q)UBTJ@=3W8+71h~&v(4_Zf$=lMA2 zcaxwhRb%>aaXgx?9CrFXIsA&61rlnG@-%wMK>}|n#CleV-;YJOzp{kA4}^F1+I}ql z77y*-;Zvx?=}OXKsoPDu^#$GQ5z$XM-F&+?es2FnFeO=Vhq9<`sXlHvAHvKK5KJg? z1;H93`q?CK+R_DC4VutS4ww%e;sL?sCu}Z*U0O*&>Pva@=E3}}W|739#n5ZU@)Xzk zUZrMH21#yw9=k>~p-L@;(dD|%v_&Z|m=yII(U3ZZ%NSDZP^jwOS%@8y@}Tm~=3Uv+ zml@P{H2eNcLB-re2zlF$0hbkye$&%M`LdJ}#G65K#69h%$ZJk9!s;t-HjW{2J;ln9Xwc zz<7IcLl+*Z$VxP;4Wcx`z|m=#b#5XMIaFC8mH{M9Hp=Bq%@UHY3)6Af!E^pE+Ma;2S657dg^AcLHQyWOiQzwj*Ay%Tt}F>8+f_5 zlS)XeZI)TDihdvTX=wp+;Nz}Hvy z&!taoY^$b>{zYPHi7(jsR^_MqKAaUXV>RElP-YL(#Lbs z%E6=I4Om^$wx~K^T;Lt!cP3w6KF38@MD~44Xull!31XJP={MCYq(YpY!Mg=zwP>As z7B5I(iJo9z4iIoG*aB?j>KAThAVfFMuaR7nNEwffDXHHYWNXRQOxKL`G%+_BQX?jz zBTQdMvm>p_c1su@v(lXSK@nW5OORn^#M~C<+YBxA@DgGZQ~Mqvv&z3|k@^G;_$h4` zeOqW2TYTRes-r?=%ggpp$M1ea9>lDQTMgA|ej01)@lYac(Qhy2*#h&OZdR!Dai7`) z-OEGMis3GweF;o_;wklZE;78DvP1I9RLl4~}+x2sEEAv1n6tY3}EgcpNnGCWni>jSo z+u6|&dJu6y0u$Oq4IF1#*#+Vu$$*I9ZAr3N40>oreDuLkVLY)3H<%=R;gw4Td!jv= z9KjHiL^@W>>t~7^L?*KJDSin>L;U)r;hy-h{`|RcKt)KgK1pRtaoYIOK7YH;c$9GS zs(@}I`6Y87JL){`bq=%#Tt%GjMVQ0!nE`UKAKe{VjvA4C7ctUJTKmRYejlH@ovr>H zl#RAJ;6zNlS@+Gd7>3LXD?v}x`cOo8`^0Du!Y8_BMs`}dlSNPE&5Y=ei}>3M^O2XJ zShf>SIR&H!Ru!s_qsr0pkZ_{!YXZVN+@;ZRK2d|A>E1i?xrli$9N4e?r31NDv~Q`LpY6`vsrS^QPIRy==%` z$)It6NM(nNo*+JPLNg5}jkRY2Rgt6y1C9QGuo`5=)QT*!VQ|o3d`_5}VjM`oKu7Ki zqK_fDN!&Z8AWN~(7CUJS(UtYed4pV&fx-{#j8?xe8+f$@M5XPV6{C%CuSby`ANaPCz|7{gT_3VC*T;4{3LnL2Jbt9fIv?dE!wNjVb^m#=h#@q(M}1B<28$Zs@w z6>Is zpQ@>M%g=%3T+=|Nx{NpzEgc6Cb|-O*%B`18xoW~s`6dH1BSp;Z_GIkapABQn6F=-; zV|VOG&E@Mee|Mo){4$jr?AbKgn_)Z3CQ+;~6i4|z1K+J47@J_X6 zMeDEuPE2!n>@#FFsGBZ4+GE)uz=z>2YH6)eYXdQRQFU?}Q~;hJ9C5XKi7$eS4;{Kv z58y0?9OX`LVXq&!`D6AiTFDYtY<}vH*g%QGhz$vb$VIM?f37Jc<9x-e)2n3e znX_TZ0gl{QoRqkXFc&`O5l-j~qREdNUo&qm4-nAJ8%woNs%5G`hVKfijozfxx2b1v z3~8kaB1;D)uFhZezfU`!-$6`5L86_u`!sbKP5x330R5fvB#z&5Ba=kf3yBQkvau9P zhYLYK0YJOh8Q&DY18)++NdZ#ZJ^Vl$Kltu*owx*O?eNqt>^C{<3IGf$zlw8^p-)ZE zK8(OAvdhnF8ssOUvWwGkgXQXg4Nu&a-vPs5d?pv`vW7Ko(ZU2Mw)5hQrm0y+#CKck zS5*zu;uy+o7_g(LORBzJRz!;Dyh-ut)g+R$@!0LnOM|(V23XWUrn2C!h-C!*wC=+R z0FjVSs)W;;TtD!O#O}4OM7$T*%M~Hw0_m( z>g10p=g>OExgu~XZ69s&{|BHz9OPxNjj-F5*cpQqRna8@mVsK zLtt-#p6i#myu%R^ZU!b?LLx^)`q0TO=7UV;}uV6KsVl~QA?k}%saMR zyDD{T!{Ddxmilg0DQF!FB$#)aH(t-8V^RSxs_Dhbb81p1C( zHZ&J2rsrBL8gr$KUHql3iaJ^44j@nf+)d+uHYc>@Yfk zk~_=wLXGqgrdp-_bfWTTI>I1Os*-6G+`@iP4NlWAmq~Okh!BrdF5ku%Mv5dOh$dzB z8RHj*Ek#q3vzBv9n;|iKiwB!kT2j`KRM0$EfwW@j@e||#{H&vZt(;u2)xuc%9~fKX z7|vyptS=xZjDVnHv1yVf$wBK}FCysMdD&TPE|Iy7&S)7vVoKs@uUqFB@7+jmQIw`Z zHRoDXhK8_LCSkJh~S)LT9pe+*V2A;)#wCI#%QsfJ%5}exJ{gO_?L5 zY=aAoSTH(8W*`=Xyzu$;;t9Kp~q4PwwW!|vRFLkwaWUF<0d6w-o zsZ1v(+CspYxSAmMysi&fl~Yz;JJz-Z3n=$lEasB#xzgtVKS@RB3{@57;JC}Udy9+P zE3V?6VHx3h;)?a{dLhgH>dmGdw5kBAQemjG9EAh`Omtel6`SVcd#8eh7*LyJhnD5GQStcU-DKiKjX5 zPYiea0n7;pY=;|D*LEG(79rxJ1P2IFY@Zmi`oXo5p3;xW>4uj>pSN(ymML50@IK#( z|1rk$MLh1Rxlwk7i9LCzVrhpYblYEc>r}Y`+j;2@`%=^k81V=6$;lKO?-D;EC6G9j zn5gMiR>Fi#e{Q!&W~fw_a5TR4g5VR`*CZ&6r3zZ@>UB;I9)56IZ0hKb6-;2&Q+}}d zvC(`vSwU;YJWol-x=A3d{!AD7TvLH!Z{3^vt;HzoZ+77qr~sk0M4W4lew~9!QUxyuZP;k9ws4XQ(=gVF_#4$S{UFc%H zp@&!oR?ac#bk{evXDgDnnx1{;ann3`+9n*NW;vdF-EdtkO+4yF=_I`n=z$AiPZan{ zYirngtm9%>!+9__I4+AK#a9CV6`$aT%dHn=@i(AxPUUWOcK$L^GcmEr;2_lRbG08^ zIW1Qyq|oHvnXIt}P)QjMTIt`5Y^2mPj#zI)5>M}|`Q)>IfQy)^| zMwJ{dj>&og{PYy%;hKDlVH_Ovl!HHVUwKn=<)yDw-oJeplSaIBU~=JB0k?=gWkqTh zHF*4_;aab7=ym9#@1%TnM;%_^LE-{i8^eD#CPt+C+;k)A9MT_mRx4N4kH%V%5Dl0^ zCGL_jcVn=qtX@tBRrvi&Koyi`p6mFYs;prEMwkDK#=vge_|K50C!=6fhzHmd#7~C> zG=Le!!W*hF6zc+$KX*nHz98G!6)%lCS5Ta4@Vnbx2y1bd+e`@F+bq(AF{!nZJ^ELV z?}#UYuwpjBSO(UWkZ?x#bie9t*_DSk!w$&pNa9gyVb8no6IUi75zbfUxFLz+_-x;# z+D=}wA3C|24Y|0}(X(t@l7FRV-FY+8bVVG_>1BC?t}jyyR`k-2lano|Cf%3*V%J;f zHVo^5SR3mLXC^*>S#g{^PugwB!X4Xhuv}E|nhj~j65{hPs#F0Sn-2MuI=tE(KrFUVO*!X+oa<})rBZ& z_wFL2=y-497WC#wj#z!YvF=4;6w$=g#efipIW7MgPerubdf%?18?Ab4tb}mQvt1D-SElWra*Vbsw7cK%nSluJ##vJ-_E0k}C@j_)OPY#w z`5-njCk1;9tG`9=DzxsGgWjuM{Nc>vNsZLyEDQ=rwpj%ouFa)MLsbN%Yd*OGV{L!; zg}zOuEv|Y?#itD~G=dFmk>EyZ?smBG#IZX_L-WllEW&e+B0od0SggP-uF`y7E(0o6bW)DNwrEsWG#R zr<2n4MjXIWV{Cw-M$nim@ict0aq{!TTCAenV|X*cEV1HF}g2xj}e-=cme*cpm)e$f(Gq^r0l2lOkHAksaLsvM^@1 z?TqMI`V2r3DYe>Ua@aHp<_kxqPRVbY@R437QNH$Vef_X%E5FUQf5o9|K4p}IIiV|rE&QUvy%(Zjl9c~trIF5FhJ)Y+uGv>*nXjeI)4N&gQXgu2 z5_kc9`j&^(Vxe%e1nBcU&hDofhj2-sU4OT&lpZ!L$imVL$Mi z=675%ib3g6Wg|HQ2tS<4*p!4w>Bu331~NpOxs9q#NeDadDmfK^O9Y?TaxF>yd}pci zZjY6^3e1Vl!NNv4+U94IeT_n>q1VaJkY&C-(`20U6Fng zLVtq1IbfHrf(6lpWiK(84b#!q>3%CJ^n10&+zB_Ag_?sHb@l`lT>B;7fJb^qW3k&m z%URXlfqUXs)2K~1WSfQY_}78us}}NW>!`I;59ICUJ@2nq(UZhEk&3Szv*Q{FG~uYF zyoNe}K_c!Ev#UmxQpK8VC-Z*N2%L*C5siGx(v+r#)Ww#LYj=f5vj7)(0Nh zO6K@s7H;T|9L0?TLDm47A%rp18(_IAj_?tKu{;4aak_7j{7X*BmN*pLrYU2XEVuLX z_Xq#9drxQ!wJuBKX&GqF!ldze5g+LNEo7knttR>|`vjJJ<|M$Fl zULJZed|%U$L?o&;W`}War;PfQ67`TL3+qEBa+;%$c}nE9c46zgshMUB=NDF{>S&$E zS8@@vA`FCenXw`h%kOP;6MOk!+g(DEuL|qkT;Bb77c843cP50dukl<D6woLd1(wo$lyCVN?_fu#TNT6D7%XdM99zdW=+Yo(1S(`oSE7$+)+MMDtAK(78 zdQB$w;+;ob0u^R`AO!Rz3jfX1I?(7RO{Z|)Y3GC}fiqiFo}^<%Rd_?;?{fqKqx%8l zNXaP=o<1h!))$KfKOQDl@4a!G$i(H^Y)}HZhWG?JR5=8#{e1$g8Z>7~hXN{#D;5KX z)nGfvFm^i{9=L`xBpl)|ZW+V3D!_3+6HMU`&ey$Dyc?caHRWhJ^BMgl2>BNE zNFBaPu*6&uUlV;3&5rQ$E@^c0z(|K81iZY!C#V$uEYx=rv=B9DjX<$+eESM}QFdH^Gem0R412mC=iE?xF&Z&x9-X*4p-hl#5bhN{?#qI8LG&jV36yOb zl((aDWC>EPG731gtm=!ZZB1Bo8{A2Gpd5W?NwQbL%0Wpbah%*~h*R3#pVrc1{5q6t z#R570o@BWh5uryjEAZuaH4LRkkP5%GjVh^vMq6fzM7gq?#WUYu4G=l{ zE-Ku({kHK_C^Nb-`-9xm15I9-r8W%DXKo?7Fwk{76dGRBv$tLlHL(~ME# zzSumfIfo|j)z4MjZtF^ag2qt zeXx&(?D$$N`%Droqqzt805F6i!jSh&k?nuW|DfwI#eRZ{S|YrGk$q2FbS1`GG(}`J zljw^t`MM+|g{uV@I;uGHM73E`_zlAXBZ2P)u!72`MQO*RZbRNzK6$B5;m2Z?@#Tj> z_}59;k6X1oT($uN1To}0Vok)cQwE*`TFRg3aEL&&w-G@YuOE)1RY=Qq(aYVPnA%qW z6_TkPMqA%Z=*4%s0-;&9eowX7&Z(BkL!bc_n%3lwog5j*zNiHj?%j<{bY^S#V5Q5s zR{xp?Y2qy+LNT`t@%A30fPSMHN?kg_0pa}z#)&4u4pzE;L-n|t5 zTv5>aCJWo@dVj%{AJ7J+|kGDMq}BA@_{)eCmyw}ULp-C|kZ)%Q}g zbLA1oC0+BF@gm$Z=#`$C0ixT8Yn5kQIcD!SzT%=T2U-y3Y*rWnfY|0T_}G26P8(D= zf`i?hR`G%Zc_r%*X)!c_>Yiw;1EDrxIUQG8)Fk{JTg7spQTZgYz;h+pP!GyX@<@0a zUeOa5ZZ}RiJ(!M`x)i1#UMZSwjasDcthWG&pvRqhGFO zAJnYP;nSq>aoT-(O58N3utwv!IWV}DP_&)wkew28KPogBXb}cC1Rtg!i@VuAc-K0% z5yq!tSJQc$Z~Daeb2aGHmd*e6gx(t&XP>{ufrL(RY{-A2P@#s?0VJb2N-I}Sv*|LM z-JH+4gfyd6-WdXd9%0WLgL2_MaI$E!^ar*Umh<~Oe0WUP&SXt(lt$n;r5aJMw6_;T zDj-;tsr!y)&TfV+HENURPkRL(%{ixH{I*73yQ zw3(zuc4DimpZ$-N(>jOBikdZH?Ank0J!Ajs{#xz=j)dQl=R@;xb&jdNJRJ^hYZKuV zj|=ACTx~e024~$VvS%&qT_PuOliu@1?OW~(x$K6z$Wn(XDH@HeVEl(MeD%n@vqIY+ zJi~bXU#9RLyxJZ8WvJhQs815g7TTm`@sD_&nLlmo=`mnAtdNv{WpmRo5AJ7;R)I)d zgNhPeCVPe)+C5p0eA#xKLr&(Z;ECR~DIe7Rgs7o!K3J#StiPoq9v7|N%-z6I(?xQ|Rh(-l^&`#Zs|v z2c`9E6^_WLOhl2*t1R_!hu@j;l^`|_S!rvebR-~pn*?+4MV#~!X_Pwp8spQ5TfEvA zx$+PWXwpYbA(JvJ^~H#+u^w)*RWyU4-;hRacwd3ZGl8Hjj4r&}KU zE0fXSP_d9Og~8j9^7Jg}7gE`1m~a7vV^D(?a|LZ7sFCT)ARsf{Ik8{&%WRRLP;WMz zFjg2D5apH<8A;QT>o6~E@wvI3 zKWiFhsqwt6!=Aj}LVfFu7Vlsp6P$~w4$&-;$T&+9l&Xq?nEw8oXYCiZzWDtelb`RP z1C_*e@^*@l#C|+gZxWfLy_#>s^IDU;=|Y@v@izmDgD60lmWrtbaBnd_iDfwCvjX~h z9k`Mtkq0(9&AN#WfKV!_k)>xvM`8ixV{KJp!crKPus@w#Suwh)BrF~t8p&e!c@l%- znuV=5GUl0qhK{)*!}(joTr*FkeC=&D1MC@Ps-`aqie-xJjD7__gV;P=sIc+XXbFRG z>qr2ag3*=U@B7qah#gu0#PFYAMVw?8LXrq^L1V^DO#@7R z>p1GIoB*R}DFN`i0~Gsy8jL;|Fus0|&NPNeRLM-y#pT!js@ywpgN1EuASNWJQ@Oo4 z!fv(XlG@HGy?F5@wf$wQ+kpK=qNJ|A_ir}7vXjssr|dN$md^UB_#GU5Sqw5L z_aUohu$gTks|tF@=qZp&3X%Qyo`%0B{T`Im%_(2szreT^T<|4dj`P4t%3-|Gqo%^l zn7(rcZEM&BFyikbSqF@3GbQQq9TbIi$bJ8vpd9j~vqLK9N!yaI8S0ah|K%jg=ct)e z#In7U)n$tJmJTw?TKZ5B^{pd8F@Mc58Q0P9NsJq8K2q|bp{?)Exp^?M4q5py=7_CX zsTscOb0?EMY#Hw*e3-zBM1}J6lFfAP8Qj~sqJeRHRbUqy>R(< zAmr|2%?)=sp@ir1ven0698);7r~Q(>hvhOm0bw#LETOk=n!fqh5+l3h+So-06v*6E zdaeSp#hzP;JKA>UjwvO;4@xrpPS*1CpaCA=vbM|Akn~%{LpIv&`qgqd%@CoSwTW5t z&DhycwO4jIb|=`noshHHi1yQ)3^=P(S~<1leY*WVDTIgeXU}wIii{f2#!VfZ`Yn6AJcsSd{B3n-G}&siCz>+TNDrk ztQFgo-Qpeu_Ix`FZ9Ig&hOl^@>U!u?2%J5z@Nui z$MoXkSkEx$JuqM#jB*R^jcOAl&Zn z>9vQ?u|S4felKr$@JmIOdy_Tab|ZT5LN6zm7W~)k=P~fk>jL_i>xNEvhk^w6mp0hN z*Cjo{W$9%mPFlxitNGdI%Nf?$MMQ9s$Php5(-n6lWQ4lJ8B_~qDRzJ?5p(O$BDYRU zZWly6RR*aUq{S4_quw*tr-9{O`ZKGq_AQ@#US5xnIw-~>(<>ZB6FWg3^~Ly<--Ej` zN@T_7?=Q1jzci%+K+Ni(oOF47Sa{C8+K@&Cw6fy|&EbrS_oWW4xhE&c*DWhPc1#$Mk4QPY3;W)M9q}vyx`B2ch!>9Wp*WaG8>9(+&J2$VfGa=p-8XbxX^Kvdg_Dwnl~XYL~_k zDTXbGdLCEppZx?p>2NU)&6n=zmA)jBQJzKHfoyh9T*zf$S1+E1lnsY60$bUw>`akm^0-V z+^1?6nmirs$8#h(8cSM8uB&l^P&SpWts}^IgBl?_#w+tlsu8D?0ILL*P|b2saXWN! z|F8_9zPy=6WV)6S(`Xd+8dLt@PJS7$gW2wZs%9@|8TvV>sK64QGYdmS;QN4?Y`sRX zm!@-YI^*7odYLM@>=FY|a)9J*S@)+~aWz6R0^NQhwPL$I)=&WqFJcoBR#=|hphxhJ z;dh3hRG+Qu^T(@#sJ;JIsxL*T{IyDq^Am_+fXQp*y0;MbH78{;-cBumAi8Xf?)J?? zrT_*~v6n3ah@z$8jC?Q_*O_=+=C^@=kk1~vei$?3^z%zBGVg3kvwxT>FtH;BMxf%8 z_P)&lDg;1tRc?O8l*$vQw4F9PZnUCVH*ZiWfi*8LOaX&kYD6oznTgsvsPVO2Osnst zb2+Hl+n@_N5cPVI-IVY^ME@2C9P)R&_p(k@Ekfi2;}V{w75$2-ar}!Z-o_t?w(DR8>ChU=gaA_<^(vJ zOVA!@+^833g7T#iB93N3;T};AQ%-^h8nf^#R2%2C60?M{1z}N$9=l|wC|hS&FHVp- zhKa1I%f}@C-peJKTvwmis%Qb_PL8L!%eC3bNf1?swH_5 z*vhRPX`h7JL?P+$SJtVGP_|liU*`{S{k{%nixT2XnSi@I9i=ZYEr5i*NK`6 za|)fmBO9T<{?C;=9)wx`@r`_<;2BD=FFAvmTB0b=iI?G6giulkb!=|>mPfST^gS#9 zDfB4sU5D$BpcsZ{&Aw9mnZJ>SC&|LEAGUZ%G{vLt~5N4st%! z5K~RG-j4%@)Fm%KqY}tr1e)WYzobO82bPL&Fgd8klW%t`ky%v-n9>^Lo_-G_Rb7K< z?dlPM_~wGRb*NVQ3|2z9VCKYV`RqbPcC6Y*`gK&%RaRvd=Uhn>$_#x!bp(@G&uGD3bnwVGGQPFNL|O9qv>Qzw ziWuN@05h~pD$E!p$%VGK7B`fRgBHL5a0J!b*VcsgQnnoHfJLRO@np-Q?ktEA4j zClRc|ea5Zqx2@ae!T$>#FyhZ5XR=_DZfh?O4RRLvl6wTgYqW3fuNPj7t@~JXS+k|D zdUtOEE=|ktVVE2o(fdt#C{K3S1y`-udhb6hroVf6rCQ@veha9Z<$pzW)w?!09X=Xk za(-eRD@jqbT6g|)MlwIK{sYMR{TCOz9UTwHcfSL&iX?wOv*s||xo)tuVus#58hv7? z@ixBzMM4E|_tlhrkBA*lAIfmTZ!dE|3g;r#3?T@dAo^$1et}%bGLT6m|HpGisW(|q zE*6BACjP1IjOUj=!u{)EUOVk?fA#-0=n82{@s}Pp9dzpuRj4 z5*pxR;&sK`lF1eH#nGh;pQEX6fDwc-7&E~=B75g z=#AKmiFcmpj9N-1M?quE6%4dv=l@em2wv(+8FOU~gC=m5sk;%qZV;kyIBQ+S7Df{~ zvTyMYi^e$f`5xD6t23DRtt{f^1YO3O?X~duKAHSfXB%Q{Li{bcC5aW!HEgB#$DIUb z7``TMR(|OOk{?z$Ci-S;p!Ocuu?kh(nc$93aSuh&fPG+6qaYSALN%7QS-%(-pcf`9 zl@2tMS$t5jZM8j-#<>ixG`Dvi~DzJPH5Vu_X1CfhxC6e*9C6f^byFnM1@_I+3d#X z;p6JXc>HM*V#9)v{hOf(OFrwLw8dgq#bEkd|xxEj>tjl}FBN~flM@1Z-@@ZPs{mFCV;4#YY+n|I6(i4$bZ!c?n~yRRpzW?oH8EOIQRDaPAn! zpOHZw2a>q6FDXo$C7R71KUs2)3Z!uEZW%Cbb&4G#R#Ulp49$w%_9Wk(lNm0YEMs<* zkDB&zVZ-;a0*B1)@3ss!y`@f0m1)vQ4BHs-onl2Ss-LH}qXdT#)x=7H31rre!>nqo zEgDBE@#ijDuI$2*XKb>%S$(chxGLguZo8&oDwUC`Svl5rM0)?&w<^Q4kiMoSVStf2! z>&mQ$o5NT4t+>l?Gu#DLpNGZ(a-!Zm;?(>;{PYpu%ngvbujy@gl+#|%JOvI&TK70J zXqZG7iTi0R+)cxGGU$nv+zT|s<{DK%SH4BuV zAOHXaW0gx+f=GdF3ocU%AKiy4dvoXfdQ*zN>J_qmA~6}H$;)9B$&d3Jpiv{(?G9X7 zFvybKpImh+G(A*l+xtp9l?Yl2ap;43=NTPVeMujgTz<;TqwuK7>>^ew6(#SJvC)clK;B{f0VoKgLenGJ}Krv12Gkuzg!)H zuh5XlQ(evR5Ic29lCAJ4dfcin`?&cG2FUuPA2SpZ&^@obECow3q(>+KHr#%iUI+sb zRA%%}j_6{+{B>{joH4%&dRil?CKaE4#rqZHu=FG+-@1c}q4n^GIs2?VViT3BgoB}Z zsY7BGB)N|FWltU!Lu+L85`gkMFEL2hTU=w2wii^XFer91(rlHTjE&DB>{|u__ej2; zs{_^Dm2<~`0!AaQ3a-CCN=He4m26yy&qL@0Fn_sGZvx8nF)FSM`VKb!pmnYDzWGGZmrw?f$n^OS4`pfs;)}T4^x-q zu<%!4D!UtGEcRG)0?F{*S61A4GKerHh_5sqsu|;gOyK`U34aG`E;-Z6^3relbYRNO z6Ug$&gFqonLTWU)-^X8xRe2%3!DEB-R(1yDg$x*xII+z->?_Or?N;cS9$O{J8S1*- zGb>3NG}v&HVFe@a`S2MavWuc)gA$EOjAL4g4b(lSv7m}{hC#dj){|&xa9i$mDw8ne z7O$|CR>wjX2()J44g6vu!(&d_GeN9eKuZWv`~6n#i)GT)_Ruuyxsqrxpy@I5?OT;Y z-994a*JZO!FpnhCuIc=lmVh8(_bkmRP!ZizgxSS$>C)Da-8YLXHyQ%vJ$L14dBuuG z!4)3}&&Zo%)fW1y*%j!H@kvS`CO^3zkHe@T8KIGJ%A8yUWOSV8vG4x-pu~C+jaheY zDxOx?EZ11m3FiWV2^{r1FE(ZYg?va;huXY574U90pT4OI=d|pX&=}0xmA8#4^K8QE za+HHj2PLy9{i__RJZ^zhU}&-9_y`K)VTguS6{d#Pm?2oP1C^qZ!-%#&Tyym0<>Nd( z1(t}jYh3E0Rvz%D`eNUGb|CRMDuY}T6cnRrvEM2!$CUu*m8F+pUqRz_C^M)VjFJ?k zq+?RHv+(Y`QlY!Lm5A_3O5}mxuMYK)2XU7FN)Sth#(cJqe7D!=08W$2R(Nn=B6RKG z2btu1_2V3%Ns)#@MC^3g+3^Yr)#W>LLBlj^={E9X$uHw6snGg5<2qe2lbiFH$DNd6 zxE~6>tLpecH{hU*T4~|d{jGVK`5`%9e-dMgDZcifN6JQv8KIF{K=EV>#k&-ki`zg< z%sx5yD?o7+&2I)ngiynQHMSJJavWmh_vG&(QT!X!tENIZ5qoPrB6gHgwu%HfJ3$(E z)xZucjR@OHnsx@=`25_i7JrB=nN-i&J=0Rnoqs2G9@d`qM(V%_nwZ6>OMzQKTDC); zMvy^p$AZfQcbQ6mRM=$!z229%ciw zC<>%T>)rgTE>akD&`#)jc*HPKM%SQpPw~lbo|$6U;iNhb$A);Qw6<9oJ19IXgl(J* zMgsUhf5ty2dbc@pg}?EjdsuuVDg8Q2bAStpK=M!NLQAjm;8)S$3OIZcRse+UDDH3= zh-6%~_V4}#Dr@f(Cwp^gq8M74(byT52$^nr)hRCa9F1d-y*FeE$d;q(#@XCfia2YF zV528{)y1m<1jmvWJCWi%1ED}`1V%ygA>zcm4$$u7XXnfMb^$i~4MYVEhjQgSrAIcs zcUW{waPYv|1`wl2@)ZGKkxaW6=BM)9H-6qH|1weqg|HZQBx!&`5oSVgnc~B;~ zCfI26fAMIz0z8SOzm4$FB>HZ%O;_DJUl30t`p%p6RZ3Z6)WOZ7Fz#;<9vNYK`ly~% zfir-UDqZqs*Sc2vm_)qB9h3Zn;w~!ma9>|`n8EWE@IHDWHM9dk~W{n%Q^PIf4!&gu0>yCUH2kM1-bjoTdNwY|2OZWe0q#(A5iL`){1o9;YK_Q@{uZsu>A*ZeE2W(M@KarsZr?ZTv)4c(H^1JG zuE4-O9YaZE4!i&F3i0M0YPx1!3j~eaF8>Td9#Od%H+J>l9(o5YiI5@vONoU=5>Zzb?iFZTxZ20Goc^s>O*{+5Ap& zSYg&dw+hYc*-;Ah|Dmb(BkfZi`2bUIDBbY@j(Q_+$7^g|CRLC`y9+&}h?b;a zT+x^^U}4;HcrnLzd7|`Vbpn=zm-_`}H)p8PAmm6BIM~XH+Cv#1+(fkrj%8ySn=W9M za(7p}7V{(_&$(B;n~S~*5338>AdvyeQ5>RxP3r^EKFkAUSPUE1w1mCg~v6-9~Y`VIRg za*3^5xuLJ~)s)Ltsi7S(ITEx00q?`3`SLBu&cFQo9fah^beJU38`u6r>5u#BqVwli z^|I6PrptpNtI$^g8(euJ-8I|xlFY@MToMdR>0g^09tudfQv)X@WUNMh^A5?c_cKN& zDY%$Hqs4$a4&Z6Rt(M+%z%I5%Qw9~uM{iO66))_WmU1#{1$fw~(5a$=BC$H=9?~VL z3fKSzD|MrQ00A(DmT(Q+WWu*TjM$YspmK9wN%^&pOmV?(tA(QP351WCg0x74&AwE` zmeoE6+EdrAE#cFEm5oozs)@oq6+6L>(*yW}_?>QVe*8@s6Ok6s08RN=Eb;HW*P4cB zix2^V^%dYUsBAE&PlqbjqGbMgcd95}XkzbiEH{3bcQ+Tu=&02pcoEkl@}noB$VwSR z-KE8q_${Ocz>`(~ZEsF+6|==B-F~(0hiEprJQ5?HUoLtO>7x?e^A3Xc5l2a?y&s$)bz`}Y0@h{i1G#!?8=7p z>Y*%Z6ML$b7hYoH9Vi*J@4Xwv^I5j|C8fP z)g`#bR)Vl*oE01W@6W+L%9hF}74(6q#&POm)ZR_UEAd^6Y$ji=c50KG}N zurK(~VLLB-w!9`U+zkbw*~<-&K1#H%z~>WD8qzwfLsxU@q-PkZr5@|L*Y3ZHF&+`D z@1rVF$03Z1dOJ;qR3KjsNpxyQ2^~=&SH%`Mo!GMp#qN$U5rAz}eAZ5N26M^uki7!Np!@73v0rdU+cTMG%N{nZ!J|B*+VX;KBqaPz5pz+)r1 zC6KW^_Gv+ZQ$0k&LqHXjNmbp>!xyDJBp(E++xc?2SXE4X`)^@PZ{rRvZW`#CqCUC3 zu2mYgXSe!ox)GuAjM=l<+ypolhoR7|oh03=|JK=w-IdAzk7w`wiJYO07i>nRycJ8IrNm#Ic`)XE&0f4qDjXCM%w9ka z2Ka@OcorYQ=1i6t2YQn-*qD}*kpQN$bFjj@U0z@|U_B<5EmoNoNO$wtqihB$xG0IV zNqRn9zHG4!TAUpo{KBt_9t>s9?4X)4#rx}Ufha==am5`!*E?-)M-d{h6qcP2>drFi z3;0%-Gyx@>EAM|vu>6UJ3|u}NHGK4fI=G8kJr1&pYvrL+@KcTCRE*wM))>UAsqh5ApBpR?uj1z%mbSTuR zGMl1h7ABM0oJFp5X9?UDGz?`2i6Myi-b(m3`3mHVGpRz4A{3O)qlm7Xd>!F@Y+Uve zpq>OfRw@p>k>^Z&4f)BN&&&S7{GTpGQ6v3VHzW5NWc1|cMhu&uO~v>N-7AW8hG9Ti z+rBAO8W>hPoInI8=}#embU!XABVX+#sf%R)Zz~(8@xVI=%AmqmyZl^%Hl5>KW(;w;vkP5(i10kNT;xIO9)MT1hax zQCK1^OO&WYl35)lvpjXH-+5<1pk)s5bQN05F38WY5RHls*@I@PpBqRW>+AcYoBH7D zg-zheUF~tdo`=o{%8?;S`RB#nn*Sx=KpR+9R`t7R97nikZ9Mg@8W@TsIMEcecb71e z+g_oC0&p_v#4e+KM1QWeSD_dq6MD`cy`Y*+$lB5g$)MqpO%3YDAwwo6cP3;DT79Ng|jCB&1gJs z3-5bjZyljAB$y<+5aQwm(;fsje(*vpdrQLKo#R0rpaHGe&9$+Y(QT{>z-snw813Ps z?^r(f92YX`3%z8Y=An+pzS08FV|uC2eL|bSNtlOGtvT2&9(h$5T1_bI+w{Kl$)8=f za9uCqE;Cf_2-y7XEV#V3F+9s)4OsD7I?}l9XhcDgU<5)8Leq+0O@iEfc9%DPMdQ=3Ko~^lN=1OU z`JoCZ75zqI^4&FclD26>xEPRi|| zcCN$QfYsL~BoN5bb9#tL|9sHZ6ynyDKe~dYjrPSqV1|hVq>I3$kR6&d zU)luE8`Eas6hOOQ&GB=*5ffB|U=xs0)@+OuK_%BSwan)q?&vvY_e0dB6cvtlHtup0 z7&j;heKu7T`JW5xqx+b!a?$&MY(5YgC2Rqy#!va2bUqR9_E-Fq!nf{S6i5Lctbkbs z2>_U>4OJJz`RVec?`iWb*I3sbCRs5J7L=(!rYNtDp^{%SVI9XGBjl{^l{a){V_!62 zL*}&8e+Non9ZVK*a`-ncoD_2aWZ$m}!@*~voUcPg)O7~-=%ev7XG8o(T$qSB(^lxu z0z_u?y#c$D&g{m8K`w`5u(2`6_h4|UcqJwe6q?-SbcaJ5(B)On!r_3|Z=;(-MtR$5`I;z09KV?$ z@xY4wiHxOo*N!hS%-@l@G~BH0^E-4FlNovV0urD-VaC0}gHr4vr*mul0iBI>2H5$y zV74S;XE!`jpAek{=%6pQyfr(=QIRN7Q7P3>e3-CQRK#W;AmWvZ9Gy;f>MEHPy6M#Q z=<$Kd`?m4528~N-#qGbX@6I$05!q7Yc99gD4GYIL*>24ZFI5VC3v@#DbD{k7dtjjD zt6?6kT%ELwpk8|L>s(gE=&iJ1CUS=HNBgMz6FbAAtcA&eZyZ1by-PaP=b{`tN}!5i zKjg|xiW2M?Kq)Q8Z~euT?`naVQg~|7F;Ov5F;NgJuv#3~PQ1tbq3oscp+HBy_e213 zP6TLdYoK-RBJ#7Qc)o7mXQ%T;QuKfuI!OKzi9)J_PpN{9M!(596{)*Br8UbfVhXh4 zGKrImw)6+sNjLXZm+ezMXs-7EdQu*L!C|lY7Wd1!_WYa)0YxbJj>}0v+Qdsx+b$8K zPf`0SU~c`KDL7MTkQBuBYAib94JI7g#wO{Ce790|0JHOSO&d+MdXY940 zl<3l>0OS&B612c;CgxxwFS;+Qz$5@8-qxrSL%1O+LTn%Zn9WxEO}?c6A~QTXE& z8~>A7{rOq*5yz)0vh5k&mW+BQ>dq5)ars%cDDAAOZ52f{r1#6~*@=e&VS3!n`=0xu z$S|x|(^y>N8rKoY>?>}iL_e}f!V(M8#f3u7ap7^iOg#gx%eejk4!~k2V|pXx|AT8T zkZ*WFeDm}3??{XEa9$z5yUvE!K0p{Ff6I9!X(2UCeC{>!fgW25UBRdM^apy`W>)DEqB2v9ecXHFC?1t2gEVYI zN{@PL2UM1I@cZf7?nqK$?}U&c{jFtD3Y3paQ0HuZ44E=y*W>eD63{0Aln0ILU%ff^ zNW8d(O3mFpcP7k?R|toyPO{83$kehLDTXE)$K)5R_35JS00m#dr3U~tzyJxm)RS02 zhaXVlzt%s^2kH!90SAc9N=adlMQ6PB5w!$UQZU`gQ8AzZ8r5=JSeTz;n)3XXm^R%w zctX}?+t62uxtf@egS3%>-HYwvRJecCqOYiu^PsYlZmzd!4gmlFB0@670f$vTdV4^9 zUn{$GRdQQclfV;Usx(%B2}~MXw*(H>;W@)T5$zzLzoX=ltXk(s+2kYZ=|0y^DL_r| zQE`F)zyL}8A?ri}hp1}&kf-f9$l@~3emxgjZX91D2jB=PIu@J21PU?fqq~Sp%Z=2Y zixAttJgQxR_^A6}ZFcZ(*#JYxCKqDRta@O+PGKp;PliiF(7pfyPs%FD+PyY5Ln>J} zhC~d)0B_`%&;Y?`$WH@{ywxi0dG-+iSnY(|4g&ig9lvgpKvPvO*2? zXOq%WsKm||+u{Ft0Bx_6T9IKVan5>3*Td+PaiA%BX*DW2S8AqlwxmFWi5?33`AoIV z0TRBlXMa8eG`8r(nscO3Zg?7dC=x+ccRRzqG%6|6_z^U@JtJW<8+on zSQ!r&`vMby~NqYkn%@5;zVPUli9f zrbKNWMD@Z!uOsMzLG3{A8mW&vw9?G%gL5(VOUbzTa7maETi>#)nR(v`)9c;Kk{~NvvoRpeR#T(67x|>1aWi}$> zaXX%DMQ$0C3hxx2qMTqZC4d1u@ZzWR{W6EIqV&Xug%$uv=)7}xvVw>bD-rALLe=-ixOTkaia2*~DW*lpX^ z=NQJf&HoJx(Q0y>p}uvgB`(dhXO%toC2bybL1lU5Wk#NSISdK&AKpcV{0`nc(@>2waFwXm zsBM_|LYNssgI;3He6lnO?LE<{^z^nT*fSxt^Jx+O;X)r%OR_}a3~dd2q>a<`{_xl? z`*^MLhL5&9a}mQW$`FNvE2gf=kQtfZCVC{fxT$+zPsLz`IvJTyeitzI5y+50B`*If zSnfdse6p_e~&sKIFN8k-jX`Q z3$cN5qY#kKkO?O;WiZ+t?e89f^1efl za$!wObe0qxyPQpteD^JtD;%(;e!iJ(96J!!6(Vo9_4RT=g+F3|S+nj99+34A=gzZ_ z4;xKKq161G(@^zfSinJ)wEU-nSkds13b5YD*oY24-Ztwej8}Sw(DvUF-7K=iGDLw6 z#;8KrUw%hLJD+8BlH~)!C0S%FnfMP^-!Lh4Qy18(*RVmAg*O%byT) zmMfN#Syj$9CD0Y6LZXjK^IgFw+j32 zrKYw~zh?!F%obn1;0?Mg9&^r^?t^FxjYJ1xa@%Cff_}egyJY9&=p{C7)9s#356a)_ zb+EB?zPKA|AzH=acH!x0d%tw+38RQE|2GQXTjk9dng3-sciPPC2ij|!7%6-KI3&*N@v6s6CK4D5aX`!hbde=7qK+JexfGtAr&rA~LGhTMRf z`g8BIS<{k8)^@>Z1aXW*!KcTp^s)WA3D*C(?SDHKIoPK4Vg;yEV+g!-p;+@^gb5j$ zv3ywED9l8L^?4zq&{e4J05x(qMk7^BmCk2ksZX4hK~(bw7YezVG;7mef8UI zPti;k->VEmzBf?)AmDqrCfC3kZLM`JNekA;h>$5?(r8O}cF=rOSpg&isP3zLG}BcL z4;B2RqQqA!jn4?ioKT_Ql8(QEpWX)_Fh`0_(V{26HPr5}Z`)(!{t1}=C&DswVBzk; z9QK0aCB2buRh;ieo1Tj#+t{8WC5uR+wL_w{pGJS|C$VxdkZ4Eb-9li6oGbM9`7Ts2 z(aaTRm-Hy-uZ)}#|G#90^TEwl+RKN#RQQ=Op4PvGGTd|ZqIs*%`~No>@$&4rD0)w5 zjaP+=>JPb-w(uNO_3qL9i+|H%5kPxu&BSy!-16m~UfRVFNo(O5ft>-kjSBaC%vt*j zEIb6C^Ja;Do1{1P|A}(K-C0T}>9?&_8-jTsNLRx(5P)5|3%itTVg)^h7UK~hSAnrf zSu9c;`}fbaJxA$(Gb@M7k)4RpXy!R_74XHPsksd3En$)_$-+V?VZ&|07#mVwX_pw?K$E+Li?V3Tf$j}?Nr z6H*Y#5r|3)82k8D^r!&;{t2yLE0@i%3`Gdc3>)o19Q7+_t6tU&N&qC|*e(9&QXCd~ zX>m5k>r8c19KB3#35QInhnXs&Mor9UFy*p2!q(xk#42#SUbkeFh^PwwSRph2vGeWt zlgny~c%_mvI4wE&C5n`tr}z;iYH}(ku6JPB_0=s5U1EcLpdofu=v2DMXa_c2|E;n z2Ngnxw49Gx<%Qx^-DRXl>F-ibEiFy<>;I%E%}_Q!qsOM2@121cSV*5@mNbU2 zbPR!MS&;PgxE#KXXGy=}{9ALVNue-_jx&Q};Py}eZ7h>G`%v%S zu{=ab>?qL6N&o{_9@nxF%Lh5f>G$dmr<0LX*v!lfC4x(?ZP4qYrk;QLZ>ERcvBJ9~ zHHfWG0p5s^I7TaOIbNO!kfns2P5~!!Qf%%9kp>_0&kARC{AQQ6acmLQWPYfnB zRoBjqbM1c5MeA@)x$5KD*T$WQ+*W!+VIBJG21L4w&{c{fEo@%5{%0bNVWdpnS{Afg zD3`aw`P|;UVKo(R5(9-wsKNcDUmd_UT_@#B7N7r;Mk$m@v;YygH!M`Xv+TP=6D6BH zT`rio4+qM4q(Q=F6jT}(U%-06EBWQB&(ghR@CTk_&Xg!&ubF;@y#~FXYf(G(%-A06 zMRF@Ae8lSBH*($7+jXH-$g9M^mo(UcP+91~312!%m}TB&C;(r$eFQ8=0i4YcPZLiH zTjD=Ml%V?QK3MtY1M4DDMV)H{7A9Ls4yI4={_`gZ*{`8Av`z@q`fSfM_Hode3%0~O zeeMA#uJ&HuECx;{*36shT71Z#NcTF;i8a-PjImTkDB@YbT#AV50;%Nbb5t^oSe25_ z@-Hsd>CtHd(Eh;?D)?%VJ-n!8yV&yG7!kY>_^eGp9wDtdy~G7Yn?2>wu^%uU*L(e0 z$8N&J=qfr}1_&A<(RkBI3y%CaqA>o77>+hXC|0n1fodW^19b}rtDfmd$cx+}S(xSj zkyyF_!&ySc**Iya`&U{L!1Bt}iBnzzc>nk*XiHtcmU-u(4Kc!o3T2RtkMwGQ-w*y| zE~JK-5PNf(-yJGrhX5F+qzk8YirAyFjZqdXAN{T2v$RMu+dxKVJv?BpBDos z_%|NBB>Vr6W{|Gc=` z>eRkzM*jAe1dDEFcfV)1-$c>Li)S(5hDfamy~zhmK$SQDRFb*@%*zo0rstd!N4%`w zxREQ~fg%76qK8213MeV`##Y#>_6N#^gx1X^*%7Dd#0&8y zpOt4v6%jn{fppUynP6ULvrg8U=ngd9t+MW5C^ZWO40`KI+W4$QLzQ3(Du9Lelkl!z zSYAuha+kVL2`Ht(H{4A_Mq@OOV7y-$*mO_gCfbxf>EE#Yt~#`X6w3SFS5?@0V?s%4})I$6kD{8^Y!&N>WHID4NWej>4qDAd9i0d zI3sHa$jsYc5N?~HG;q_(zhKR+8QY*P<-PQ&*EyG6M7Rj=IFE6~y^2RRvu6R$!+ezV zF6oq8?gXBy{!>~#=#1~APj5`Z*%q>L&7PzoKmuW%(JDEMahKu~Bw(O+h{mI7-~hdH PHz~6YSReoZ00000>A{uD diff --git a/packages/core/docs/commercetools/images/setup-store/api-client-2.webp b/packages/core/docs/commercetools/images/setup-store/api-client-2.webp deleted file mode 100644 index a38c24ce46a9b75c40a689e7dc31b8db9659a222..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34420 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

n9> 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 At^fc4 diff --git a/packages/core/docs/commercetools/images/setup-store/categories-search.webp b/packages/core/docs/commercetools/images/setup-store/categories-search.webp deleted file mode 100644 index c4571adb0607baa6dddf9be9eb48d0c81b231790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21018 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 diff --git a/packages/core/docs/commercetools/images/setup-store/create-category-1.webp b/packages/core/docs/commercetools/images/setup-store/create-category-1.webp deleted file mode 100644 index 86f5fc60ebcefe91c90630ff63a890bb328fedf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22360 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%0AN-5 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 K2m*otfd2uHmrl_D diff --git a/packages/core/docs/commercetools/images/setup-store/create-category-2.webp b/packages/core/docs/commercetools/images/setup-store/create-category-2.webp deleted file mode 100644 index b84cf479289b2a21b6ab18660d6645d6fd3cf473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15298 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 QpRN<^{we%ksw)5upKG@&c`=0OqxHX;{W7b@& z)~GdW;#svyRYp>h*ckxOk`PtaROTi||0~xWgZu=cjRg+|6-<)Mm8U2wEF`UeRjxyY zv2pxR&Ef}UjZF1&IDJIxu2{x<71izYT5b_B6EzApZYA+=b|iEIc-4D54@O_!-!mSV z))IWTaX(t$zMh=cYOi{dfC6_;8(*~ne**oV+Kq_EwLEdQ3On}pS#MRe} zk=fVGSN`WP@ckt4D6i%#=L_l;>ki`Y`E}d7Aw<$61?2jK+LVgHOaNj5p`NdejdX!l zK%@83*O||+{Vt%;58&K;(&ymU*H=P8FBfnanDP;Lu)PX(M|ARa@--On8kqjK?dy{1 zHt>~SC13`a@)WTH_saB0^c1)qIP-P;Me>jKz1o}Y``+=u+^<96Kd!$bwtohOf3*YE zJ|n)2Uh@8GfFWP>z`QT8_v6>vFQW6_zpD4quhYxXrK5RsnDHLeIHFj`c zneWIyl{59)o!B_aYP0;7-$eeU<-fcCn11X!XzjZB=Tw=$ieaL4Djf=l|Bn@*6@dJ5 zdNINOIS}>mO`bw6cu}Ekqzv2~GqzjoxP;IFLohwj;hb$YLUitx=J(MgzrIzW71t}& zPi}>J3+S4~Pfgq2N#>hL=6{D=u-8?IjyR5SHOjhE(&CMG32EZBb zbiK}6&+7JdP2i)Toz&V6A+cqykO;EsN>Q*I8v0?MI9XNIkM{6P%#dxEVYYbNqFmcy z>8rEC>w8)13FCB*b(XWlW`*>8q-p#9!l9Y<`U(_o}GUxm~)qaCK2I(Va%?h_y6Gp|8T0OlN?YjsEWpA(h+Ky z;j2DR;8!BGOMeWr%siG=u5BXlc0FXL)D*#>9x~ogR&f@i8nWqmZA$YX%#Y3er*`os zM0xDd5Oit~XBq)@m2pA(wepC2`LFMY7<8Ti#D0&ciVaANA2dcknbqO++czN_3S-Gq zMJSqVWX)N-dQ|ni zgjj_#a!`DLwsS*-^Y+yyW9fp0+CX8qM$eP9E*pmY_M`RTkUc=(hm!v6g%YAH&ncvS zMAxBY4G;}ntFf*0_HGOsf0Ey#n}3b(0`54 ze+%0wEDN2Q;u&1NwkSoAhAS6fF%$;s)JV~VU(sZz1-P*62O%z5OO(f6E_uxpah@m& zMX6>aVmPtVcZuTaFX9anuxI`Y;m&4-)OqSeH_|X+8 zL*`65Z75Wn)P`ooL^LnG3DcO7a7yk7zBV!Xkjw>Y*KSw@ccDiMvNdZbV{JnW>@r zX?5f|E6Z=Cj6(;8gjn7y0Xocp5wGsQqFvxS>2kd8@N&fiW1gQuBK}l5l)t-DhiX%N zsub+?8y=I_>Zyf-M>}TNkmv^RiW6_riTGyxjWnNPWSdc%Wi_s#388{rP`8um9D+ zjE4e<>TD9FYH=wl9{U3YismaISn52?k?mppDcpi}jTD=uZKCrTcxgyzi!S?e8OOWyxXO#dOUzme=AlWwo^CRYR?;`fv|dU9S12|V>O;yMWs z=GBw_7Fzapw&613mBW(dKyhOg?)x7uI>Jc)1=6IDRR$dqi&jr9vPcNyU-T>O&~bkC zpLOPjg-@ccoLq$)epPuVl2rg1y{W$GhgD0pBky}WuoLd#l=!ovD=&h?H4OaQ08x!< z|D4Ht5)Na%4?R5&d~`qe$)+~C$wz&-c@7YSSr0={v(Ym(EjFY+C)uEQdx<{AC~ zhe3lfRP-a)44q)k?FU+F5OEHHk5GplAVSC!KLth4tqavLs-n*@y4zSFrI(V~6$;N3 zNW+uLA-$?F_Fs^nW7}TrR2-5N+*Lx6)TVn#jo%IWlQv`|xaGPE;y@<&%qQymQ$(>0 zhT3!Fx_XIb0Z&rbs^3cHLPs+$&b%HLNUhD)!k6Uo%~tj#7-?C&ey%Qu` z21=mtgHAmTTxF5P18l^~{J*MrQSqt;06_Jel3rAjt38clwE6Oa2YYGik5fn@Met-Y zQvW?V+Y=>{wZ?QHTAu4~ zCzsUVAoKqKB3v#EU|M4$*>O1PVbnIky+qVKq*sh286A~rxlKg`c#&?$t!crj8xHN_ zfo%(Qt$GpE*V7k@oH+c00G$KyvzADD=oAanenH#VIv7QOh#7$z@A<>|W2FSAQo+=m{LkbrCg+i;(Oy1Dgko{c))RI%E=Z6kNr)5v z7s&fzZJX^XkHEAWt=w{@(k_DIzK3dm!nDkV()`?ZWhNV8$~e;Xyt)4qJ>e$djoqik zf|tb|m8o-rO$don{^|eZc{I}eFW;|B7a1+es);$Xujv~9ja-q0ODn5mJ;CSCEJ*za zJNd5)h4hQ8;G|Z1Ak_AD9yU%D`rqo%ex$QF&I=SwJKnzmip{3e=ieFU-@=e-8emuT zjl!y|Ych)mk@~jc?Wm4+Gi`eAF-(EmjEU6=0}YduDKB2C;7(H1SrxA4ErRqv^42l7u~ zrpfL<5n(&&(>n#)ha6hl)}e)W0PLrkp`k%Ou2or1Z24EV+0B`RKc|h)2yhcLfB|}BvDIEMUwfzjjUTf_n+uXs zeJfp;j%E-=(R+*)S!pxL6g2unZ9fJ~f#{a)O5O2{#NsDXSK0(l+|Hq4qcOuVyWdd# zcZe34-RPSA8?}olF&;VtVcE_$Wf)xr`Nu>2H*&Q|2LFwnfTEADUP*i_=aEooLspE~ z7m@WR3}8nuojd;jEfN^OsMGvG;Apw;6P*M9lfO~&Y3A_9hy12sk2va3{xS>84G!v55lnu~Zrnf4f&{VA|7VKt=I3_ptpGxqD3YW>1%@zX6 zw0>1}QWxf*qOOw{%6f*Y+C(StnyoK(G8!o|L;YP=K|S7cC%}2%RZkNpF;}cp%esB5xzM8k((m{6*BBg zT){=C6!{6h#PI*JmQw*U&ufA~AC)r+U<3ewU&71)P?kgdlS6*Z>wbw;(AKOMWF<0YSv6-lg+cd9gF#gW+oby6S^EUd8M8v7AEQtde8ZriS zzTeQ0AHPl~df7gbgCJ%LV|P1$zfqlaUhvb6d=qxg=VZ!3h@Y<)j*N)De5<%|foo^_#8pvW+8sVpfE1sPcA3U5mkDD{kn1DJh2SS>nhh94ZTYy5Yqm@@3@xwijRr&CR_(kE94XBr*1oF_cARQ(dZ*-$l4WeLOF z+-*rLe9VIYeo+fRaYERIqs*wDr0AfHUIX`$FOKH@IpDlS8l?tUbM%jv5XLV;GI%th zK?@^qq`@y&4O~L=na< z3|v@$$plGErVYeA#$KHdly(2|zi-`MxTH`_1)9HR71DN|T#I+P>68g1e4s=M zZ&J-Iw=;{D+s;m_!Q%`P*xb$W z?^&8>*shACF1mKp5E7aWoX8{qokG(!Ew%mT0L9L#8QfxmzH%_yRJ{8h;Sb?xqgOm* z4G>n0F$c+gzN`_K`^qpxsoY>q)b)S-dcI#fR+xM7Yn*nq+ zg|8y~J2-9vv>XYSIY1dTO#1boU5w|jY_wV1Z0kk z!8Hb0Zd_N4y3-T}U*+C~FJJ-+sdq7FB4D zfs!I@DZOgcpwFK4moNdt7AxniSP1V8HvE$F4Ze@?VAVEpifvc*rW#0J;!UhuDKesF z)ma}LAi19%*rzvU7+I21iwld68R_ZHSVlEM@Gg&^Ijl08j~}3T(r0<^XgFjy&hLKV zhe|F#aI3yGd}4-5d^(-DXI*}V^4}<~;;p-DsQ7|>Y&*^?%vz5dR>zA|KQ2*G_F#w$v|ILMRQJJ?>D? zE9;_>F%F-aRyoqvB_Fv7x0BzaSCvgwsmxkn)a>M^kEWgosx@;pj|u0Sjgwu6M)0&B zWZ^MKc;zMG@KEwu{Xr;UtDbRcx!o1M_?Yq@7i?0nL&o4$79t9(7Un<#yiEDKmBe)fx&@M`sI=bUJ#Pl;eg2Ry}eF*dyucH?Ypk^W;xzm4-a$8~baVNqTv0Vz%YF~!ey zU1(dR`A`f*daOFN%x)<1rYW7_h>}3up&o&3csh(Ih$5npH|{)(P~AT+L2h%q@l3xy z$AJ5Hbx3fVP98XnW~&YkSTCO%s+`ZUX-(7uuo4VR$wusBEdVx-&z45HEv~h(I1{Gf*@H3rUeRZk`9k_-PVJ# z9SLYCG}>cN0f4Yn*q0EQ6TXso;Ww#^X08#XsbVTypHkm(b~IVLmvDgC=yLd=F0ba; z)w^7NGV@BHk=OkRG$6G~rYP5Mf{)m>u=|YW13Mj>h)Qt%Vh6;NIT^n^I^X7Rl2$Y# z(kzN9m|vSG5@&rT6V!nn?_)q1EYc%9{j? z^7Tnl^pc>?wz^GU?Clw02vWA5q?7wDJ;MT|oo$Ya`2&Sc2$^`hf0G2vlu-GX<+d?R zIS(P+wm-<21wC*bqlRt4fDyYjAZ55bZo7kxBkDH56m{k(a@^eH_!<6!E zX0kvRVYEni&RkVS*sQ;;9j9TknFo{Z;;LDdO;_8}(nchXNjqZ0?XMwIy`;;AHy{<7c*Yk7FxVuIq|&sJ z6&5$pfgD&$pOO!~ZA1;_?>-O3TtHq&FiKqAm;KSMJ2#c!Y-|p9g5Wq0lA+}oNzuawj7F+QqFY`QrW1VQ@=V9!&t5_}I0=(M|GNJY%pX3z zZ*IjJo(U%}nexmz*p77pPFqEjn;mX4S>m=697H)7Nzei*;Sk%9>V5D@$%P=`IP0uL zGVI`xf`_R*rs?E}`!{i2&;;mmU|oF+dS+4NO(J5c6?Yg&X#gJMoE8}XZ_H1Tn7%a`8 zd|#K?sI6SBq3kkO9~{UMHtqp(a|tj|&8Rgl_@GA%;k(lL)YhMCwl;c7)?8$lY)X=Ch;U~C9O z#C2T{T8rG9{2f@8jzWolX6hV+od}m*EV&Ah9gR3ILwsaL820v~Y}bi8rKdg9!#vP- z2IAvB+HtU$6lWiFyyEImVp-;R-{keiv@~*dD(B{f_h~#2LaafY*7Q_c&I3|+zJ%jz zlV@Tu=Q=b&QW2{RM6YMvHlGp4`UK@bt-|AAZU+L*<~#Nmb}%fdyREHGlykz9i=~^QNoR93#%W|Bg)Z8QHA(}Nx9!}s8h z8^|_T{lIom2&xGAU3Y%&!M`v#Bx_q-q?sPv(Ua{!!M6-`)3JRR=WSl{E424w&QFat zmC_V!$ct4J!p%UlJ-@dYH8qN^HO|ndE#h#6SDwRdl>!fVku=$uR0#fJ zOv!3m#ZCMurBgx7`#)KMu7JU7IwlPnKnXJ#G z>SM)H8m$&=@-v4wG%Uhm8u0LI(>zgaa^suE?J3#=6IQ%xtY$yI_!nsDWpVM_GhRb1 zucRMgNCx6=dao0Sks#BPC=CXVQ?WCx2J_A@iro*AQyvtI>A{FP1yV}Yd`~KKeI+wp zNCS=fo!f}|F_dE8(ScwnxpPx#Ghby5BM9&L3vx<3HV#E3R40NgYvu)T+3dJ4bbYru ze0CUK5HAd&L#H9t;M5$VF;&EbuceD zNrzBioiR$cW2u8@jMAe2A$f4ru}-t2M6v^>t;anR_8hN%WxE|s#3CzN21ze<>IIJU ztt^L)yjrmXb=f$`A*fhF&#~E~yiq$oX-}uz4#D!uC&pavA!{Ro5}`NSL6}R(OTtVm zpK=x5$m`+*)UIbG=x{MKq34lf-Ay;Wr@og*1zOVU21Rk(@kRx_};Z^P=#zogxi z8cFI&T5_5&(pbjKKxTJB)3qSY`1glI*2vBxy*U4z|e;X(ucJ<0k zS&*j?o;rE?TKXl9kRA)PoDH9Cg*RMfux4J|g1*odkQ)XS7~KzGhctlQh(`8}eiVX6 zY*N-KLU%7|r}#}D`|S(@%9OXHvRsCGJy0QG_`ueqoG0Yry^qf%VVf$+2;t(RnsOr^ zO^aTo-;|%X&RafOQy?ofMu5>HFy-Ek+Tm~_Yqk;^=-gVre?3#H&ONz8BXPb~S*&Ax zJw4ZYP2*PSzJowz_MXPyRhYx8!uhMSS}MZy?UD1+!&TXMs*D1eGHfV6Fku> z^_21}Xy0~k+wGYwN7d=2h@P@%J349YC6a~RbuH+ZEW_K!2E_Iq{cd1qv)uF|F%xyg z6qUoyjF{@jHgBQ~Uw3^yVji|yM5srEo5UY$2Oni&2xgpmNik&%;|3#FT~tL83Z#i6 z$S_kHl0QzrmQ<|e1oX0_CW#k{V_Fd@-PWa43Bfc|XQ1?BVG$=(Tm_akW$dM9vg)iK z<`7b~vb5DsX8lAhCLf|%AC}$ z9`Hhw60d&rN5)%icP7t&iXBk@vlMu$oFq;!aw1+M8m;f^L~Z=3}_GvUYlY24CnbDP}vyl^ZzeEIylzp=g*ZmS*iHRr1sA^fwqp zcjn949xIXE*G<~D%c^^}9Y}m9gI=|aR<=Ess6ij@U_+U!p5-$B#RJnku-4I*>RRzj zTOR4BeO4_qFKy2tF!qxd@SI#|)2lKMMx92=6f7J2sJr^IpG5^^ET8zNM<2}Y0Q?{T z^pP)}PyAy04r*sp)dotmSIsX=#a%T-ddhT?f(l?tS4;FY6+q8g9q&U?pAh%ii?U;zunG($LLZ&1`JAP9dPD zj$7@~_16$8;IoXd`2pyQgHtc$6ECX0Q@k}edE;&_jy4! z35M$GvuOvT5eka#K{nG3%8FWkF5q3KMsxH!PDFik zbCQ;Q8`p#nH`gpj1O{3gDK39EKRnE|JT7w9=Mj1&oj_Kzk*fKcNuo{nT}PMB>Vmp) zdFH#5Jt(y@+g;bqsjPGGP|b&;=Cg^G0=5q*#+MaoLs+B;ly$(JYv{=rP!;*d@l>+& zUQ(ZKAMBiOsbuk;qnaC@;vttk1)~(+dcQG+dIgtfH=?2??j-++vnZh;xw?v=WG%b% zW;^=|nyF}*f3k91ejr9B*YT{gaJ-k0#NP>*xwB140~W@!ZRxp7S37X4)zi~|>zaILsmm7PrkZVpc#IWMT9WoQk>`Jd}Hc%J%)q`jI-N zsM`cNV*DIq#RWI=KH}+!#uh|dOKZxZIfpN?lbCos22FhO`$PU9Gl}tCbYGg|HE@>ltwTPSzileatfHa-N z{x+sizMkktV0cW3Q0#m|v=%}F=g#E?3Vl6H)oXAbc-r2{uq>J*6tPZiJX=1PqF~-< z9{7DNz2MSC9n=~17*I31D6Whu0ts_E$TVdKaRQFyQ9gp2Zgq!%S zA2NDDo`t)pN>QWdOMNX$ei;E9An%fv;rc}err<&2aryPR9#G(3E0j}kkl6-v1EE7@4CPUn z5ig(bSOh!~C%pzv{lpTsimT;ZO(={?a`K$aqtQ9=hLXg`GWw2v^&VVnc{33Pe^ zf0jk{^*6>KE#~yz3Qn-0C$qQ#zcsHQ=7zwPiicGv=q9SC{cKrLUP#ph++$FI5By1g z=^pjq4kRY2t_Aq;cj5CFhda2agjK{c=qVdcT+`Y}XTS(ZCgF7W@O{}yzXVOACWrFM z4=Uuq{y4o+J$#mRpU@4&!M95Mh=}Eox=iAb(CUYi-;Xjjyc&_kgp%grssf_^&V;#% z%Z&}mHvV{U={fkMHD9S3vDJHYwmzyl!%(w{Il8*h=MLM6M6y$#MCG`@-4;0=z|=TH zQTlNZLmc$%e|Lpv9(Ngs5@D&mJ@Hkx>MZtA8RfIZ+HWf4sn6Czqr5F z_~1|t3HRXC6r%}?^Jf@TpLphvZX<4u*b8$xxlTb~PNh=EMSgQ|11eU4B-Q4WqP{1_ z$pA*q`L;*MLW=KtUrPeX&=|4mIb&+^lxCO86=^WcIRdT+Zl!y7=+;#^VdPxHLhSXQ zp|26*;SzPu;lOA)jLx^9RCa=p|8S4CUxuHBV#9}ksFH<~bAEi@TRk_})%ezNCDD6l z2Kj*LGjO46w7xoTzde~Fo1SUb#Q+YLeO@7JW)*^TZWHt~qA%-P24wpacCgO=ZuKFU zeRsG{(W=gz=nOr;srBF9YZc6ZUucfS#5KH|0?N{Ybz!bOg0OdB{XSAw@I9He>jGm~ zvp1Xep*UNLTna<@A~(7aon{0sDxlt}@JD8V3B0^)Rpf*tj}3#!T@vkqfI6VlEy@ON zHgBaaUkgNdON|l^6dg0e!%gh!wJ9NVeFOO|C=_uSm-+xzv!spw93xZN#Eto0_j0 z?pY;~#m_laYS@pJjmSqIHL%T}zAe8T)zxZ8zyd4gWYT?pT2;Ud=>%Wxy1+MpL*B~Xi)NvwSbq;C=9eL?j`6#@%5oo&o z8j@+cpF_(M`I~6C4=Pm~;4sd@;thT%KdN>DHVmi+wgZ=cSDhvehC4v6WN%DYYioqx zv8ZdvbOnNxz!#O{)evflNv{=c*Iu;?n#+h*;*~ivM+3~Ea~3K%!QaX;wV44ly0eoB zwE-E(v=t3CetTDpI$NI9SsFkY7x($(!#tCkuV!QrvkA~0uXNbJRx>9mi#d35lxqWm zAwlU7)}+n?H~k6N+%A3RDaayfnxABzW>5tk0tqf>ZNXDbQ8D-La-r*VwU1+wB7*Y0 z=@ku$UduYu?<}N3dM>!C(`kh*P0^6cQv5ZZ9m;blXQqlFMgl;5Ys_KvoaBB)&h4zb zPL4!eVylT8v?daeP6-uBF_DKBGyDwuRW}qF&R&y2y#t`D35eU{V{gBn47|##hiq)0w{T8~I8c4q3S^$meY}U-g-ex&%Wxq<|1;0J-+%vOZSerF?o2@y1)}V#XP6$EG?HrZXs8 z$|y;uK-JvOQ{+nBbCrA@RF%1#*EH|crPxY?(4I&fu<#r?E~Z_|MBgEmq5OgqM*?O} ziJu2Y&7$h@Lxw})g(uYF{>bK)oU8GTXRHY~!zS~eu!YegjOEooC#iS!MOY0(UG=&( zEE+!s-@Miz0|eX!7tQ$Nw6JX0~G%K#JILo?aM4nh7)hu@Qez2i`0m zE&lj)94_Gt|Dy4AUyDlMkqwXN`c~E7NL_XV05BfG1`6+KIs+(zqT)kKsJh*OcuDCS zN)7k+Qw(^s8WFhlsN4M#!V70&kcpC)>J*_L3=ZF?Y{nMVo}wg)2(=RA6jsFuN#*Z=R45{2D=}7OWiQxr`l))Pp#fp_QdOe$bA2nHZobqA z3G4!_?^nf0n9$Ga$eUm6qWdwx6zX6Bb)jnjhPPj+iEcbpu;fqky+X~NkSht8W|gXi zU)Eiv%Xaauh3so99`O6~UT?|A#6UEc3)VP`vA}d=XKU@W&e>z8S03fD=V3-_1c_dW z_L~pev344t$Fd{SM1u1}-IV~-s$OKY?*`N; zA~C$T=qPU;6NksH2#%P?xioP z*83DTl*pe@!;JBtfh;Y?Ex4;r+wr_Ls>xow{dnPFpWn$RckUX~i1CHkR=d$kzzoC9 z&)6smL3*abW>(qe^cmYOYM*r+U%R8Dled@Cv;qMw%Qc;ng(luet~LwIYV6x6vu?w&m#=hV7`<6>vcoopjwYxJ^9W*;lH_{3+y z-U);}ByJZ}79-1uM|0}LMSWV>XH+iXehwDPZaI}_JA8+d_-czd#V5?#X7B>e71b!FxCn|Z#$MZG|F*9@(|7goHAEgHY+rg2QhPS{YJ+0$WX2v$tz z8dsxV1(vO49*WKCB)3i}QCgy`-~$OFym>XFwToEhD1E^wJvD~ zqtFxI`*u6Pv}HqR6~*D5iXf{c^}r$eW7o)=_<3a>Aa4-FhUSo5)fETXPZG>Z|yeF{V!zjT59ryKW}AtdP<#IlJTxm%;TBq2uBMSE++@Cxj`J{ZmG! zZTT9DFbi5syd9Y*RooRtLRxh2s9mg7(OU5}e2rU+mzn0ae_r3t>Fd-Pyk8C=QY z)nu2Kz^(ipE*N;g_#jLPg+%)9#Py2hoPc)Dlm=r%?SX^Hli~J4wNGH2d9ZkhfSJYtx|hjY+UQi~-tW&N)3;pMK~Bo8q+`o1B;@{4UC9~e3kQ+$H2o!gw)+7-|{jLFz_|PYkBX%X1q%vZK3Lvc=)2Mz6sAfl!~T?Iz4*vyHg4*_31C1M0wdiQp~a z%id7=gS;KJuZPwz1a-uR^I0(0BbEm>mqmMCdzbfR5JHR5?lP6CA!3fGon^u%1eRVa z#G4EieojcQrPc)JW1TOdwQ(_&#!BE)3~CRO2o~;?XiB$#L}cQ&Z-vLI)3~1EEea&w zI_@u*4V_Hw;18R~3!V?#udVyCfFz+pgA$gad4w?=M_sn!5Mx;*YLR&(0&j1DxuF6# zf^^Z}yOud7fWkmX%BAGG5PWUmQ22?^9K6EhagKx-@(3aSUU&f>A5NtOe^9~*Gsk2P z{>n$8P7^YXK8iJ8$^gx*@+B0jydC3igS17VpYN8p484AEwW-=T%xvzsMW|>r;Zs@r zF7AM_iw01_jrK-~n?{zk#E1cgB+tOMKNnLa+Lvi!=j38tXj)=g^8{-;n?OX`tkax- zvMTv$9hthiXr5GZ5jH&JT-Ex+R#|`u5XD?O% zCl~dH%*-H}WFbt`BOj68I^S}6=ZIltRq{gM0p+#h6RJg0Sh%2;(9itdXQ}|P5Y`YB ztBkuD=o{W2x)Q#)AcM1f;9Mjg^$TjQHTE0KRK_*D?maKuk|$I@`Sxd#ZO;#sl$}1` zyJTI>O&?r|%$o({Lz!Qus2DWl=-9Zm=E_019W#G2ZdiQ?{`{4LZcMW=i{g7Z{dw2? z=hs~Az1&7DXNFw&td?d|b%Cx4W)hMfR(*%m4#P2s^h^|N=Gk)J&VvAoptJuplsY@X zBsBrua?&s>P16Xa#ZH{`o<}Ofuj9xe-`{4zJJd>&m4E0~4Jy^D0Ii|=QaG@uJfp&6 zRx}nmghZu6KXyD<`9ddO{FW{^C5Rrbt9~%v(1mYWT&x?a4}6TAzqShA^<2xK63 zk?A|D>&*;jXkae7KzxVtnmUCOEWi19lcG@#+2)^}#vDwEktK#xYXLFRI}WNO(ar9d4f5qz9vo#x6Ht(%h=&0pZa^&$`mPNPX>r2bnf=(Cn}SBzqRHw zbRz)j^P4NsEXH9JJY%>VMwj)qaFtj$=<7WtDO=A=ygcyNKms(m=%9#_^&z%hC&HoM zQ7prfNXD8z%w6O4CD{1&i^9&Wsepop^|h!bGW3Ng8B_&g+XCyUf@xl>7cMD{ystH$ z@j-6%Iit#t?vqWOWL^G3mnQ$ONdcu)>mFZ@zC|Mi9S^zf@ve0A2Odb?1 zZQC<_yKoK}=-F$Ww>LFdx9l<`Cw>@_gKmy7p~nOt8ZH1`s}C&n3r7PZ1-2$V#Oip% z3a!RyNRLosxf!KNU-sfM7qf(JiWmB3Fn2`MlB{EE_+Lafu0|A=!PCS0DBe6^bs3dm zD++QZwnVj__@Teo73CeR+)~%*3^55US0OZ-8@CHEYD4~V};8~Yu0C!?JFnLN`@W~0+}FY#bxhPuoV&3JcDGY}1bCKqJZ0}_Sd z>hf?hNNVzZy16xe8LxhX@~cNxdwW(!g6Yt{$dISXl#%}7&omKo&!-O0sfK5Er$F6t z`jvKDwx~EGLvWR;36wOA;Ng)mT#G-_nQaR?(qv*kT^Y%i!4h9gcsg+oHRh;=p*ba< z;V8@TMu2TigLV~k-m+n`p4XNk!mW)=S95~7a6FpxSvgcV@b@9P{?O*`I)HxP?i|hz ze^NW`o7H}Cd1#BdUn_yGzaBVjCx|M>MHwY>A3TGf_5MPFe9(%qG-UzGNW2=o) z>d_=));X}={y>v=edi;xO)!+Qf9Gd23`|~xz(BNfb9unNj3XlvV(*@H&=(jy_2b?O z{@m1|fu1&;gbsI+ly5P(SIwO&7Up|y;Py|AR{)Ds43FL+WaqVAm$M_WFg6_jy;WM| ze&wWoNgo?=G^n-2#3$am+1druxPZDoG~+ABWhRtogei07QO$Q!-S;6uB4A4*35H%D z>r#?VjIlSb7RDi z$c{?d9_Hb^HyyM0zz{K^aEY-4 z5AU>_!>_9-#2H5!|12RWso<#I zFUakJ*BGDlGLG>+Jsf%VkGZge*GN%)(S=RDba101r?FQl?TDpne7|O~*fWE008~%J zZ6Du_+SU$&#^GH#CE_y~9wwXs(a0Ufwfl_&VpMe_5l4SWm-yfRoK7UHyeL0O7W=-8 znv)}scN;*0=TU+^NwROKUilKY1k^V}ksyEIZVCtOy=k!ibnyPzdIbIMwu#fOQZb(7E0-Je9WI-?I37oaL+Yw?-(F=et-L=; zg*>-pU?bMr|>` zJnuc`jiNd)zx_8H!5_vb^{$?KkjbtT=kl|{B)A$bc8+CT6-cEs%V)- zq@5Im_;NYWhY>Sq$ndagpwuVqUffb~+)u)DNN^D+8wHU3$8@Dyz9{YDtte`yL1#WCc{Rd2p3{ ziqrpQ;2d-?W2-u^-lA2gxg>r>;gX`ekgmm6pFA$-@P1Kf{ZE2t;)5Nt@8HU?Rq-ot zBHIvaO15B`J*+Q8-ewu6Jx8=sJ+id@NQ0SEH|9_VE7P0}soY-!ML8!GE~{rTbF5{N zo^U3a1pT74@WHMACLa197hIr`N>1^Fl;W7^lV7a^6@U25&D7Njo$v|Lsj$UFz)P*)H-TeU5okE}zA`}ua zN;NaE)HC9P+hFLvE1msAi}&$DC)4DwsnKvJgs^~UQA=}_n&xk=5MeM!HHjwv zSs~JlkNx@&4gJA`QVqvE+0^n6^u0R-2U9MEtb6NUux0w?p`x3dW0>mxR68zDnHQDB zSj8}(h9AB4Xd;zW@k!tqw|1|8wA4QRou%Pj*S+MBVEk8hrp{w^;U`(gw9su8xq4AOp!l}F9`QQs@$J!}^BcFyqo^9BaMJHwgE=Rw7o-=+P&eDvTOYrbH}en*ly857>E1CK@;PBVN0j1uP-1m8 zYJ(ICf5O&pQn%D84^;mYQ4_TxdKmf&^CE&yDcQuOe9Z0Ml&OXr+co)jw|u6<*)LfA z4V)5+F1!Jqx5P=rD69w{u!_kbQF7+fp5C8X*0L<%M0x7G8=L=KoauWCpc}gL0}M&` z2yLBfkyH* z=Af-fsrUqgV+@s|2{)L5o|_Z%Iy@OrcS+)n~;yQ5h0C!;doF0f%zDE?H0kPjbVc_dF3HxOE2&~jU->NFOdds zQSLYnLW#jz=chG2&>R=z(-fh!*6kA}Sg^3>X1u4c;W@bU>VLK78E^s;`Dl%KsMi|g z%%`7;_jBE}Gq5;9S3H((WY_Uqc1odsUN=>1==~N161D_gURA=5O}fe+503{@i(5PU znz|(u)W&wkUBC$bY&_j$-YEVLDHUGF0w1lEAiNdK!zLQSLn>nCudZq!An6Yf(~hAP!I6m@2nKbn z^=cOi1x(efbCbyPMb-vUWqjIsDhcMTM6G6KwF#u;_4_VWT-HnKHqxrrd@4qGB+%Ne zm4i|Z{Ovxw{HSfR!Gx)vBY_u?hzv&byt1P}4br)qBRNJDZ%r}t0- zY>6)jZV*YZcm;vTfZp6Fu|;yHk_ixNN~Wg)rD2i26QZ62JpwJtosq_q%IBM^1;jr5 zDN16p7=e<2Hx6v43e|T6gN~-vO1&zj-2v%b4fsjr*5sTi_&WKowWFyxf^%b0R5F3N zv^v-LK_>2ASfJsB)@5J+yOckg=SBMBtA%)CfXSgG9wr>eY!PSzpnS*Bb`NwNd6j1x zB?0{`r88qzD2p|x=5)(_THpqDBw;@VwMiG&Znw?q#`$*)?P^oG2~}?@*-;xV_<^`j zz5q2fa}d0NKR8?drHB#`4A@=-Xe;)tC109or#`Mk*iLjcSKP#jOIlZun>H=#`+D;N zO`Rvc1wTu7R*p7oY1;l|*~19@k4-#p+1#Ky%6#;4KDL;tGEiry7@) zW(pvw&GOqo^gTnooCksdW(icVbtT(kf%jYSFC_F9GG%@kmu=lHF(Ff%5hb%>ZSNmd z>}T5)?WKzSJ3SC!nm1mb{%7;iH5L*h?>GPPO&gg)gDOkEWaoD6 z^Zr5iCQc;JLXpM8kWe0sm8!*hU59G5H_)f% znqW=#vO3OWmn9Xh(!h=DV81-R@&1$goCYM4jovA0aZ$w%W>p^YR=5wYrl+ z(}zWIADM@`dr^6zuECRW)$DWzLR+eL1jkdyF=Eb8!O&yi2r!`mUD;4*UplChGCue= z)S^m@!HY!d)uw!{?#`1d>L7J(UZ$mcKNvB&Gr?p8+R?qRdmw6+b}VYyRdQ$?0`Pg^ z9Ko*{5r?mU8(jQU+7IM3_-fyzapVZOxFFNtG3S)q+S^3IYPN7ciU0TWjFG9NNBNdI zHYYL|Qn-y_>R7Gd?xnh@r73=N0?ZAuZ`{nIaABnUPnex7KC{{CucYpe;0E5{_;l8m zSUL=*HB%>rYvGmRb4R*z9ga{a6R0ybqI%;9Om6ee)djA^Y_9Kus<*n|)<(*UVO_KP zBIjCD@kM6fK={XA0j86^vt;`U8*n5Mq0MB+dHb`;^C&TCU|MiklJnJzDUVonD2F0t z;?4EBtVa&@j8wZw4l}0mSdivvnZ*kA%1wEk#RP$A`c<`Bqe3U*<|miWD3N_2ZP#8i zm+34;G1O-XmeNfxG{4KI#RhGw-l88BcUDw$6RY!fdFi6Ke?B57zd1f&$M#S1e)Pqu zJQ6%bz}!Lo=~lqUB$|{HqyIbG`=0u)6+YWA)Apegab!)ejMA9I&olg{xwew!QP}CN z&=eP>S6vr+I5a(_+^r8 z3R(K;Z!Y6tAWE>1r^0Y$@eZOfu8RrUE8>8~t>4^w46!?K@BVUpKc(6)#Tqtre8)R2 z5ba~7hUUK#v=~hTCQH^0)LDmr1RQ>Ug$a{ef?@Tiu!q86x+|O)EW~2G-c-{M02i^Vfw#LfMiBBbC4cWdCVA3S5Dcwx-mE8*SSV~#gebmlTx0UAA zn#LmFfyq^tGxwggj_Dgcn(|{gGRK`v^b|Z1W6u*;WL>mgn~9@$ld91YDgE0~VDD1s zc7r+8e7$P^i04jnR>DCk0)k;hsh#EeST-SM_EO8fbn`0>q6OZppCe-+|1q|bEZqDG z-0OWp(l=(tA!a4_3!(Bq+{M@F1+P)nwgfTcA`kPAo%6Za=mkiBiz%}aRx~bTu7*qm zHDhyH(mObJkv()sVT!5=`;6<9qCwIA;eoXpzn^IN54?@M2b7+tU=jtB8f4lD@P-p&{DJh+drxeMcR_p%J;A*?Kj&&AdLCm#YN;z8^Arzh z31>cGwS0+8mCWO*utYZ#LMy&9csn&H4_kE5p5fzGJ-`y!!QaB0heiLW?|o3E&@_mu z2R}6XFIsR-lr%G7a!7Sce)%DlCF)`~SGPzTl$NkEh4N=dro6vx&wq#w2Wo$jEwK;L zc8!6C9JM;$e9+c7pjmm8ILg2diA4BEwXKe?qPI$bNX5xx)C~B%s%sVgQp1Le&NQnJ0YlJzd+LT2%=Xk-@0>8r zZXsbYlYdG>nds8-m8a3th~RJb@Y8BfvJNK8S{aiCTFF(iJY}jltK(vXBuVI%m={1R zSxwD#sy&$8hOk$)%+&b_mkc_WbtG<4;}MOq>>_tvacDekUh^!G>O1{gx`9>&sjg$i zynBt_ax1+BYk*TC;HOS#1|EIEJG|+C>$bs@s)?WnceF~c8sdM~(!0QIT=A0-_bxz| zC*>jzs=m{iUr&_LeC_QAC7i{{Z1)QoI>#>^@s#x;GQTE&b6rvm|LVL9k@OP}AUaF8 z1@CpmXd7sa4!cTx)0hM@eM?#@hp}+Rj+XN=1bM408j>(b&^xYmTEv_yA|d$AtMe}A zk7yI?RzP|Pg=8Ic)^jo~83^c;uIC=W=pBOXazv`|NMPDR|70^z2gftp`jV{MF; zbsQgiVp~0J&5D<6*4op-=#}@SboMgAQj~O)`xBkbH>F;WD06n?1rJiKD*vnxR#XSt z$MDxHLB<{}ooHY3FR(&+>{V`!p-c@hef4s;C`-t$Utmcfl(bBX5Tsz4Viqrci@wJ9 zv$WQI%w7~!9&8J6IJ*4?2Vza&PDd8!K)u{!IvC@wgm=$zR=nkXG~I9Rcb1!f)d`60Gdxg7?YoVB}0T4H5fSmNTO68VH*xJ1}FV`N1{Eq1w+ zX9Yq+_(y(qf$Hm$3R599?$5u2iwl$%8^GS=f67m-tc2POs7R12X;amsT{lzu`l;wN zQvZ>y`HEa;y2>xOTCVg!QTUXjJGZo%JzncrV&5}UpWJ+?672e-+!`uB6^kMuM4(W8nPP-d@o~CE^Z{71Cib@NTS}<8p zg^MEprWxkMX&u0T!N+#dQTpp(Ful|kmH%>s%<$IoJz0OkdEZNT9 z@MKZpoEeg%P%o+@G_@Rd6op%)NmsY$c-Y6WYMmIV<3P9Vsr(LEy;pb6n6iw`HSeL- z5r|jUW)fc(i-kf#Io=8JUhRJs_33|i&(p3;cH5RQcP5R{_MVsaL@&jI+4d);jvFmu^e*1H!*imo{#C&g0Bt>OTVURTpy`glL|;R)n8khB zBs6dV@nRlHTCNn0+D)Rjn(>j!nx%|d$Fx`N$ptyC1eS{Pdw20Lz44ytRvzW`FC2SC zs3ZxkKle;V#>aLYhUI!h=-rVxJMwK>zkNQQvLTStG2LrBTt8o}yd3=(j%l=ue5FB- zpC9YvU8S+)NRxZY*6oh8s1oJsUz294&@fF3E-7Nrrc;DdjtE7mFez9d>GtkhyyGT{ zh@CNOlBg~hx-N6RI^%EKKmaX+igqGQM=qioW)rHDH5d4RG4!C4MlVbBhfht@mCl(x zvWIRR#;jEZEm@Of1W$)ai+BL@hZo#W(H(@8f=Bg=F<8Tb`wUtYtkHosUmLL!Ekjbo zZF-54b*cVxfn{JzBUllKPO3~XGdy$r--SD(*zGgcN>&`QhXdr<-!HWzbC-N zWT&jglsXVQK0zLpFf`|W+<4N|_HD)ip_@EKO^FCxv6ET#&S!AFT3K`))v`rwUBjEG z5_|W*w^%YW0fi>p>~@#;Iz-`&DE)j}1m`Ra06z7MhwB*B^IYt*{q}{O0iPCvwWM@? zK2q;rYHWMr9%%me|aMN7F2lzWHbqF16{AZfcu@*tU|2G@#Li%UM=Nw zj74dbkftkGNkX8=mD*tc+0M~+R?~#h(N|N4IfgmZ3cBV&g`Wx73 z2lx@A{g8@jR8!gC_{d0)v`EIt71qXPI3uFVYPLZpml1gBZHD`0A459N3XhE^nuKgi zuDG_*f_)~*U%Y6DDzKXx&MGjq=XzmKO*U(Oh!ZAU?Q(KNqel!rT=v*{ z)XD`9{S%BPw$TL&TJU3x@rH-^a(q; znkhR5JC_P`PL<8c4geVf7iCkE2pNeSnFJ+aMZL_+>QruEV)~-!a%Lgap;le~UD!{CL|?jd;7c$yKfzM3zey*~^*s1IZiE6u3#@qG zlVWqM&%p8h^Rs_#Kt7yZ4NB&AkVsdauc5Jr^XhCJiEOzds`|(;&fd*jFG*rYVWeHD z#Q6Ds&9?{@c0F?AvEdsPvwG_yx`HPFa&iIdT5N)HE&<|Mi z=9&Z>xOTD}OZD~go`(;*Is`n1g2^Hwn3?$XO_gHrHr|`Qnn9o&>FgAfQT=3@iA$uY z8FW&y%AlfU`(=*6Eq0CWkBLG>uv|+PCR`;LhGQAbp|=##FE1bpMsg~9 z(`05FQ+}}AEVtn+5dWGKjuc()A&>&;>}*Fbr<1x~b?B4A-W-#j&X(dIS*UP!Tgtp& zGXE7W1tSH_>W~w3n!;F$SpWu{xMeYo>YwF%A6OMEWBwsn9Iu0}H5ff@9nbIIq4DSN zKX<=!DaTEZivdmrw<4yc@|P}@pRD8#h7w4M*CJEI(YB`rL}@7t8Q^@uw!@>kid^)8 zH2hzeiF7>*i_39Vd4hOQ&}Z&-m_)*IU;;6J*V4xs)$CLxaMb&6f*?DvUC;VptY&jv*eL2Wo3YIKu=qElumXUv2S=MIj3e70*>LT4GM zV}_%T6|@o+gkR{?30)CkvmZpKj2BTd8hdPv-zpr^OcOiI;QuV}MB0+rb$@fPXM6*^ zAuS*?G*TAbzD-B1XkPMd{*y%jV!$k)oQt#4IFz1`)ubC_*~Cs|($me$?THNc$XS0( z?-Qo#Ql4=Xr`(OT8Mq+oy~5(F%dtAH1Zrlxf*`_roalYI=T~KR#s^b76#`VqR-rK( z7f2i~Bj2=R*(qTb2^pxf#cl}M$$OI2zFEFi-&~-Ic-g>`#qHpmlAuiUyC&8s)(S`c z97?VXh=gvf%|%?j)7K8DGiU!X2a98n6 z7G4$%G#ZXwij8p_Az?0*5#O7^j>dxl-_^S${2NwC4)8juC?(_F5*wOa!DqjoPJq8^ z+^*_g#axMli?5T*SaqE-E0V_cNfT&cb-wS5{nD7$Q!PU|@S$wEKMzK-;EyfpFJUQk zNrh|u)%;~)6`uJ;H!W`d><(OEjgbMAU|kku%hQfZ``SO87;=H{05}JCoG=% zbee+^-T2Y=VJs;K3Wo=H*41Vl+~NKk7;vc&qGe#rZBM}sXa!I*i=2>8bQGU|XcFg@ z&{9Kr{Vpx-!j;g%!2n+o%)R`Hov*b6WZaX!j?Sx2O}lHMxC;S;Lj|zM4yoNVW71w5{bdCf+z_ z(h!GJNIZO&jLYSfqhc{xhbkxVf+uA(IfJ&%&cvtHw&&~)VZYluEx^wa1O65ju!@xW zxPcO9dqm*Hj}Y5%gTa6&Vc+FbpHgmK)3QZa3+SlLowmaWf*IK&TvP1 zfbZg#(nCl6t;_;o5)mRHq_R^(+!bq4i^tg-LxC_vGK^hwYIT8uf{`X5lR1dvyVt~N zI;~lM_6$iCk-Tkz(gg9H63@Vrl&f{sxLJc-hVk%KgpROq5zRECI;d<-^%E$DBmxjx zDYM4n8>l@~dIQ7-6D6$pxtPZh7T_U#xi1cPv~d<@3L>3%TGCUa+Eft72#YCfU(*{o z)LOw|d$0_C7S(jKv(=oqV0SC%9O?_0m*j5rIiifgrBDHEe0S1cI-4XDH;_}odyBg= zv-C^avm=z`034$#NgMQ0aPaXGfDWf)7_CCCCQC(@A7wE^fkYBbCNqh+l$y?MJgP@nfSzR2HG^ z^D2Srlt~83dbv61308Y(c93diy3xwiWBHCPdO)Io41x9V)GxEz5z4;Fu=$jIQICBA zm&D>Cu=td0Ybte#c3{1Z5gzngck2{OrBquelO|)%?p;|fR7!stw~Wod&oJEAq^E$T z@`}y&rKD~wG*yeXD(O%APbVH;sWXa#q+?lb^N`lP1b>P=u6Ihl?^1xdIa=6 z!FBV-eka#Y-7}7Qe<2pilD=8?LXIH=6-A?>22isIkM*{R>@42Vo=+kkp9P^#14|G+!lc zuI4`0n0)Gk{3j!-7F5?Ajjb2CtL88)lRgFFp+ZUp>5}Ovac!N&Ct`*bzIIyz#+5>f z?{D|wE;&ta__ysE+{%07?RPnL9Df%6%gh8SiHH!LZk?FUl4seFezb1}{b+FwJR6lK zR1r~tM~|ACAz6773zQ|n5_z(}lB?yQCMz)&A-Iea&DUKxO*H|*BnCBvN_9T7;d41C zQ6feWz}jqKJVaeDWP#|14*=|ZS-=S9goO&np6RQ2-UFWjfULvdCjNu( zU|i{$6sh4USmGIdY~tX?U*S-7s-qKO>6NOdw8>&j@Ljzrby}q2gpVev%lsO`vN@d| zVY&by#5Ey~0)@jI0t%%jB0Vg+Fx1+;S7k_P@h(8BxrXNy*FP7o($@gU!lIpK;aFH> z*afRl#^n3+ZaNZObRR(0bYneCG6MgWd}0YXM?DKjp!(b7`&UmFLe7GH05>dUL-{ zz)I=zkoOh$=)VBApcI1_7HgK?#$0T=+aC)d!eF{fr`%iOefpYtDvFXV6HBk=y5CJh z1l=pMJkjhffk$z{`6UNnU7=%zf8(bUFb}aRqUCw`yd3)ht~Xb zAprodwO=NFY5hRvdgZM^zVZBDcckN3uSZ5u6jWiT!B5FRGwMrCet%4OYEJa6DNmU2 zMWo)<)Qx2~r~ZXRdr-LH$QjI@crrhxWcq%1v{AJc;3#TV%La;4BrOt;F_*GTb!}y% zp>?sQ-o`&CniV%!X+&_(ZABl1kvHJ@QtunC0`9dh5%eAFpPt27pLgJ4p?pv3!#wPM z&8QIF;KHhxXNSD9q|}jT1No!A`pP{99s)72$$7H{defqfwY*cF5x*UlI>Bs}o_Lne z<$Z;s1^2}Dw}YxAzvUHRO(Wm&7$-;JRfA8afmAsrh_bWd-CplAk<-IfPiZ0T?#7l> z=ch%kjc4#y9E|xqEzRv;c07jLze9_-z(P42>aIB9q#F>oKJOcvJxYs^HkTbEa{Z4M z;M}w7B~lt(s7gu!ef7baSP_@r6YYSG(_48^4EFM#8qXHeyBIj^&;}SS!!yW}3FQWs zUl5e~6)vWY7gnc0);vTD{V;!we*l0zG&jMD4z+aER`gBm?d#JkBc>5hj@0w~%hE;o z>9=eG#gdf;O`^Kce=RdjN7Rio>8G%iOx03y=3tL#i6mt8{7j~XSyH=8WD~uKxXb)# z0?j7A4$p39wD7ns0+$@*$Z!wl>iX^=t_XK^{x1h4>nCyOAw-vana)8dH=7Paw5|5C}hpzKg_}f9(p^`(o|DUh){tF{2{1xxPaJeO@U+pT! zE#0*AUHt|*91gg^6oxA-64+E<#rNw5q3a{;OA+LyUNNEfa zN6z8VVxfZa43E#@!Q9erVy9S@5co-9?7r4X?m3rE+PMJd#V64n(cXY}R?OYDtQOS9SlnJ?su(ZHa-x2X$mJ+%=T@HBSrgj) zSg-(uO3z4i(8QKLLHqt<6PV6Eeu}i|e3mR6U9s6w;gp`Ej`cf{`C$r)V(*%}Bk?wH z>6W1oTtt6k0f5rtVaDRiuL|;CXyY7ftCfGlOhSV}m__@+i(xbTT_pi$j!+jnAfP?!Lz`fc<^LVwr;SUc^31dzzQHIwK zelH=qtV%_op3uS^aCiL}+`CxQ(@~tZXU~BH4*}xe_y64>)%>qV|8EK&FKQa`jfCF0 z44CM-6?^JlQ&5#3^n=aT4|iGZarF8T!gl9K`>iaNN!yRT8EnJMzJv%P11S0)U*nwj zdfMmgzD3|(%pyutl)zxCSdWTowPSNHZZ?4^+5yhDAKmw`)T*FOGOZiyOj4v|QF)hK z{3SS7@IQU+y=p&V&3rTYIdNKEb6MiV3wo6K0!x6f=5sVOsA>ujkGWw)M*MdCFH_yb zAT?~&|Fw{&VF)O58C_=X+OotD()|1<6Jr;1wxXb$>q%S!H`OgqNOIfQI^!SRLQ*sa z5%X8rl_AI0b&!#0>r^P%<-*W=iw$vk6D zFKT=cLo4qAK!kdE20*6rAG`$3e<-u`gdT+Fe*BmjDE-x7e4OO_Rrsj+d@s(Z0*7k9u-K4;C0#0W1@PMV@YeX3bjniMJV`UrNey=Os&+~29 z4?xU+$9b@%V5mb!v*v=35s&L#j;2RhMX-INHj1PH=M0f5NDBBeW6%yaFyl{V#=K*B zp3pc?!sl{w0vc?U& zK^WI$`w*V6{UiEgYWbFb&b(536wHPGC&nlv{{egV7#c#twMPWOq6Bz;Tq14T2gW=; z>d?lU2w5UeA9-D^d{K1fhzp$vSuN)=fTo}X`~pOji2E%VV-=pgEx?1P;2=Afwybqx zC--!zgCQE9=t?tiO@^+M9Ugrc5==c2Ys_#msuH>2ng<&!mr%hOeSNM*$YA$uwx)lK z3P%sc42$%@55O!{H64~k2tSEJVn~mqXec)tWuRaOG`kL5M%xTNT!;D=IzGJ4x><6@ z-o9Li<|Bq~<$>FAP-`276U*PJ3bArge`@lyxu&2>l*+oHE>il$Bq72uhw7?I^A>*7 zMJV3?Hub3xsa@5ZRFPtVUZ#}S-6gJ<*OcS_A+G}Qa1{Y4D!n{pq1oN3k2Lm!cOhi? zWv-&o@9-IPw`36^+~O^Q%QdR|rm*CTXDh8R4XojMAuJ)to?>OMEdodLmUN?idQ;T3 zRMMn6URymQ5Zr$FD8i-pfmsFae4GDXd!JuCX;$HY#N%oue5Q@VUStndu8Q4qwzXY+ zv^ZJeEOMpo6VnSQKtL!`Xeosti619UHjaOzKLC+fpbUC?_%c|fCYx*RFjZvaD(#fM?bJG_8J=Zpsonmc?zQnoo z!bSD>DyV7Rw1JDgdqAKNe5YS#BY7;vCTD7UO5$`-_UlK7PKFL3bPgRIi?me62JSPo z@=~>;`ZD`W7+M{F!?{8Gm?mAk^-le~7EyXA-6-(>rVg=>V7{7CSxIIJ4tvJEIve>w zb#KvIWkt~6&E=kg1*$}v<)-j5gr?2-&ZF~B%IrUtsP${GtvTs2#0jFb`weceWQ+kE z6tD9eRUXPxa^43Ll@u}QYt%=LKe(F@V<-E?k9t9)uI*W|o|$`kQUZXKC-n!}12vamM0q%8;DuNSuuu_ z*$wWwt%1vlJJJ3#@N}|Jo`&}>R=+W5od&gG7I4^>P@Nclfyg36ZM9liGRWFt#d@_m zX88sP444g4FRGFhI4eTH?@d8T$u#{Zygx;EV`B%mA$A@dhUf(T&)Z4+-;MJ>W!`pL diff --git a/packages/core/docs/commercetools/images/setup-store/customer_scopes.webp b/packages/core/docs/commercetools/images/setup-store/customer_scopes.webp deleted file mode 100644 index 2c1d3808c97e07509530b0c833ba315b749a20ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21020 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 jsK(r}%8{cyRVi;e#qXi$1CBA(WH`>5%SO z_w4RDyZiCpdH0<6?$5pV=jo^@Dy~xk0EP;0wG6agy(0hs0L1^Q029E10gzSGQfB{$ zFo*=uBqVRO7e%$c{~eITyfgc>gT~Su`Gh`UeC!RqCgQd~2Lk@xGo}6G(np7qK!IiY!>xk>WeJ99ep$a-K(BrFE72gg=CyN{n{_mtmK#KUZ!ou-$2H zT;~%<(Eblg*CTheSFWSdf+0+y(l_BJ*!!Tr-v4s+dNoatIZN1?Ir!p~6;oDZNg>8#vY zvsAm+S+6PZtryt?>rCU8QgtS~2 z6MkVq*Xyo7!`R6C(#}~__mx=Yn+1X|U6X3`n%Ix~19p|_L{~I#w@>rZ3Fvs8zRl6} zsQcZ?`LIpF+)0Y+8xk#@ z5qTG=E$OEg7(0;9!O8h&?a7w>wL5R7`hLnabCEn9R+5(qycXi+Vxfh3WRdy!K3qDz zf5�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 diff --git a/packages/core/docs/commercetools/images/setup-store/menu-add-category.webp b/packages/core/docs/commercetools/images/setup-store/menu-add-category.webp deleted file mode 100644 index c45e4248afe9bf050f71146e23c586189a109227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5958 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 diff --git a/packages/core/docs/commercetools/images/setup-store/menu-add-product.webp b/packages/core/docs/commercetools/images/setup-store/menu-add-product.webp deleted file mode 100644 index 5c36b2f5ae7bc5cd815a97db807fc5862fd2843d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6328 zcmV;p7)R$)Nk&Gn7ytlQMM6+kP&go@7ytkeaR8kGD#!qD0zQ#Qpi3pBqamY|89=ZS z31@EMbx`xB3TTMq{H`g_FdwiUwcQ{e)IY{`ihiW~5q_lgr~csn(t9}S(s*0@kK?a? zAKX8%{xCdy#0WGG5**81J*zGUIrg`|C#Is{G8b-(}nss7D>{}~Zt`;ivMt!PeS z#M>&8psNFiHdK_KprQ+Z8=+?p=L$`uZRenb%OMq~Msr=rBPI6piW9ZgF7U{88IkF8 zp3W7kTW6Q`_Z}C0Mr5xYc&fkEI8W5%Xw$G7dmSz|-yvoCyD_ZG7|k?%YWXz=mxg5b z;rKPEL_$N*NM%>dtG_vaXC68^|8?`0irJ0Gjbbe>R$T+pw2(Dlmm18_91cCvvCy`a zq(!mnGE#LcXhM9X?#r5~GwIT!Pxi{NsGHS9Q;Cir=~riOpx@`NWH=v-*`vqo z;pejCG)1ebcj5*V5hudjj>qLr*!?ZMjo@>@TM=w~k!Uje%B(6QdJm$fE(DJx@Z}>< zwMLaMA?Rsre_@$T5#UkE;16CdQi*GOBQ$EGafY$!W>YdzOvu4us&D2G!T3K1;P}*< z*WuBM;hq-Z`Cwnv!^DQhUjudO1^0dJ?bw4~FKxqTYx5IX+aFjqrCC4A>PB!pKAz-A zyQ+**WBWL$I<@lt!wud@%;BNPP6ZdE07c)D~Zgw8RkL*y&h*&|%Y9xa) z1yX`62h$7V2f2S|6|0!Z7~(8naw6FN#F3YYY=dK+3^_JdZ+Lj78UT8LE@C2x6iz@E ze~L5~-kSV-L*tn*D2PYw^Tk9o9a{N+XB7uly>Cm7z-r=o{IWnr-v$WE_^j)$!lDfj*djd&z^&6+Wk2M?R}F8Hnj>>6`B-OdH;N)}$->Fl|V^|BctU z?^HKqYc9rFMmS90OQtE!Si847d-_abs78fldUfI?TIyxzilP3Lm$$aPK+20~%M8ms zC~D|GgY|?5s&+e!TO39}@adeOo&TBcuk6I$a*H5PA_v(`D(UPy<1gt2sREAq&p|QO zSv#Y>@Oo$=BGb&9Xe!Yz9MEqp`SS3ggE>h=}Ew%kpq;5je<&>0rYau;hq z8{~i(6U##UHPJ=rdTy8f@w-m5{MAb{=AeDJ01w~e8O#KCC*t?!w>=jn4w*Z2i{YWq z2On=BO6&acA=zrW5qk7MdH}kuT|0WMNEV_RQPhy9u!>@>t9w~vi9>SXqvsTu#F5eX zIK_iIh(%{vtyHugE8`Y8(|!UhP>Grr(zmz^1-2>o?CwSSa0L>%TPAI@@`V_k9o@hT z#qlGL7$H7QR1_S%?a10iB1i${+8vn9!-PfS%T63RG2h0{?J`8m#S_V@r-z5MB@ghsZ$o zelPZSRa%L}19up3r59ric(5$Ak&ofl=YnG<>p5M zo)e;?Us860xP6Zc# zt*v&baYwo;rju1dBgolqaP2YO6(QXg!^>1@E7Re@tUr56?j{?>%h&9y&d3!cp(!b? zI`?;}pge%oEVPcNi+&yPZ#!SWjk+*ZZe}8DE&$R)*zNXR3ZrFOOfhVngy?T~7=+C> z-Wmv7;8hH-`T*#BRU;{eOiEUxs7lflX~r;3DqVLP*JweWd1ei57$eIQF=f zWw{rk%GA<REQG`-UQlxsD^)r83_ZOClorBfA-dQmQoJ#0!xQ4qZxlzLS}h&kjt{#Pj?Gc z(slwNN|7IY;%Y%jR)Jl|&Bw&N>~qGu^B6C?!Z_%yKHTXaga@T?j~u_>MWLmD6TLFV zk@BeU0P8d|2)WB@%QEu<@#ZM>OY!VJ^u{^`^~&iFaPjs z;@o@3+e?s|(M;+$nj-x27Dskv@|L${gU|oARo~-W#g6|u4epp~Tj+dP@?3+93~++t zy3y7r{OIlgHwEkA|OOyxY>K;UTq*V3o?3`t5U}QmnVx%g|`i+auT>(pt zGsj%pJ_+{@>iePV=k|Bb_*-QRg#HU~F+x<+J`~)Vwt|A?VIvrVKCZ>^JB^WC#QsNs zO$WsPJ9Qf0S7*!=!Zr8-ZCl{B$4@m>-j4eK2h;)3L3sXdW(t6ezhBEE4q&91b^;H) z;RxgdbdPS=tLrkkjS$-LbzbDcRu>99IDA;y#Y7I1tA}uUlip7%j50+&4!+q#d?k>& zZ5w7?s0Q`eXu)~^e;Buqf<(C;@rU_^qfilI9b~%oYWI3>+=$l(M{AuVCyOp{%rEdb zUdvIEP1VdKwSE?(&@WVCus>M*>tLV7JPdovFq35dZcr(@sbEFrXj_elRrof2>{V-e zut7f63LUP~osl>^=-KL9(((!_JDm~k{Q7t)Nxx|09AbukY_0mZkfE3E}ZstPpW~ zeax--cw}H>BCV0;p|Ekd9B-=5R-Q(3bevQgD@{Zod8ueSi(zo4v>c}KcEL2gIwaYj zHC18WT^xWN=na;W><&QH)%`1ffEWJ(U|7$p_Hme32<)t2W0*klOCe`_EWbn-BpuU? zkaJ5ao^1NVJ+7DFn0P*d5^v?n_I?fNXhB*eUkn=MDYhDZm}XBb$Or#W*bn%S0yoEZ z^*P(^Bo24BYT0!+*@t(CD%+RvSwjSTihGAu>L}X43?wJm>+AYhhHvAuOHM;HYI1oU zw}}qlFrii~=}G{S5W4!)&YA={jop=ub{|#IiEOpL80yVQV3%uL4C9r#&I3`lo(yKk zMCM0?G~6jmAE*PyfYttM)3w+FF`N9Z(;aG;+t(rt!>~Jr$3%{WmL%`)$~08qp>I}c z475WPEFINBf?4TMc%EMLpdx+Uu0^&C*dAVt{*4#HNxhW{Md&v=LHyEZ&(_?bD_j2< zJ$pvnm)$5z?K#|NaLO?BXYdlpN#lrk^lD$ut8HGZk&x14g+8ChdElH2fRoh#l6CZ( zx!FH8&y8?CjrM*3hbl+%u$x`YCg?gE1K!7>!ZdfzJg&mYY~9&gx(2`wE`L^Jgjh1) zp|o;8{Qv@=t`s?VfvhKr&La}OgLxcQpt+6`dAuZc|Hf`l&gaen8_IDDy54KW`6c5t zRqi?{g=+$YMYWlL03JDqK9<>b-CmPhYT4HG8}3c&)$uVZ^qGEmC``oKBu4L#;n}nL zMj_G}x!a|D{%Hfq_L98e&Kgvq-K+DYiO4LaQsGhWL5-GovEQ1f80USwwQt-KH8f39 z;I3cRCA0CLw!HiUM&bv5)HVbDBmj-^-Tg{7U3H9a2fg~kN+$XD(IX@o3m7BhQ*cC{ zUIl2GN)!jQ%}+EV-BMu^a5nwj=8Z&hZP1Ga@3NHvoM?Qjto8Cmg84IiJ5ddFG0oF( z0;eX3{pIs(BPnv;|I{|3=TZZ>7x(eF~x_UmKm$55{O$pt8q{CqMmPLk#Zo3*!G&e$twF0nj2+b6y1>89<174#)q>I*LUbm%P_42 z&J<~~Ref(3b|rw3dlSudViS(pEqrA$!S{ac2F9;V+z^iJTtTqy44-~b0=W4a!W1Mf zGkTs+cW`5bAsv<(BFuh_SBU)g)hf=oW8I-6AZ;Tcq zQvZk*>gzbs`*1(B&i~RpVwMw8;n^FRlUvLMAaL9p46~2W;DPNV=8hp|C(mKGo%~!kl{4- zBIS{})A|Mo@}`HT9tc^6t?ugyR;yqx;S|VpsTosYEk%Vv?Oeo&ExMl4Xfe=s2)i-H zbk!>cLN~2A>Mfjr??F~JX$!_ABc-9VSVv{YWoa&0{wwfClgXP^6n0Z=`-874yK zjBPeGy22xJXol87)io=DMBRz~8fc=3!yAEyoMg!F%@2Z`*S%_s?Ts9Sj+4zq$F1YR zzX-5zMfZQ|G>w?yg-3ayWo4WKM1gq1kh8W~LsD?Sc8S=zQA}FVy*p6pliDW*+%*s* zuzhIZ99Wt#Z7}G&t8t_aUP#E`*%S}}1j;b3X6WDo&JY&+;a`945702VICN5mw@%vd zKn!X>69D~CYlj8V3K8g8VE)2{(no^QW{h%7eCUSDwYqCaDd~t_k?^~#f+|Lpas5a3 z;{G6rRf}ro<$E;NQ8&S}Ud@flY7BSq2>k_cR$=xj+wMuvGpZ<2;jwFJFiREN25b*6 zMtqiK_H>0FPXR~nYt;2ppX_*SNw5%o+rM@&K&aWTv>QTA_SYreuWm*2*q2QPrr2vZ0Fj*2!O104Du!{~i!DrszRvV*{ zIkE(m56I_QD~?>G&S!Dw5*Q2JT7D~WB5Gs|ziaApe}13YZyZ%9SZ)e|YNt$jrfj4r zlPcxB^->d)D)*G;hoO$$N8cN8$b#|K3UeS}0o8}mG~K2XY4LJ9X!z;Mw$B|Wc@StQ z1hdF?p!@PbiJ?_D0i;Fq&o-t0>qgQ-ijd{bhEnL7+WH5yq2FcYTqYmGKX#qr-GujX z_a4SB5U01F#_akR`8H!dnDp6j2KW<_=;W#X2veb z()l?k(FfYxSCdjLC<)vk$7DFYgry#sH?~lHr7lvAgJ&c$Oo1i^w@5mw-6h5}AP5+& z?{e9n++fMm?QwN~v4x1!rfmftw_U@x^yyr<+lr0J7uEuMGv`jW`|iT%FXpSwh$PB8 z8N4oSqGz_1#yC2baKH)OAq{}=&3^9hFIKKN?){|>Gd@pA+m46K*v{ZH#y(DzKjfQ= zfP-I8f?c3FD^_LMC@jI1!OsH~GXvQ-1hN0Ly|@4tX;mgAVe!*L2))58eJg*&LK*%k zu+_IhHxhri2c^s6bb2?$*f>eSm6+ZTF`%+$OYFjRj}}M;O#zWB2vvmr0g5lk&@9fz zV2PFaYQ(WpHqr`@i_+R`QjEJU`%tuD-OtuL>468I+K@rkklnX7nYZuj5F}?ee8^?v zx`>R@GPXEFh&AY*hIsjkRo?HvxN2Vg&XuaE2RS#uwlO!JiAK@V{t3%-xC=r*dd81t zj7VNjg`EWm#8;}%X+(Oi1IP#cBJf6J_kEFNuJ(F7TN!ykG5UnDGd?1rbX{vSH0rD;I}{6C3PCTP>v(gruJ zSLCff@+ewKjl^621NyGU`jK}v*7g4zhucNBSw@~>#A&nOBmKI(@RNy z{~<@mz8$zLA#qC`=A~oMTtuCKN8DmtZg^zD)>v1UL~Yh*+uBce{utMh2*|d$#@{m0 zm@T&8Dsr5*XC#yW8E27LgSqjvxDpm;Y3p5R#Kv>|(YVq0!gjc|v1S2pbkw6x6Q={HRv%9(SZUhw*mTsh3ZmvER z@A~}V&x}%i?1`41i%I4j6*sxQ)AHcj3js<+paxHPqQb)IJTGZ&w=A751vbUkG5{d9 z0pct7JI4ReQlaCU{iEMfai>Q!s2>t0$C3;vW-I_DO4=WS7Ro957~7Vi=M!ZYVA&7JBy%H ulI^c1kDs@SH2~e;S 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 diff --git a/packages/core/docs/commercetools/images/setup-store/menu-product-types.webp b/packages/core/docs/commercetools/images/setup-store/menu-product-types.webp deleted file mode 100644 index a6485349e110dd5a8cf69ee67ee596322818326c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6458 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 diff --git a/packages/core/docs/commercetools/images/setup-store/product-status.webp b/packages/core/docs/commercetools/images/setup-store/product-status.webp deleted file mode 100644 index e574b5c4aa820270a90a9363ac32ba5a1053b50b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23856 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�McATkxyP}@@zn8d7C zH>z=bt+s7M2vnLQ-P|9k^YTAC4QD@o|p)W5e~2bRoObiW+_h0yuE9YfMEssU4$M zEHe_oXn3^>jB*~b@9*jH-VJ4dXQfC{hoEyF6?(Ml`u}#Gfl+9FQT%Sw{XMpbEn_!` zels^s^F+zz)4-F*kH`P~P%6GhPf$|el+?z z_$KU3eIsl|9DM%qJgv*mHF-E6>{AJ?p$NFb_QLYfPtom>q4Agi00NJOG!fF2a%(PX zH??LPFWQA+%n_Irvng+dJNEBlz~fPKEV7C3m;R$9&e_b18dDmM)xt2E4s&NCVqQ~B?C9<;@ zYce8MOtz_3+PCA88FasLQF=EkU|{;lK_xV?V#N8Z8b@eMf4LHs4vz;!Qu#Kg>RJ6R zD?yCd0000r>0M;tad$F%px{LSmrDQu00Q6*k+kYxbSxSG3Md5t000000000000000 E04MmUi2wiq diff --git a/packages/core/docs/commercetools/images/setup-store/product-type-1.webp b/packages/core/docs/commercetools/images/setup-store/product-type-1.webp deleted file mode 100644 index 5a3f1cd6e43fe40b61888cd069836fe516cb3d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12850 zcmbVxbCfSlmhG=>+qP}n<}KGP+qSE2*|u@Zwsp(4ZM$CgbkCdqdS=#o>*YTu<3vP8 z#EE_Oj?7e+5*Mdt1^_g~gca2lISKLqc8{n8lnq3k3W@~GA1|IGOIBD&Ow8P7P>T#@ zVf*nTeK69@2qu$$Md7m39d~;%HR4*%@1WaX!01zt59HhRKISp*o9ja8-S7hF9q6>> z!tV3<>r3@IMWE^_?6cv$6`AG?6dL?W|84te&rJ8Q{q`+Qs19Jv)k|M z$2-Am&)T+-z+un8*XeuIYuKZ}{r8#xwQsLL;O0(buj*_7HzS2O=t*xjCQ2c&vw{3CsK2@l>FZ{=-L;?-R?x~Vg+F`8#3IbCbbf`z zu|{x?mi4T7c~sm*6$f-2lPm3%k%9c!Jxi>saFO9KP1vJjdxWcB`^|jQ*$V z2Dz1WW0yGx_X+4bsOV$=s+DHz#Vk*P&SrzPRoWKWBNs?ZX%sDfyzd;I#VQTz{N>O* zoI+qmWh-0Ze_G6ctS>6;kHH;SqUF7(J3oBc-ko^g>2}y6uAbxyAJ5HOVbmB7M5!-< zs)GlK!Nc{yAt7cP01jc!95TPzrqA-8Zsn z#P)v=q6NiazE2om;ol?qmskbHQ6Yg0G$c5Xp9=%|OFlO01Dx|Imur89s=`ac2K_72 z)hKL=(p4oH)`5&!^Ft;A0-gM2oWp;SQi>$jt};*gMrAt={|hA5g4iLYuA0Q>8v`26 zXA8xnv04AkOl-Zf--E*eA-MmoLU!(sw_LecI+RtpW^-yv5>j^~?+Wfb%|1lxc!h+Gvf)KZP3u{CzQmB7~ z{@;QPhG$L^luv_Z6a1>iGx$J*krkcmQ;c6gMj0e&s3;f8nW}@w~sX6`H)KS}`;N z|2Y)N8vgIVeAR^_S|aQ2j;U|-JwCjHx#C@|@3Ja)LqD+~ab3 z$5|OXqXYLL6^IxFYQXp>d)vs=!Fe$rx=yXuU7B&Ne8bW!PJ=!S*6v{+D*K4vUtt%b z4BEOODHhPcj}RE9jw^g*LnZ*l?2mmhN{;5uKQfJf<-66(EUph8$qr&O0+jG`o7w}g zFm3jClaYIpBF}&yino6%2eN?9=Wt|XFQO+U6!SDRe>0ox(2dJ0EA)F7);r3# zUj0_#hHshNeRoZYh)#xiQC|t?F=7`)s(jkQwQNlc>db`w z3!V2x_=T`XhPwzgmB=06(2PV}US?QbG7dOTk=#Co*|#{=3B`S%UEIu1<(J#oWk2U2 zd=ni@j&g%_q(z}tSD`|ts@Gf^QZNvym?>-0CV+;^{yn>qOOTP?d1lo`w(IL^|Ai6e z(nJ8yyZoO)L5~dWa)T+v#Q#CYh~GT*e-)Yvr@3k>jtmCu4kLNova=bG;y`4&2v;po zKwXkf68J`ItgKAh$%QNOCsJZRUd({0jIaT_^syg=d~r zsv_@&)MI0!RJ;<*#g2^6TejRcD+^NK-(btxEAG)NqA296LaZ||Ns(kRD0(ggLJylg z&re2^gjr`mw(VZL|32?{Ql3$B(NjMfAIg8fapS%m>mw@@S%hX0_}Bbxwpt(43?7or;h%cv=$_BCY9c? z|1YBZAB`=kME;`0|MrBxcU_BA%v549&*@)1Q3?Zgc9|=s^rVv|kV%A?JLr38WAvf_ ze=XqfyWqAUrFAK=yQwOCPIq4^7>CUraIA8QTM|>pOH2$V%v-6gDE^Y7V{g(8f&BMk z@D~G3k~T5v1o5m3LYB_1d}tc4;FFiQ8yNUxDJ`ZHDgpu)$?Z%I%q%y5cFWO$fU~r& z=Kpx$0I9t7Q8#!qQM*y$uwyZa=}vKpjXDO9Fx($Hh!JVX4@=$Fhdsdpe9u#S}c zOV<4JTr^%OCc0q0n=+MNTWf-wqgnr66@G#k*wQt$700MVdTldP=cy< zd+|bb%>fW?J%iZksxcvI(k7U5=k?sABdn2LE)@ZXlW{);2hgaRf3sB^N4ATnmCy@+ z;nUlBh`Jd@mGr@0RVmot#9zkK_Jf*Dt?fQy#lF%V)Ji5%UthjfxHZxg0D6&ar5N(; zJg^lDhQFAqv@}(qJ5&VOV72L(J-;3;yO2C)Ps_~YbXG|1>Q*P8NXQ18v+;Y`%emjl zPng9B63&kxEWK|JmEyqq1;U2JgyWQGFCImmO+sJm+$<|WhxkwSfGVz5%tESxmJb$? zONjr|(Hs;A1n1R-WrxKAf7^cKW(jVmEFp-QM@xbZP{v8YG&qR4hDPg8Qu;5^h7Otj znH^aV&Y&G{*&w5AnO@P_+YY(G%ZxLf>TZP5RPUn7HF*|NY5JQ~vp`$_My6meJ$=u4HS3pBp9# za4Ixp&9?(HIy@_y>kI(PG7gVVqwP`wDy?j4Ua&<*lMX@SPvJD}YZq$$IiU*H8tQ=b z*1ECvu`rg&CUW#f)k0uajKrWN)5w=&Ab(}33h^VxfTy=BsHOW;W4vI=y3XQw9UPjX z9xwD%T7ANvO}*pb*YD7nZG6PMzQT@)+t*J<4TU_s%3?zC8L7wT)l&2Nv+Ow)w6A9b&TiWF%}S;v@sl`D{&JE-_N z)JmrmhGcQ%)->JJMN6ZX2SjzpSs#zHYV0z~PLkchfkVBT>NNoW4|s+rbV-fitMIuB zaxJm)AoX*zW~n~D7B291RS?ty*4{`2sX-_tphMd9qh#Rcko6gD6Ir;Fe@v1DBs!cp z_v!gNN4vl#`ZU(cz^bXP&t|nU3iz=MKFv}q8E4K_FvSyJ<~3|I`(03HH#}qq;c!1d zYl8|{8ZWZ~R%syn)H=H-EbU#nOVLEYT)*Nv+bvrjJA~@xu$r@fuV!|}G4Y`vhPa2_ zUZ$Y5sPy|-%hkv7%irH`xwZ%b$7S-Np1@p^bp)mbnu1$frZrw<&LyKeBHQ;#Qa_Yt z?@jfdCiQ#G3%wj|eFZ@er&nul_U5QcMe2kbOHyx!(K}~srMqihUS9lWaYG~{m0?K6 zY~C~%Lkq7MV==H}xTZu#S~Iz{L*W&_nn;LJ*vBS#3&qIAEC;+S)cZi>H{`sBlr>ja z9CT&wPJ;=^Woat`@mN~5sPo|W5$M}@j3_L0p- zO$Kb)pFV%mXAMpIoJpuQk1cM1m2Ep1y<<-a`wu0374R`#mYbV4wT)!>Zl$ectn_rgoUGGrgeKN+J8&rS87s= zD$gjDUNDVaEyOokK{#u+qi^=2aQLIO@Ecg|QHACXo3Ttng#-$y z)+|i~<5rb`N+Hthnq=c`J|#)vs@M;13c1fqP@`NeG?Y%prFG;drUZ}IsvrTpF}oWm z4Q9mD&&v0rLO<37I%AT}lHrknrN+uy!D0``h8C+lt78mA|IB9KRChuRI&exr zrA~;5w0p#4yxL{_w0i`h5%1xm_w^xucW2VYD}NyaJ`DTTZB363V-&h*PGNZAu`Ji)qN|p?;+baYa_A7}P zp8C@Oz=A5{Ex`Z)Xb6_9+*RHVU$j3Uac+4V$5gn?rN+fshboc~0GxRwxNF6k;8IAh z>g+T3nbSuNs2vC&8;2f%oJ{@EcfZ?->e_c!MWrHJQ{QR$qBp45+?0TK45Nt`@kt)W zeT;5coV|I$3($@o^9yj)Rlv)-{7R3P9-Dj^;y~}mm9h3*8MVEcKj3D_C7n*!+`l1e zt`W)Qjs^jVs9wZlkayIFM$iw9B=B0Zc$YT`*a|Z#JcDw5(dPqswgH3(D|y4)(AfS8 zPm-t=NYj1k!g`q$T}8aigKco2K-#zYTm%_$$;`wQ0ppHbsIrdIgR#r0SFFhQ`bio# zhsf3Pa%h2;W?(JDNoM`rohp>_tY&iE!ykSlmUN@ePk9gy!+_)J6g{K!4jV#Ai3ffm>4RQflr^tF5w_$ z7!;@&2Z8@gez8i2Lv*$7a4?=Pd;m zm(`As_~nmfDAvZ!$u|YF;-{GpYLr2|9a~>@>3&bFCVf|c(P|4Vq9_IlODP6*NU@aV zrHfUlWcOL+Rmnn!$EU){Ax~iI05nHIAegB9ZOwoZgx3N7>E<31Y;3jl%-|%Y+tbrek9bK2;)k&!_3T-kZs?iEoOed zmZ#Iajf^pj#knc(!U2)4HL_IK8-iPAjJs?>{fR2f-9lp1a|)E}S1P_5f}2<2-Z6-w za;XQ9_uQJlTsEjDK#)4+k~Y7|pJ4#n0MH&36@x_y);Z=1`tZy$$#gc}*|R)gfL5OU zepLH=lws+_%}j&Jg^`4RjV$|cbkKYfK*4X(?xCiD#WxcZ@xT%#XyG73gcKQcX%XY( z9|W)zn84ZJS%7g|_ku!eO~o+gg&4b3$>@yDAT2%+K3~&`Cww3K5oavZq>}m>)7vT< zsOTcxf0f0%uLuAaYcI>(U%wMS&>Gthiuo;o%X-_6BfspN4790Ng1B_a&o~})oim-5 zJe{15$Kx>aDX^!6#tQAHw9%K1VqCEeC#JjNqhpmr>&P+a%&&WL97&@IUa3CW!Q!Fw zBv4`%freG{1g5kx$nz(BXV(3E3>gQ%wFeGgn=yf?pNn z$iY`Ra{Da*pim2rMU-m0rCUrYOd9DBL5fz;v!{_>`znR{>DQv>aE6JZL%P=^m#(^I zT~aYq-*_ui@W1{;G}t!k^?|ql3gamY5!#hrs&cuU8+!JePxLnEQ_owSuJdpYb|a;& z@h9eCY7Q5bz;sIhTu950AHW#iBbU?2nbOzvYR|+yJu`PE_87Ies6h|K9Bbj&OLj|^ z-ibKPc>cOZm=1i7dQ~To>4BiUVPyyqc5cC}J8`nXYwUQ4=`s5W+4Zwa?Qd$R^*?a1 z{6ANPvv=7z>Zdpu1i+KFAw{O0uyGVWdj0hFK;IF4GlJO=(KD*52S3EPHR__E5Tcs4 z`p<~87Kz0=M#r*Z2cqumq^~&zcI8-~TS1CDkw=W@xG&>6egc7ew_tM$d>fway~;#h z6eKoB*0VPAc#o@dh+BBGzA>UyMWilUi{OYJ5x21$9NKRJ1Q?u*hS=ug9M|@_XwSVW zdlan2ixDLT&dt@XQDqW?hbxuFZsi~4FVGM)3A-H_EB1A7#QKN>M>DPmMuhxYt~0>w z|8zcxh<7)eyZ;89LM`r`L%|t#HI~z2J380Rp_eA>-oQAV5+so|pJIHS!a<5*!z$!q z&(bGJ$DzbYBXuh0lTmh0QE^$Sgje6b&JX%vbN%@pcmB5J!Aj36QvZU7Nkt=8nkp@9 zdDbPCGYI<>rh6;?etND>Ku~1wHd&`nsnr#E@I}_iu)$?6reS?{pM6Y0c967(CcU*R zrg)OU+dG4Btbsd?eEFRmmA+Sd(NKgzW-^2v?Z=6d;EpOYTniQzJ6o?NVXk{w^-~nlW>W~DybXjKX7hZ0?S8mV@{%YgRW^)YSFh<5046%+uu*$S z7k_Ah-4k1{XGw2QYMyJC?~tZX*N*i`nbSJ zgFux91=Ajsj1(9N=idW|NpcW?{)`s;Jt$S-%ejMmI&FIS+2Pqh;FkZ@xYR zx}z0+ktfcSs?09=mq&eLV0?BGdnJSw*?zP-iFAY7M4liI?+Hq@`89O@;bx+)rNsS7 za#gfA=qKkmg29z4g3Ve!Bf1Fpv(-MFoy?_ku8B z7rFk9Pd}pZN7AAqQ+pcxRUzD(w#D^FsM@WkwC_C?>L3*ZQC#@*GHxLW+};N|(6Q*Z zwW#io6oNC4lQSe|1ouX%htm#965oNVS*&hwzu6kHKHmjm%f=1G zT72@<$ojrKRmWYuv1<%(jU!zM+_F{N%$`9Z3=@G~(-O3~Tb+fuxnKd&XFOVKSPi1z z1ljo+pO}fpb5_e5w5jdrU%SSYG?j}}QDl23;etLF2j7szmxjp5+x5lI?cs6`hwO9r zjl!a>@(;aAMRPY~(P+5&t@wKrRk z&-D6M*(ZTGbIt>cA9TnaHKTWCVmi@eKl|jaA+^$(xvVzY0M@_Bf9Jg23OA+CoymrV z)wGlvR7f`rMZ-IYzh(bXGjlp{BF}(Y(UyPrDjf8Yr%BH$_VW2k+;?P?-0#przXm}} zYDaKs9xd46%w}Fb?4ttm_ua6-Ufga879x05!paTX zC_4pf!|RT+H2BgOCO6R%WX#V6~O^KsOUX@oWGlgnTiK@~Ab?U7* zf}(;|*t43Eg;3U1%w(ulb^u#5Ip*=lg!0W`hbRH0Giga3ZVOt_>wAaz3Y2_)@lOgr z1R9>n_GKBL!k!pDA;$z3dfpJke zu`h4uWJAU(WZ#~F1@oe0s(Ev9rLgh?NPtO0%Y4`PRZE-?uRqSeuD*tGyJxm`XdD8= zM6_Kb<-@|-#l@p!$=Nr#gX91%+A#V1vVOC$qd;0&Ph2bz2f;U4un0Oqqe?5m~ z8ogdnTxfO?@@~1l4jpS{+Vb>o>oNuhw55z1+CE3c2{*0!lM$}1f#faw!x(gJA&^Pi zgby3c?!#Gg98@E(yRe6z6z~s5>rKWRtDwrDa}{?Ox$a;b4a#x``fmw;`>rUk#=?X{ zAGdi=z`*f)=_V-qCqqSKSyf@V7I`zaNEMwL#udhq3mxd+q`M{qH%pNudBT;i)k02blm0!BEQVP=P1NV3XwY9mCEq!b|~ED?>DJinSp?LRjFq z5wAcp7ZQHm;?ms0V;CeU^;@sPIyS2~IFBt-;(2`4dZ5-Q?hhS*)1h%ue8G4AQE&uU z9C=e-JydV}Q3(UfMB=9KdT-RG+qM#JiB24nS$jwz?Zh5Dz8>lts=vKYd2s@Ng|=`Q zXy1?!h8E#Gs?Gkg9-wr18zFVR~;!U~s#0CQW^-pU>1Cu}JPCRIg~&*IE#Z zjNuEFAIEwfXgL=SXpxkLg)ZvGsOCPjpq*{iNtk+PxjyFUabNrv8Q(H{Wh{(F+i1fn z9))Sv2a$has@XNMt}tvp!l3M|Q7Uejp(`Ui9sEJ$BtpKv zIB^2H6>0juJ-UO0Vy@ok*5oQP3@8JK{o;2Ml7b2X8HB`ZglIi0=n^kZ*xY zvlBRldAmUm2{$`dF^+~8e1BJ&g?&@>GG=3@9bdLQVwB4FB_`rUL)s+Ovqhmw5?rE& z)U?m(q^fvRHSP2tn3J zXYCwM_R2;6Jnw^qv0f!@DxF>*`<&B)#xj}X|aBt(9R;jM26bwIHEg}Lh!S%{@ z#vTeq5%5P9gR7R4fhxmm_?WrbL;qeN+BEW8rWMecM-0Qpdk$P6q1Mr_p0L+I|JrsL#Uu4tYcAy5JpM&Np03Eoe&B*(iC zdPtS!x|9ot4+mD}sv=;II6F^A{M~$#KtY~qdXhQwI5L0uOiKWo_;`X}6C(P|S66so zX02Q2wyGTv_~)70e@FA2GzFE0+D%)jUa33e3r;rYiBbU)KmC^!hIzqwO^W7p|Ffpq zLj5s-fILkV?FZQ@KQ6_iI^~;Y3~O#NP-QM!C(6^oO(u!mG9qc)_ELh4BR}4;3L}_rLz336wPQv9WcH0W7(=TrR?b! zmI%dL-k$e0yfzu^sL(64Bk$224vugWQb04&$Ro1cUrWuQSqge@)71le4bW$TXoH*R zo=RBj867-%m=0Xm3;^ZV=3lVZaj+2)X#8~cU32hSU+;HsTG!C4JCMtjO$m-kXyJWBlRLt3}_oS%1`W z_YW5QMZ2#G)4N7QXT-p1ITtrUJ2ExoAV$l2dy|fAJy(C3U7z7Bl{VT`&sp6}q23v&#r*}H^ zqO91zc3hck%4JR}-keG7WxiB}0nJE*4%*7pZjP|=%)GNr00$r~hhPvQHy3$-8cT-d zp>kdS?Z2^8Ex+=wTfdE+aBX+#Kbua!R~hXztgIO&v0ST2bD9;=>S`bm7WJ2L5dk zjzMtq1!`#XP&-K6YeeMF))9TfTH3(LHJ^`WUErjLZycYltk_nM&2^tvL10G-##tV= zCyU4382kO>CCZlV^_5({&hCY2a5H3Uw>h~3U@TeX3vo+NY z9<01o^Y+Uwre_1+5=Apo4fSz}X62ASTM=15*yxRgNN7}7kI%7&4c6;26rwk5{!lEa_ebJC12(wvzfVqSl%%s;z!oZ&v>)Y6SGARW|>JbH>K@t~L z;!>ji5S=snwN9E(x7?~Z&lF(9@<}C#KDewZVN-|t)@d-ufUqo)*R93}A|lJ~ksKD{ zm2~e53b4*iLu@D{5SKm{<*#eRL9GphDGuP_c;5c>P~iBKUzc`bknLApz?EkDY-f5* zZ@~fFU`E?My^x%vqXbw&TZ&Ze+TUjClECg(X!<21pe!Wm>>T3Q-1`pabE^;KPQbB_ z$f&^7)YgVqW>P0v_a{aH7W_!{m~VwhgT*w7-U}NBImHZ|Jc!9hZX-+|;}EZB0`d{e+Q z0%u&==&?d25Q8EH@V{WDeTy&2m!3IrqKEe#S~qO}|8MpX0Tz&UqkFCr_NXH?i7SoP z%aY!V5r!T{rc{==w24W+8253svmVuE5^eh43GH$!IIW3~zuJm_U&j!$)G1r^d*6bNDiPs?)fHd%$_d3n0U zgw|Bbzso-<-t>0gr`*~64t*!6I-#dN{e<~GeU`v<#HnzDiO1PA0;2S|GDVR)#E7LK z`cR>=gX)iU!hd!-Dy}DtOWbPn)EQsr1*&V`;FxirTm;_mY1#0;g1ecBu`G0!-O@kA zx#!sN(Yy*%iNs1cN0pNWM?SY{6s(4-GT97 zR);}ZZFT0fzCiAgZl%j^9pZ86I~4`LTCSo6OgQag5iqT%W3l zJkOD{B=4)nVA0OXM{0c1DAS4_VPz3W4kY40Y=EZ(po99)g!o%LW1d(Ed1EEqNiXnX zV0w7xbPL`%<^cxMt}p~3q$*H@D;kz~4!TiNB+2M$Clj+riEw~(A1-$F=QbJP3@WOt zAC&KMvL09Z-2MpZFPx(%Wzk`w%|DURU^ND&vGuL_y8m$ZkQ;CS$;ko!%5>n?VymbI!PGhyceO#v2XZ;fZQo2Mn|<_Hz#kp2rV>WV9f zdPvrV3&zY5)>L|K@D5(3ZV}wKBA*y=$aI?SKGBPQ?#x#I`e$va3U*=b$2+FpRD=Gv zZe770TaJJ#7;ABL4*8(saa{E4@C;C4k21Wlt5zZdt7Y7czYVri={@Hu!Q|5dGa{l@ z6~B}+*j0YKAA^%O0C4xG6ef63?D4|)84`o1%^_n*odUtnmN$zNb`>UXp00cd;x!Fp k_5~a{>wIJU7WwPNv9y9n#GD?TDeDga;56VaT?zpFA9TOH(*OVf diff --git a/packages/core/docs/commercetools/images/setup-store/product-type-2.webp b/packages/core/docs/commercetools/images/setup-store/product-type-2.webp deleted file mode 100644 index 897adf2471d98ead201c335f380a394efc7ee757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26338 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 diff --git a/packages/core/docs/commercetools/images/setup-store/server_scopes.webp b/packages/core/docs/commercetools/images/setup-store/server_scopes.webp deleted file mode 100644 index b8582d4062e56ebff72ac81943968b5b13c9c947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21222 zcmZU(Q;;q|mnB-ZZQHhO+dO64wvAJ^zOrrGwr!uP`*(ND^hDgZeA$^R7k2E(NEK-b ziCq;SAWd-*B@HDmqQ(ELnb?4HfoYOK5I_Wyr1E7-ONxn0pS8#9QJ}5tzdgO|Cwu?U zp2*MBe$syBmjz`0Ed2ZWn!81O?Nj|F{>Z=U+v*z%X#7Qdl6-;u{5||`^p$)Hc`R^@I4Kh~kg<%l)}^3;tpF`1?$_{T&rxe*0VB=@w8|at*XX01#yZnoA zH$S27{de}a@!!a6-^ber<9FX#-*Ujyuh%Q$clBrAx8Otmd7pjX@9*!|%*y@d;Cu~xeAOyrw{IF|gFa3%)Tn{FOEP*I-2|q0+HGN6yIYIBUX`?Nd*~Mc0mnSbWzsM(C!X*Psd z)YPSa-6Y!I_dS7Vje^2i{%Z%v&eH62(81QkMp){Pddo(WSR%hupKaZnk(R@xI#i;o zA9zzP0FhCq7?Bk|Ee{Kv%!jE#iXVm_cvB@T=I`9>@cG80NKzH39As8P%j=BCTLo6D zOY^&gP!)fy$GB57dpJ~F}FnD{!Z%;KAJ>7P)bhHpciRj;!^pM`(N)u zGHRg&1${Zk{+n!4dBEROWg;Q9p;|8t*O)w*yD9aKy^o_}@3@xVOIVa)xG-GB^VK-1 zcz42zWxEu5o9I8mHJO#Fn$>_3&Qf@yNOB{EsJY*ZQ58(4O@u2Q1UG9ep!`>+lz1=V z*^Sk2QWD7$g)jA8ojdNm*5tejwGd>qAGSKNgm44aU?4p9ixPj(K4@vXh9smWG9;k1BznVl)YeYUbdx z^vnv~2ahs&yNR_Rn8GTewVjnPlF-^2`t{6Qb1xl?U#agmvO3F6WbFkV&tNL$_Vi(tt}c; z>sE^o2Y@mGgtnWnMo61T&SV|$pe_DKJW-gp~9b9+JfcZc&{ zJ=aqX^#AJdpMEC!vW%~=Og0JkmagiaC)r`nneuW0T2cD1*gUUuzPh(lKrcl<+y*WI z#&|sNKhpmn22YppPtdsEK)UQomtUmX3yB1^1?1Q1ZBEO+$uFS^_=_HAck+WJXxtv+J!EM^ z#+*;w=eET;(sn7$P*m@DNuw(+pZ`abgs+}wMVGUA1*oHcbI3Xsg@j%Wk6cF+30Kl7 z+Y8=Dl76q2M#5F+@#;^nKraIS%bI*E23yb*F@p<$m2R}{0bNo%4efTKqR&>z$( z7!}Er2GTlS=^6z({@-~2#{+CJarCJurHjNelF!1nkF0D!s9F&0k&k5_nF~yQb4&eQ zRz-oBVWoDAS1d#P?Kp%(fMDsQM!`fvxzA!pHc@AGeYk8v-jP&^oRZJ|FK8K z=gq%o8Ve`M2I3eeWtIs5*yyJ3ebP8j#iMu^RvV%|r9fdSxcPNx)%5??)Br6++(oZr zdW}iFoVzZGwkRj9vfkA2uM2qX_(nB7Uf%h?%y$megSl?(pY}2Ht%4$}A)unL(p1Z7 zP0~aBk0<|2MP3)%ukyOW5rLpLl)}*^8S6qmR~JcQ19P|$QJ{(9gsNclCh;Q-0y!hj zg#Rrg3DuL634t%tl_nL&0IYY@E(L`Yw}bCir{MiRp2rv0Hz`PZ`WN{Pqy)Lqjti-* zqIS1@R8i}|_&9H5EQ81sx87IU{eJ@~1VX%yDy0^#OZtc_SE7RU)oAg(RmlxI4sk&T zs7B8uW$qt={rC5eJ9s(Ir3|zkW`zc=!97fu>Hk`pug`r&foJ~w##fz8F=8y_LzVM- zcJ%sN_i6@26IE}9zY-P}=f9J)90(>}9fyM;A7c2S%ee3O3>+A$zP5dDQ?&SBr-s1j>Z z=l{g>zYlSp?SA5E2c+l}u<39S@ZrY)Zxj139l`>EepW5ZfL=Bk?Q}9aoHX2y>#Vyf z1X;Wa5{xtLUx1OB_z9W|Cw?8R89Z<3z z4|!>N*k{$`Ggs=xaO~*0se8sk{lvc4{;n~Mrl&t{^q}Jks7T@w&Gy1m$r)47NQrTc zj1ITj|2YV`4z$q`J0at87ikUT92S;)7jUGCYmPz1G{d6pHpJ^N(G)kn$`Joo9_sT> z5gi*b1HBofIwRI*{07OjT2+!Y9tHrWK=Sqb`eUZnt=*nguPTSs>j*Mgf{PSZN2tY% z6L>5bmH)xh>$;r)XDnehMmxUXP39yKV=&+2^;Z!%ex`Iz0Aw>c=4E2PYc~4fo8CCR ze8$wt%x7JQL4{&c2U#>U*++ofK<05kuh#^&ua1GjWBwRRIeVT}4pAUJjH@0#q)Dl) zlct)FZnn4784=GjVss~QFX6W{eot9mM10U;9(fiLa8>@2>?5JeT(zBtL#&5jDZ@^v zOkLe+{;WZ7vV5b+Eu%Cs9=r`1>YbxUPd}g^*^6apWC6eYNEK z)c=xIRzcfxuPbQXd|93e(8+K~mzN5GR+AKU!WE$DO-8r9Dzr@6>>d6YZ|c0-I&9mp z=QjRI?svdrO*e8jTv_wli@wa{)VFDtB!~Lj)poGd@`I8lS?nuLLjESuu~JvPwR1$e zvy#vq>EaAVToizMiHHXa`y3E5@)|RbGj8aYe$pHR;RFLyj|5`=je_YJgm=D(fwe#2 zPS4V#0+*KjxRWXBvs(4tPw#h;I)39#~=8vmaNwMSG_jW}<$8O4Hc(MD)|> z7aHQ9{fIIQPQod4a&>}6z9*FZNzUfZj6b{5Eg>UjRy)sHSb z`aZnEEId-MAi~D2pcNv82DD$yCL|TndQC8+T&}}dFZ5@M=waRBxW5r7?2Nn=W7EWw zJSWyw)1jUvYjbw%EyCpt8mH_}GR83}oy_ zs#i1GNk2yCmOMU%(+P?x`i!59HAy?m32p?5$MS2eblJ&64*`_R)t=_uDR2(By9>P ze;C%3`aW4CpWfeTV$*;ek+&^paw2w_^Y8LktgILV@B-B$6FU)_aX=LoOKYSw-v4l@PdDZ5zByKXOOEN3pgyJ~0_1gkuap)6`q2;DKg6y9sA5NOTAGlV6F zyA|6V*cxCnv!NHL2BKi7!xZqUq z(qZ!`#R(f~NX;e8Up)`@k`DQfs+Q#cR`QL&?DtB$^^m@?xw_7elyEEQ(q#MX2T{Y{$8?;iW(7mSEqmBR*0+-gZd7 zCzX|NJW@$SBxK`(#=9CB(8G@^r-d>4d!zHZZ(5h~rf{dn0eXKh+BnNkVIXGL4B?N^+ai#1 z0|bzpdIp)LtuTc?ff60M{>*cobg@YPO;4>iE|_QsvJrJWgN;Qp!XTiU5oF{OWfD7j z-|S`w$lM?RDiXSLc9C4eAQQq;ZhqDrDG23q`O7%HJ@$cbr#{c{q!(p9HRPB&pNhHP zZcc(*R7UumD+>CzAl8>KP}+0u4$09*^uf3tzBkLvGT$hdn=bcjnJd}K2X!!?(zC<#Wh`>kC0((IC>uF%7z&*i`vSuYjUHb`F3r5KlF5Y8p~itbBTleD zC7*(z0d|3L>3KKsc`ECphE^O9!B)k!Zl?EeiLh@3EEvPk3IG&-Y+MSpBT9DYek+P= zN=MM}gy92#rk!OH@x8yv^%W}eRF1db*DO@QTZkQbb8bf{Qhq`fONoJCLf``1OzvPrpXx6Fz$9$1? z@zpzpnBSQu^LBi-i&gumRoTa{&(6j5tvZJJ44o1b`tkuCyYZj@fPKTl5(fOE0Lxqd ze0j&4P~9yM(;HgBth_@YXzRY29Vyv8%q4-~bwiMfAxhNZ(lL5A{ooFs`vkyStyHCr z0$v#16~P9ZlUnN)X@sE#!F8*z$wa=x8Y&s>`vVsPgev~4;LG@tJd8od)I&m5X%Crhf= z`j2=)o}rCHkT0>4%6Of_7Ty`wH6%mE=jTBJ3f~Y}+=|I>8KM@>oO5Iq0(|{%Oqfsx zN#LVTLNrprcB0kUox{aP0StEfydY_Si-@HLAzd%+>qY%ec~ZKT#&TH3>;2CqrU^=b zwp^P6#o_N|i&nRqhYYIDQ7=`Ut);2bZSAE0NfA|3Iwhk(+PQ@FUrqXE$KFGtJK}=t ze`JQ6!(7HrovoYEE*$PoR9#X^%@+8OT2Lw^T#qxI_AF^R`?>cC^28JALVxLYq`F63 z7cl&cHwkGWvsxmN0GbPl%%5?jf*v26#sb`V4FgXKU62%?;4+Qz4>(~p{JwNoz!dW3%sLT!5a?!JO`(cdnR`8s!rV!DIH#so+@5;`R$>q5RM|By#Lg=tY!G$Aa95j zmmwGqNjbnz1Ixrrnb%27G1v96{8R~P^=fIR&=_KdnXkVV-(~s&J`N3T!u?@xSp(xPKsSlLTu}lg<^dB9CX z{*;9_(ytfSH*Qq_3rf_;@F`%%T7$;H=a1-uU?xj%peuNR(6H+wc?0jM8=nHkYs3av z3&n}2A7Ly$23saqJkS8inFzwJwW^Mt%(zfzTW*iq6BT=_rZs6@Xg>OFZosttT8rY@ zgOLJ<%QFWNF0@Lv{JLu2qqk7Cc1~AvSFchDHolJc`xok(U3+S=zRKgv5Zlr)gBFx< z{k}UU*E@>`-7vn}%l_;2rw=)RdVdq!-6eoqo8(|xbnljVPA(jP7{U7H*_?ZLsz-NJ zEgFMtQ+~hS69{GR7B;L}bd=&K$giYiVogZ_2ujgMAfTOhdcRjdc3{It%)fzea4VvU z#goZ(milj|Sjje!jxEZat%|Hlz%@2WJhhiP z?#27{>*$&l4EJRQ^jkBMYu8})=TWb9utqJTA!BSj{Jr-!(Y;}58pf!5YGKO_?(Fc( z;TX&ee3DP-e^O|D46)q0^T(jOhq{@v(k&tIM{Mv7Gdp-;W4xhjV)G!BP=n{4n``n) zJeAha?OJvl*GM79Gp?U&fT6goq%e{IMAG0nfwc%lv1?k3UgkF-W8q0vc%Z}Q-PR8C zp|5z&1Q=q3++M5Ndhi6H9zh{K4bOXam&ti+ut0A4k~LGRvLpXE-Xu1C2a1hd{yQ8Q zihhvy*LiRd>3ot!t zlc$foREWI8&y$E=`=1w-!TF}1pid6EbIqose^8!e35lJUhvKvK8HC3qYmaZF;K#CA zlM$E+u^CkorP~rt@@9XYgYQO5Dz2U%QeG=N6d5&pD22V>0SM?t^(>qGdUV|e1nWS! zMDVfHFi|0H%r)>*M43VY!=0~?^RsPQ z^N$OL!(zuDU~Cjw!ZvRTW=o|hFBe6JkxfQPUG%3~rZK#^YvSUo#etMSKW-}ez;G?e zL!p$U(KOtF4ur`=tO^q$MI8lLIbP>5biRH9PGD4PD}=dw3VEPoP90r z1}x3wxWVS*bX~$Z0|)pn*4$0nC!?ZAmTy^g;_(j8G$c13vtV4u~7Y23Xn}Ark#kJ_i6i+Ayk#uq+;dzt+2mc4~?~mHjU&h0B>Bkbodz}li zw3JgRKCZeE+LQWQb&|&6Nyucc-ubIE4n-p6}b{YJ$ z1-ZL}+b&_@vWgcs;^gpAxIBFY-@|RBah5$~@JJc6_up>ZV-m_({IX z5XN|GdJS6oYNj><=2k&mu1bC|f7c#9h?%{o4Hf>8ti|SJ;TLC{Uc{<_H$7SM1|hA| zeS@t!34ll`;PZ4Kt1G!Q1{aQ1^(JTiSs@GSMFe$dj5YbOEF<;rvi=S#&BywX6?U_K z9u%Dk)!LAprNKX2u-GnZ&FIA0aJhMj z$Nrn7--wuiB{pNTEEn3IQj@l%;^p(HbR9M_=ofH(xmO>Y8VoGO18+{INvh%^vw4&- zeEZW>0#rGVWTGlCp_hm-cAoey1UHYl1&?TB-nY!QGky@bmCi9MhBaeJxbgW)D9~qM zRuc%HH}}a3;LUw_In8q06}SvSf7S}c!Xg&z3W{Cfban}15w%@k z9T8fj^bD=P_Uj$;^;5*q*A&K0KzWZlvW#C!At6=F#$RpgyMApKuK!a%wiv?XYi|j5 z`pVxd4?Ue4M2Z{ho^z3Y{rb3r8p0b0QNTnwpi(dtR!s}0WQNAfIWr_U1NG?+^Zfq# znIcTjg-#jl+-iyTISFKe@?9U=@!tMYDZ%$w{P*-#`&c8tnoH9S=NvpjjZ@bTFCFca zLR~BrbKyk&bI36`b7Qbto+EIjv#&tIexwZ+73}GpQyF^mq5R5hBSaO35=>-^@C4L@ zE2pta;YfjecMOvoP9f7NaOf3w|kr`D^^UyKKWa_E4wXnAk?m34^Q zpSsD`))DA;y_|yVqK8(pdNNPSph4K;rvyQxF(| z6QMg^Orx?LhGsqsz-#D9)1-3n?gpWWv+b7AB+9)YQ!N(=3`IyD#wFwDc?QPXuqrj- zYgT;CAMeZ400pNh>99W_7BiqiGOb->`?@0jwM)N8YI-0-$7ny6*e>kmhca+;Y*;-s zWUEb1LhvkDmf6}^ygDE zzF_^9WLg=r=P-(SBaDZTxx;*@f?G+Gw{-rtR5*2QDzyhkDhN_t-x9@XOn2J@#?T{g z_Puck2O#WK_L1K^k(}kylr|9~3`)eYUYB5Svt-rv*RHctev+L1;szZt92{*RM%}s6 zKkrgis{^Y-ME-Qgbr_JY!9X~c?)Sk{)1zu(aK9Zo8(5qd?4_P?e%@^5NZq34itKnk zkh8cs^PMJaEohRZm*`xHMDMXRGUD{({C14VzqS9ToCUTi%6GF3ASkpbA)KeUn)U?p zSS0}#6_9frC1=OSVh0X6h;}g|m@e3dws<1`ltDc=oxx#AOiz?d#`>O`4-N$N7h%D~ z^>4?o__&p4VTQ$3v8-AG-@xBlV0eyJl|XnMFQ$nXok-Aheo=WvPPp9%g`A-SAkOV~ zM<^Zxm4a0K5wa#jkI62@LEN7(K(OVmt<|ou6pgV#!tv@DD*FIfL$ttXdC@)}o7^N$ z34FHRF*7QIb!PjUw$T{B6w9Md(C5tI_5^54KG(E;V7{{`53bY^c-)gI@|*;B{I+AM z32Cfni`h`CHpDN^Ze1X^K5dFVQAI|>Ju9MFB|qzN~2~2CWJH^h-0Az zLd6kTiKhCljEx*e$PGU#5lhAX6#6Qk;~tSOj!ZJAiTnyHOMx7Q;Nu;*LTe)z1qs)98B;;1l-(eEDfjgnZVzK;m-G zR6(3<10x``CR^_9hJCI`IoYoQ1_nt1bHuPO#yn)#l?A>&LQkQg=1o_wSlDwVZSU$%OB@+U`ag(vy4PFmDDMKcO?3VAnZU{f`2Xe9CB z9n2C78~6#+HSc&N7(0@!7*M5jB8DGnIzv0A>;~N3!cz)VC~@rUj@uSCys%Lp9A~Bh zh_y%)o_Vi4D_0UsBN8gr5{`KBU?p2^_``(ya>Xqj@*sbm+sDM`g;$Ez-GUO?dkRH= zbHvzUfBs1^_>70kjdaDD}b#1wXpRQ$5m(e)@bEGa$VJZypWl>@;x#fPANB zO^$0SJNw4cB+D&pIkef8WRPj@@CoEVprc1g50pYQ6y;+C+Cf<-k-G`CQcqQg?e5rk zTZz54&J^|aIVQF#%qJ(bzJkE#%5**MhqT-Zed+?$SFS@)K%K2%BodXA5d3C(%5V$R z-$Z_~I#XxPPOb)q1gS+aTe)+N%kEXDTV!Go&N497@S{#j#Tz1Z$bA<^z}KBb_Y`dU z=a4U2)L07--+|z)5aXz~M!d1d}g8EoVd z6dfBBuvEU)hNJve7sOqd>M3m!xB(S$alPS2U%kM_+H5~&EvF7Npkd7BCFCP9^Wcw1 zqi7uPeWITNj@))hE{q{NS7|s8nXsyP<}KWyfNGdB*3ANFu|YAZR%LVnH_m|QS&VT3 zmZbAGtddxzoI5F#kNcQQTKp#kzf~cV;0}dHI`qXxUWvHvV2E03%156|LsrO5uh$B?Cff6@GCHh2nU0b$XZp>|t|n#yte zgU!xb=M-BBC>r>z`l(}XuS;y|#V>>7;?TLjj2BvD2>%{-zg!o{+SI898E!E~)51=%@!)ly73cxtsb!UimCVohtr(9iSlIL4pQ-Ic;3|-o1np<2#SVl8 zF|z2cMvm4vmS#_E88+{&bLT4AA5u}!q(1C+k6O{CjeDay7kSAA0~a9Tp}Hor>iGA+(Lg;r_KsL7-pYfI%0^0!v9@oP-G6ZKVG9W`N}y&RvtV2!9vq9w)_{i4#%<7J;tiWL1%KtRP~4d< zm?#`WA&RSHD=%UfP^2xv0atvFU<-zz7q1Y&<(TxbQ2Enbn(%Krp|`A{Rs? zZ6*R=p-KvZD{elufP{2e;l{56W!`&5D%P!1JGxLubPm-+Lw8g5g(|=MWQ(P9a*cn! zEgJ1s_H80cAoP~|HEx2xx@=*d3!`it69fNB$_ziB=RsLD!cZ(}R_WzIQ``L;@ZGb= z3EK}8f4%%bo%f*L)tv;wdtr#TxHRvT%+_|TIMQf+`5mPH{ZrzzLH&mDkDw+n>Cv@X z*rfO%fYijZ6(GZyTAbTjyG-+3!u~K6^Xmdg5ye41rlv zB?b<@zW=U?I1K?rQ2NvBi6In-B5F{v>-RzrvOhNfDn|>(0B(k9cM>x`Q2ys3KUrEkU=dSpMkP9d{I#gaor*Twgj5vf{LC0A+{<(@)cN zjrVuR>G7S*tm$o22y`Z@L$wra21%E^?c>j7{-N4|B{?^nollCBHkv?8c%2^eENI^1Ecac}8^Xi-XF>O~-xo9@u z*Le|0t#y0o(v13(bfUFz`>EX0LH@`G?jy!l+~Qu<^ZkiAgUd*smfiRFUSPe2#2#o^ z;4ZnlFb6deSc^xqzCkH1iBJw5nK2~|Gc3+vW-7SH9@BUU)O@olbhFz4CpgeZ&@!Wb?^0?nAo9ddP)kTj8SHj^2&5#!q zti#o^y;O0Y(`d`A(awn6CJ+neQ4lQ;H|rR|kkCr3PwvbM$898GIb#c_s0?iQCMX|B zFc#ed4OGZp-$*Brnx?oL?*q1!v8Ia&9FFiRxzS!)2)6FK2Fp(6=7lN zkMrzVNX}sz^o{;mj<194jIF9+ld%saj{5%4J&WMfoKr0AP z5bnjY!kau{oQ4$%DuLF-m9sr?>RCCcaC=~U}V)i6>BPHewNln`Wsa#sS+Pdkh8r>;W(PX;s`cgQx{jlsK&5LqyDcU=WV6X)6Bz3fH zv!g$7rJppxwUNaJx006m+(gSKJ6ln! zA)qk-x(W?r+SgxoNn1iT3izs|id#wgl06T|_;bw@(XCST@K_cjv8~Mb{O7v_EVt)Z z?EN{aFwlyV&B>#m1ou>hWRQrjU|-j?MMe>&h9ztPIc9uO8vW+Bq+BL%hoL*kAU^zv z$fXcGZ+r#NHzcK04b6GoN5*U?qrJ{KAr#)Qdl`C*R@vC znLCmzL(Y;SHW1f%J=W89o0zeHk1*+A++5`-)>y| zg<0oV&e=P+e&$6h+9ho+PLO$F{rz@IuSMyJ);&l9!8anVwKqZ?C24hHYa3Q7-HIJb zOXe}b&E@7Ha-0 z3!<3k_d>t|WueQDBraHiR7@g>jq8F+a}LSFR38D@=ZHUPw8x>xnG|E_>l{&EJ+jQJ zB3#GSS)~eJrzk?GC^grdPT#N%jKP?FLWez{eUJ9Xf`_O zh&TlV!kVVzBio48Ee}HhuH%-`IyEJTCX3cXB>Kw6DfF^I0u7^-Yy0XhtEn5(~4 zpj{MJF%xi9VPt`16<8wPH$%aqmrU?9xrN!ad4(zt0cNR!?BWAN_E(i6JsphIX@a}j z?zUOzZ`2G0C>XK9t}iL72SQDgS7!?)nO_|9wuU}u4i4l|6{2E3Sx~l#U$L(y;_m2j z;7S<2*S#7QE?3o@YrnJ<)b`q4sZo;gI)z|-ii7O|AT;8-FJOE+8|7fn+%oi%EUs0k z8VjCW>o-ahjur9r+&?^bSGPqz!Fim<7SfuuUQY!CsV09~;cO`Dmc~lLRs+1xb^A<5 z-QV@VbyOfKOhiRs<>);*XX~QFvH#3QtnvzY-Im;{+_OmQ$ii}ze8l-+mL|B#7T?!W z4*FLGLEgCsajbI+UY~0QHrO(lO5c6x#hhd8K$Rk%vu5YXZ4*kC4)VIO%5N|M)9Sxc$M0-X=cM2n`6OR#ydTY}FFKa7< zb&5vF1tM-oLEwPyE^1^?$O1i9_gou5E!}gl{afB>f&x<~T~-vHN_?}d7s5euo2Iej z`1@$WE!pmal3Si+G_?(Jp9E=|n~D6aF{IQiB9D#D4%e7e8d0&aO-?ArsJxT@x1B=R z5;=k$*tIZhtugBIFC78<`x!@7KX($R(b|9ZXTLS*c%qzD|Jn1nX1KvC!^8jz7>5EV z*n!&BJ`lmehj3{oHZlcx_)rc-g@IiYa(S)c{6(~)ei@<3Z$`b+Vm-~@m_5E_eQ*yZ zJBnt3EfhfBXX5!K>CS6~(S;*mgJNfnk0~UhvqmVJ9S;6>Xe$CNLqkT$HpQyRIM7SvtLv`C?yiBLNCc8dSu^Z>|6f*cYSj(s~^ zocYLrR62qirG%b&vR2pd33N!#`lsby00uIR>#YeR+DRC8n&_k30o^nw@s0b%0>30r;-$T!Ae`rzV;GE^J;syj2B2 zES(@EsNs%F+&qM+)K+}^$RkI4_;e+4qT&!W?m}WBZ?ys;?JB(AT3@Hd;5_IP5l zmTo8cX?owg_DF<5MicfQq~G0p#)whi+tUND_@brEm+k>zbBon%;6)uYE;-c(~dn6>*4u2l5yr((D5Gf2F|f|nVHM#xfgx8I}46HXx2kWN2R_k&EdYbFRlN6 z^Nz&H9_&^m?MGG`!u$ob{fH4L2Drkg5tz@|zbzf{N3GAb%V-4Gg);YfwLZZNSojdd z^dXh_s*h+o%E^!4d1}A4m6{f9m42Pz7YK@h7)VU~I{j4h(v&LX(llgLvH;x8`f29v zsNz3`Ms^@4xky*~lL_@uyXHWi@*ln_u7hS6)JcEgavSFf7|yh?+ngn?m~v{I z*o=Ie-@CII6NRU6ixuRp-_H#m1c%))V{u;QX?zJDaS&M&a+BZR!WG1n0wrfI`>=3` zy~Mbf>c?Kc_se;UYzc3QgA(_GNOG_k=m|)bUOtN@Lu%|2BOg^1wX?Xf;nqt&&}xp3 zu`eoP=wLR+l`5HoS+P(33f#b+f)gR{Dt*suaJ@}R4kMGy=b~}rF+ZTGHkXdTs&Dk@ zd=f%c1DG1?-o8y}$y_{DuIWgrGTrlr{(7Mu>rq+U}rb3*h{VNIZWi9grmS{b`R430;GUp_~%Zhf2Drn6x;ixq(tkfg)Ip zvk}&UvY@ZosUo9uJftQAA|6u`GPgJXMbQH7w!UH?dLAQNfdoW)67_iGMx_MBz#|w@ zHu9l{0Ns>;Q>GTRir9U);$Z>j^&C+iSo&eS2CWVN!UL6f1O`<>nk*vA&^$^F@6iS1 z4247oxn#&V@xXvJa!0T_oq7@Fxc;E?i?8HNt#F2g#S?MoTGSSS&Wb1#1;srkn^|Aa zDlqZzP5*#cDNQ=jqP2wRktD>`+`AcFX!NOy2>qM96~Qi2@DCQWo(vo0bovU-R5u^q zD@KjC>>Z*jZuHNN6*r7A;1X{LWx?N3(vlqcQ z)s7Dy@=4m?`b^Do5|Reu%BbdJwed^)AS@? zL(!cY#Ft1Hx8HzHTN2=Oc=oL%x|H%IP&L*Nca zZ6*Hug&;+7IG#kj*{X+3MZ_bD6|87iNVCfxXBp&g_4L6IsPoC6d+c-7%NM{*+C6Jw z+gVU2Fb15Z*4ST@1{WD>*L8D515EV$3My##9;e-QVIoK!Vmuzn7DzlT*Pq8TEs%&s zrLW^Qi!$wLncFes#Ds1Hp`84u7S3u>kmY9XHZtEIX9dRasxaZ1hp*7D;z9wo6cPpr zc?eOvGk)^ph#F<`huya(s-VN}A1jb%W$q%CqGvDrw5}*}72QKbGP5jSQusXL)GYq@ zdv!D#lZ^vMRwLavK0y)5f$J8~e+C&XhNZx$5WTXX)axGxl@UMO@H7us=qovuN)shz zz>E#hZBR(#02~7-mLESisc4tH{8GZ@9ZniMHtS(x+E<>4?g$$QinVbdLL7|aJDd%P zo0@u+!BGh{N||b%@4XL3gX;bb1!BkZDh2K|hz5EWafVf)P7H`11F(nwr+~w9Xza~M zLk^E#g(9Ec$SFIT4F`|%Y)%BPvNNyQPb)XBa>Z>avRpuZ;D>2o|0k&UNn%i%*pe3o zAvZ?XZxO88G9yi_PV8|2ms&ZnuEc%Rl6%bG!h* zi8b-ONF%};AX!1Fdg>6_4ibSv3!&?DzWOs45m5)&n9rLLIZvKKcPmUr`brf)b;|83 zZ@7BDm!@Ew+;W#%k~i(PB;+q*^gA72Rt8z$%o)Ot{!r5<>AEw1?aBzV7~<38xqOJ z(7qbfy;mpUULiAei71Bmq@`o*kgE!T=!`#&8q6sw&qiiYj?tp>OS++S7Z4 zo~cTY_4mTdDu0ITVE7iMwDBUkhjn4f_BV8x@z$0>`vV$(aM!6(0wu@C2$cyDJ*SQ1k9L=#S0>ZMLx{HT_HzDs%xY8DNDhcx$o5fd*B zebyB+M~s`mn>RP_i%psBV@SSX?FJRMqnxJTy}bsg4~dw3zj@)X`t5A*AB{O~w;D^4 zT%(4hW zi_9(*j7CcP{@Wmx#{)-)ND;6HnI?P$E?jd27*IQwN%Y^kfe=L@s-h&B)R zLiBhE`sGO8V=KZii)?@_Id4VyhJ4@zs?lbu8%bis0wk4Mud6x@z9~g4cY^Q*fR#PCf(q);{X;_Oy3o@MTDTbr1_iB_ zy#@h%E4sLukYJBe?#w=NZ|_Lo_wg4)myooTJ1mB`DNYvEBi8bH%Rn*xzQr@OO@TvW zCmB*@2Inl^oPXGvGcCDART{*3dm;c39<5Lu`gbDpW$Y9H=0sP^U9jZ2_F0o zUa?=PSpV`|meSS{B4z~ShVV7~uIA%2f_Kp^XJB6*xIxNhV)w@hgidd9^TU*3c}cWS zHs}9OK1b$K`fMr{X5i+3G&L&5C6E}8zOPl95w-dJsp}WZe>>vm0o#ChzJ#PJl+9?M zwh-t5$UJU)Xc{+tdQd=$nVvUsO@|%J>adM*SiqJw6pnQqG8d@7W{<9m7BZCRg?5Y9 zWPYFGugks-1=nD^v&LoKG&VOjB)qFLKp2vucLdmoEOj3l|EN{IN*n}&cu_FICqnlE z0xr#J#<#+6dqDBq`NcvjV;?gqJ4jndj6)n;4@c~kXv=xEQiyXyuK8K6@;4}VO>?BE{ZubRn0WVIziyc&x?49OHMKxFPszB>RlFRlpYE( zZ48sG?j_fiDgZk(aM7(IYiY_b7Gt1O|2HX&p4xZBU4A39@zEPswS zXnKDuU)t_$0-IM+qba&0mPF0#$PK`c^>Yfr-a7w{;z|8tL~COBf}BJ|CoaP4lZf+^Vu(4k2#6Ay1CK<}mi>}To{trmFx zOn>$1ki|HF)cHzUQ<3?44pr3^T`%n=9-dY{Sn)Y~h{HmQ*anKMy-Il#1vE~)p+x_~ zis01hZP>gQk{`e^5<7W|;XU!m85qQsq7MH2Wc7JHY9xAq$I3!~VxWuKnw%OxQum+r za?PXc&FlCmrVS${7Ov;BH(@_hZLL305GWTwF0Xdk!bxOzsY~p(*8FSu9q&zO!tSzr zjuNF{$)*pDF89c82-f&SZ?ETZ=Cx3FHM>z)!lD;VRrpVNHRj^TJhagaBnn7{3FZw? z#R&B163A_b;}OLCI}n1$ns6^qYoLViBC)3T1cpcc!aZU}x7<=)ZI!`!PomO-Cpa%$ z3)b>yYC3}h0P{5;>02!X!`-}t&}Jc-=YuZ{Gm>oP6IU|_)RiB#L9~tG%p_!6KnTbd z&emX;$6+sIMl`BX4&FYQX3s<=(aug{u3wsFV1!AWtg&5lN=h+vkeYJh2I|5e4c>9q zfIQkmsV)pp)Sz4T5h=ah<@3x5*@*DgHSW47c)C^ASsgc$g4i3|0fATJ3qJXq7GV|9 zTX4+htzWuFVG!YqDZ{P^dk~0p06Q_aU+itR2Q^YvCE7_g6on&u?P78 zzY$k%Uf!kSda9db4o(Z9IGrN0R?nrAH6=M;UoZIt-#~C!NeMCnvrv^g;fQcQ-OsdeTJh<~ zbqG&Ydb%P{W))A3%5(&Mq_Zu6E%G;;sMyhzIzeBSul-5jH^p&s9z4UL1poYp;@2sv zDblJTOL*(gxYhmkB6!10S1oCt42(p0k@yZJ@MwkqX*>@7C@6B2?larMxeDiZ?E8PG z%`Kb+Eenu|Z(QFA2DTFy`=bR)JmbYNRT!thcZ35kVUTvrcDvY!%q3VQ4{1IfP(my8 zEtdDf-J;gp3<#!$*_giNXw-0EGC=QPA8wp_Z5eHjvUZp-XQ&1hGXdQgicLoTT zpXZ!CMik9Qu9eWk#3pk{V_q6X6e6kwh^M1T{R-U`|rG0l(HCzvV75mgt3G5)ahlEw{R zEym{V5J%He#~(6j$R3-m#Cfvt?Nm5^ai~+x0Bnd^bREl%OE$!OMM!*S4>6)vTcM`j zX(LD2K#@*azfj8nsl%&qS#7F*VtDKbS{v&|YL0r4Jz^w@4N2)^&&t8g7z<89BJdtM zg{093CHpg&r%z%Rmf!vSSSJLm{)Wi8`VGa7HE6;s&>mEhF|tRn@T8yU`~pNi(oA5) z+Cnm0A+`__v8-FmL&BHO2m8LT8B%oT5`^`jroGh6@);!yF8HKCO4|FM^~5`lj%gXBBcF|y32H6vspSH=mc_X>(? zzsSB_Ggs;p1If4oM1-p3Zr|dXhWY}*H42Y-I`Naq`6%Tj<{)f#r}A9;fPkNC0;-Q- zbMUGg2GmUG@w#EgrhPIuixCaj5Gj5_r_Xc2-81Er)Tbq%amYf%u&Jh3?RHdbh$twC zC!JcsuR4xGFITW9toE?qb|S(Z4aGw0Kn**Nbbc*bbGfSxX0r-h2j2odlzEPk1&pK9 zE(V9US7IiS>z{Us(NwBK(85C+W%KW_Vwks-O#Fj`P&MpcN$_5qagZ4wBVl8LiVZi|w;fN#gGav~xpqnVUmc*73D27gq)jS&&=p{eS}(t+6U zWneM21n4Kd+PQKuZHb1KNl+P=Fe;~riE)tHY*cYtRSbq7!YNvWB6jYvMKl)zR4<7< zCC!z3)E@0qBn3Jm?N}N2kxsmXW{IsDBXCoaI+v%Hz#Rb#=0O9<(=>ft-QqYAZ zg?VXHe8K_?6j13^8CQ5NHZ2&f1YLC>atrfRlm)h6+!sT4d%ls~Js5fd>2bbrue$wg zVrJUkYo(SvXK#hTRix9~1K6HNIk*=pfm!6(|q}7u`)Qi zIVgK%kFfcu6ZGY@TLTffpI3n&W8*m$v3wD0r)q=`3OZzY6pL!_LbK7%0S!f-4v++WRQLDz@VPwn<3J{CjyaZv|M6gb#6 zze;{ixk*@E!@yY**Jnt4@hpl38L+HM`6buDYDRbzdM?a!%0*l3J^oDM9^T7zgLT45 zD#^eSv)BpDo&)b<4mIJ- zAsUMKGh1ZNGBWvWuZ&+&^FxP|9|5G)R3_g6DYFlH?e|M1i?5pWpX{TEEgjg3*O#jXK?Jw|X zm`*>n-14k=z8Hr)DHX!h+ai$Q>LrEp?1!HI!KU`qj60~+tOFfK&K&AKsr*b^io)~X zC_-Or^H+`gLgitd+6PMG-GiB)8GP_g`L$i+*<%j*Wv0AeK{|5JCVs*!mo!xqTdH^p z2ePQ4pA)9z?}aTx5=@^k=mvG7_o;YFWr6|HsRyelI8^7J5PC^sRftbo&~>GS0+aFMoLd0 zyP{BY$>L4M8RY0-;nT!k0F)2RF(oFjb*_CJ%GVO^We7w2ofbl>j$ZE|{IHE1lb9~v zwTT6M)RcbY$0QS_-5RUkn41*_A^Pz8^0wN~Q@Jx5#lRxm9->;B(K(?2Y{gv#QMeT+^ElQK zoBePE70}4U?;_ckm{|)9nUC+s_ytU0JB$MWNXE86kNmrUXU}f)ww?-vd@Zp^wNjy- zhMlPzU0y_U-Ksuon884K4CaUzsuZmKUahzyDNzp%2n6}J#dgw@%H9RIuVl+> z#(T|nejo^IUWX?5-sBFAb|)dzmmfx@1{WsY46#Ea3Z_1p=66;c<5MlF{%0|UFp99Y zio13o@s60}{Uav{+d{?n`K5wzOMEOsu6A#LsMZD*qndd3(WlSkXPLy?uk_J$rgtsOP<9&R0D| z0v=YaY3>=Mj&PbgYXXKa*-b@hABt!0368Y#v8rVD{oyB8Ox8t&MtFexS`X#(4Kh)$ zzW@guJRQhMGk;PR(!S!y!iF9SsV6&R;Vy_PIm|GAey zT?udYwkvzfT*@I0ZlW}1;S&Pk8bR56MdDyV9kEcy4|qOQvo3x?za7u3V7%n_aoTC)18`TP@RI|+ru+s?aG&))tXlbo4Z z`mKcg?k>@5*%ZYP2gS2;%YXsW7z8|GLCw9mt@_&lWjCrFX$u=oISog!6m0itb$fx^o#&vls`&hC5dRIGxK(Es!-Cp$KGjwz~aPCt8ET_%Mth0_GWRFE8 z3Q$^5rtQIsv>if|q!3T1(eeS@{Rfm6Sy}Y@C{^!jew5JzIaUDut~m$fz}r;t&H!(^ z1pnBb)-XF0l7c4}_3Yqv+JDhZ=qu5Ypbb9R*ZR9Q$xG{WyhMdH(-UH&axWUN&0#a= zzbYv%_>f0HTs?UB`nB5-*dqWD$vR-ISjcAU{geoQ*m&vItq#pjbtXsKF?vMuXY`w_ n4^!LBpFE`VDD5ue%SEXhDMuIaQZpncWstnusWF@Y000005RI_d diff --git a/packages/core/docs/commercetools/images/setup-store/shipping-methods.webp b/packages/core/docs/commercetools/images/setup-store/shipping-methods.webp deleted file mode 100644 index a3f45015da56126743d6a011e1dc0c12e1365ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8580 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 diff --git a/packages/core/docs/commercetools/images/setup-store/taxes.webp b/packages/core/docs/commercetools/images/setup-store/taxes.webp deleted file mode 100644 index ecf3d2aa2c134f310d056fea3ebf622d55a4d683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7802 zcmZ{IRa6{6ll9=P!GgQHy95FZ7Tnz}IKkZs9^BoX;5N9s1$UPLg4=Aq-G9$M{r%E? z?y1vVx2x(tTved7vucJhW*$t{^vJ0|BA$Jk9Vyj zu@>-L?=0j5qH>Ma*|^~oAnHPUdm2a6z&O}oIpvf<0BhG|%1-itmm9=6#gHGTlvB4C$m&82B~!TA6FGKk3UgtHo1>u;pPgtJb$@2ME_D2N+W%;S zD^%tal4k#LC~$0CrFa{w>H;4)-UivBuNS@iPT_xK>N+&V5UY}d^^Bg{Q~0$- zIi{E`PL}L%oYLDDZtFnaml}|h-tt8fX4JPKb*BH{9>9-w*Jf-j%1Jm8$v&m%Q#P}# zFYzywbp59)HBF(D2B!_J=~9JQRVYirR4I^r4r+WTO2E)NIyObV6-$Tv2l;BOej4Nm zIg*OqD$(}@N?t8Ucb1^Wn16>*hN)8-W{b9?LhglnfW5?3<(ypbf`D)omIwIlL75_% zev@z8t`>hsWk9yuKyvsg}9uZ9j;{Ld^iva9$?)MwVq= z?%;Jw%&_9nQ+{)u*-zyVsl}_&Bx8T+1fy=hRLmd%IUR`FFFKJrD)-}t0sdv=8Wfb!(~)mb!NMFHZ#J%*)7Q;=*)6M~{gkp_{}n@9r!26YK6YG5#ig5154o zzHjm9aFFsPE-9QWG9BStxph!!m1&^7P7S}2wy`8j&PTJbU$LvkO4$8uL0GDMb=>Jw z^5JVje6>|N_(z@^^x;3AQ(@bsH0fNHRY>A(d5F) zMu>)8tQ6A%{SNO%9R3g&X+?s2xntrvs+FP4_ z8=Uq`^~qA5<^TCKNduLt--Ma#qTT~vR65!+tx;7v6H@$-m}OuSim89&PloccOIg4D z;!G2|2+K&7apKElAfdtG-he={J0A7nreoIm%vasB7zPhYVFL?NYkVcmf1;wueRFqp znndxrNU#{M?;mK6t8iElNz1xrjDE3I z@*yW3t}Z=E;MtfZ)GxOv6YOBkhgjg3M>y7CN;nI*Nt}=zj$5{{*qB zCk?IDw(9b}I|qLOK4yY+3jjp^BL9DCspTh(M|?%}QeYGQQQo)PTgmR}cosuS^iqWI zA7CfqU;qAhO;}Pi>HnWz{=2?T9Pk0b^5Y6JJzlXm;V6R-06G%{AdzN&c`f@Ds`R42 zu7Ywk;}*Zk*yAT%EPF_i+K4<&_ItSCRkxv9Nb z8eiPzrND{;q20;A%J{E1A3~pM<|`m1!S3$?2H(zj{9VU_f&<>=vJDp_9)wZU=dgk} zz_WU|W1kF!ux0@c0W(1xmq(JpE=J$o$65Y$coy{puj{gJh|d@2y-W}V%99TFjN#Wc%#6<2PPP~8Tfgdh)P44i!)cGZyzgcnI%l}l9DI%duNpqhzF6dO5_jr=RyGFnZT~XiytfvX9R&+B1j;q;T}D zVr5=x&^=N*^L@TlP_z(`>I~pvjbxKh(&%l=%C=#e8L(bFu(dOB*PiWq)$Oeq+U3(p z@lbKRR=AtJNh@bq76$+T(0#~w6-Ch}q=xx1)2U-~1d?4QJAQYl-zVSqYSk@n5EzF$ zU}H%VZx0*VA4zb0YNj%H7k}{*Oywl!v^Q`!IV`l<;5QStnx4tdvgX zn->iBK+`vSo>E=mhITz>l+1Gm9;VO7c%TErD}iM+x2zUi<<|J2^0@GI+FA6?($BtQ z-QAe`HmZ0LQkpw~tM0#7#6@gu80C%Io=E#Voh;-0*6Y^ov#X_Z6toIs=%ko*AoB+n zraAW`Sv}KufdIf-cFtRDav!Yrv1#X$jWo1Mg6i@me@YFdL4E6Q}AzTE@={WWuhnC18$OR(uy}g03DPn?>60eKIBp0D$@Cme$Dl zcIVS-4hMt_<5h;{RKga}EeOeWRl!XME5JWLuH;J6yLLfpQ#6!J=&_4T?1%TN>U>A z1WPqX^sbRU1Nn>rOwEIk)3yC8Pkkcp4dNoO>L}`S28G0nl7p2Gqwzf;cQV_`d zB?xzdr530@A8EN?=Cx6u42i@dOewZ z0?PWX#gdhzq<6#g!RK{X>@k&laIwy_NtU}Us=#I`tWATPn&ZPpH1rfh(HKAewcw9U zL}=tBo}z!!SP@~6vNJen(ToIGyqm@$BX-xMQ0u|;_37D?fSgEOI7|gk-of?{OKB6R z;%u~hWC-o2#`9mDLbFedPEs(wsqbxcZSvF;Y)|JJF``1HVS$-nM^K&qtgAp(66wSO zR;y&)$>bsWNp=MhJwugp)8QHWQ8dHx@)6hiJn57ZgP)#A59N#2cTb;8yr_>`iLN;u z^3||q%mu*T$#`t2>&jp~$8}=NZn%~`pcuWB-u)$$bvbG#Y^a4uzpVd#f*UL)0{}?R zhwKkhd?swmECB)0!(J_sft;#RJI6aVB^Y9aGIpl|0S z=#c*_>D+{_fSnAB^p- zm?1F65|{M9(HH`FE_s13tV5uh!7(fa^jIOSLgekl@O86Sn!t-0QvRlr9~@i?!{Ots zLG%|K5#7!L%_!-g$@h0S4E7P@CdKiqRhiN~lr9&PLLT&1N0|i$z^=_M9gI>|tcA!) zD@cyvbL42~A+h-~{Z?8rU88#Eb)4mgLGY4Jm&~ZY#zSr8qN^F%zB}ZNqx@PWHL^O4 z`e6WiN70YfPL5=^-0B)>vuLmzvaVKn>)j|tS`&Z> z`BXajnb03)&k;?DDC3j1&O6xL_ZK`J3723TC95=hdYUH(cP}*#OQ2?u=El2X{2`Uk zsrn~>QVubnG4{T*!fH*%b>qds=TN*BQ+En8chAYj<*vQfhY}>{JeNud)9_LzN05%6 zK9aM~cE6K6yXP>3f9^3LI$TS?g1hmhL={yUl;8SwG~JcL;_$J0|73Y(3YeFtdd5lm z)a9a^AYy);VX>9H%^*Vtq(TZDYd;3(=FdSRwhOUlW~l(_@qSIx26+4(t=%}R#OS^I zwZ^8T-{j(Ykn#D_$wS#kCw~bp-mnfE<|S=d8}&*PD~|k04)f92*X;b$BHa)=s^Ptm zRrXi_GrRaDQ{Z9O^ge#pl~~HzN6{P3X<1T0393T0t=k`b58H$9l|J?7H;LG{+Vv54 zL~Z^$1dPOv1mYV$>)$C@>6N-OAWu>CF`@o`0p4_yC{2RFrprxmM*gha)zZ}Bs2{A; zyjF%JvHVGM4e^cL!P{ZZBs@CBED7hg)_$DRM-tzw?*}Ry1jTv?I}j;K%l$IDT@BC< zuY)TcK&2#-56K(W<*DK!SKvd^;Yfw6U`k>+Z}%8sJJoZvPR+Te3I@k7fy!qqc&q$L z2TRWfD$di;*`PNJ){G9(mxZrFFlULR)L-nrFXo_~3*(^rwZgfcT80an19)cUsrt%s z!%}iaB%#^&L*NTdJ+_1z;*LBhbj}_!(XQA0$Oms*`>vdB22oy9P>kkDQ3w{T2u zlytyo)nXrOz(FIvl4NetGTewATc-4P*bF8fmY>G$+sZy&Jf1n7OY}-LBA)ZtBYUoT zik=daC9xr57P>W_b1JYWehD5WGLxT=ofm3u@m^b1CNcLV{CxD@}US z;Sl(2*&icP7$3%+z&AB-=19Ev(zVY=C#(56koJ9Wt&&UuPOx!9+?@F7b_mO9Pyb1N z0!wlFN!W6a9>wMingX$Ba?`}ho`X1fuDVk&okEfJc{6$yLGbX zvJn`%=;$yi5Fh3eMyCAz39iU3M+;A-sj@zM-D=2{uHUgG`UHb~=gIQcI-tb{7kht0 zM}Up%fglX6BsI8rP&$j@V}9AsxbaAXE5uu6pSRSByOOY z@MuB(lwv%e=<}(~5*B`f>)tT=!H~*khrL!pe|ItN<<~fKZM8kj_mkOgsI=vv7l-zM zneK#5_V7me+PPE>u}oY(r4#ApM^W#;r!HPKT|lt74U+zE0JSK7K~#Oc(0W$J)iot1 zW&!kYBZo(y!>#Z6HLZr1cRpqU z+u)*#CrB|6LdF<@rC?~xk;RdZ zbb&;}+jYq%NGH#HrvC;91L1oM%ws~?mr)+}RMzIydZ+Y7$~es!|F9WSG)#*!IlMGe zGwCNDP+;a5fX$Gyv#(QB%Npubj(xN4MB}@OJp5xHBiMI)AK9>APX)cU&k7jT44M`Z zsl-|5-->cmfzuh zvWF9cYtmdr#63Co>+OVB$VZ{a_Y|hFZ6@0i9uTefEJh};mbUO0;-{~K;G3!yo?Z(S z+sS`g0DH?h6wV$Q1(qVr{3r@vO)oyvAhG*pdhpe6lNeR0{&7+lG?zzghkj@URBzHU z`@)vo1hTOMbNc;R<`KW#-G0ihtxjXlXBJ6{SVPCw%Ku#G-MtWz1M~Mp1gaG}H5)1G*d0PR zw&6*TwJu3LJLT*9BC;j4=6T%#4WVl4*f2s=bnAyRv%S6mQ3g8sZLrh9m%l30yVGCT z1%(7y!~*HKe`3M6i;N9~#CiBgu|>q3&)sv`tX=zRn%&*2gX@ZREkjwyeP7ly-Ie0< z6npJEz2Dg7M`g(;B^;!h3*Swa_U40wQ9Bj-NND?6q|z4eM1S<}eT6Zd-~`#M z&Rk)Ei@$W3QyI33+X-9Wh&afwD0a?Rr>1tpVRZLq+7|pgirQe1de5m+g+W|XAspj5 zgH-PrUwW^4nBeJX!;5p}5(Gcdge0YhW5$q5&%~Q9(j8avt+>ZS)|`L{x;YPB-XGB| zWIw6X&}t)(v;+%^JeYP0`*=q@v@xj1Hpr!#HSVs%V9y^%id!ig>bVu@NhmK7uk0o7 z;@mh9{O3Xfz1-(|W~b4XS3lTSFjhc%4;%UO$~>$^IrhO z8l7+uRGPPo-r^GO=YPHl+L5m3K~f`K4n!~Up>h&*Lm!up)@7X%Wx%ZLF$hDg$C)9- z8u${sZMdZX*q&}5)OKzY)BDWN0op?tIrv+*wZLPvJ#^`3%qcyN$P)wbtgH4jKDSJ} z;%C^)3=zdTd*8W036b2B#o*HKy=SOWpL=KEdUb^X?7$=7NUqQIH{Wl5xnk}t_A@s2KCq6>4>)rSvJ%;&^3yjyrM;19)Rj0nXi z%-BW84*gA%d^?5k?Dex(oF5eN(@VqrY@}!ZAmuY!XDdWok$(UDq_I{np8EFBA%G|MwZ9ki5=SaC$;@cmyfF@* zc%J(MAFDO)Aw=hy;u9$P!`*lp*1h0E769`MZ{r&5kdV=$_!>x(v&G*<_4c!wH(w{? z0<#WEF)E>afw5(d0_}XVZ=J=qWK*?WjlsJag}5E>GqI(Tz4m=0H-D;Z zhHZMrq!~Y*r?mqRO9}ETp)_r!ch81e#R(TMm8Sk$=i=tKr~#1~pbC87k_zVCDi5PVP?mi>E7wzQ+ak;f1`D=j6sV6ege_$kRUOFB_O9i{Rc*}K3Pq?=mq)?J~L;o;@o8;pJ*BxFNfU-EMjVb zuNx()#*~Sbc7LE5`JG>Zn?kek$IS(HUNT<#t73wc^|>?0W4MT9_YIdBp6~@%43cub zV1R_Khv}b&b*?#?lPh?*X0h=#tb9dhf0R%5R;~`zaH<__CZO2w2pr$ythz>NJCDKk z(G&e>P*ncU_Z3f(`q;OgUTw`KxSv3ewovZciJGc%v#t(g3l1R#*Bg1sNcc`QKMc2H zbabapmr>5mHMNZ`a6XNZc5~Lx0=UbxNs+K&rv^MtQNTZJZG#$pXO6rGoTt@9u50@< zZ6iWGQg?=*G8acOaS(gx!kzyd&37S~pL^=pXET+CIu(dy2lC{9fP??$E%SIv3j(nD zZkTB>Tx$D%(;@SO+45qi%caCq^08OU&q=XG!r&15T+jH%i-pKr<8N==HLv zXbgq<39B5E@kgM7f4CJS6qqcROWE4{BBNQqk%B2n@?80|$bG|O^|`d9A{^v7{(;G; z<_Kubgp-Bb=YlRIu$S@sZ^QjfQzzot{}^*mlNt%d_D_HS7r@+Wp0p4u?n*0&LMbS!PiAv^j@6PXtBa*$rQ<`-v^Su}vsZzog*)`^J#!pH7 zsl`UF^y#|H5TZQ&Z51cV=fFa3mH~YeJk?I52FebtjTP#2pDjuPTyrfK2PEYf zgGu$>N?%?GM;FW~s(aCX|CJdkOB)+)lyXO&WW@tecBHT04B<}WfRHauDEh6KDCQc_ zHq=4h+g`-P!U-4VT%7n%dEkJblBdzl-a|viGq0nS{FvZeR&HYKS?(YI)dc`g^ou{V p(`|mW)&nZ%b7Fp^PBra67&;ej#^TWS8UVnUvDQT<{0IGK{TJQ%Q>Op` diff --git a/packages/core/docs/commercetools/index.md b/packages/core/docs/commercetools/index.md deleted file mode 100644 index a82fea3cbf..0000000000 --- a/packages/core/docs/commercetools/index.md +++ /dev/null @@ -1,11 +0,0 @@ -# commercetools integration for Vue Storefront - -:::tip There's more -This page only contains the documentation specific to commercetools integration. For more information, see the [Vue Storefront documentation](https://docs.vuestorefront.io/v2/). -::: - -[commercetools](https://commercetools.com/) integration for Vue Storefront is only available as part of our [Vue Storefront Enterprise](/general/enterprise.html) offering and is maintained by the core team. Feel free to [contact Sales team](https://www.vuestorefront.io/contact/sales) to learn more about our offer. - -If you'd like to test it before diving in, see our [demo project](https://demo-ee.vuestorefront.io/). - -If you already have access to the integration, see the [Store setup](./store-setup.html) page to learn how to configure and connect the commercetools project. diff --git a/packages/core/docs/commercetools/reference/changelog.md b/packages/core/docs/commercetools/reference/changelog.md deleted file mode 100644 index 16d0f23635..0000000000 --- a/packages/core/docs/commercetools/reference/changelog.md +++ /dev/null @@ -1,341 +0,0 @@ -# Changelog - -## 1.4.1 - -- Fixed handleAfterAuth method to handle customToken scenario correctly ([6533](https://github.com/vuestorefront/vue-storefront/pull/6533)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -## 1.4.0 - -- Fix UI for Click and Collect ([6276](https://github.com/vuestorefront/vue-storefront/pull/6276)) - [Alef Barbeli](https://github.com/alefbarbeli) - -- **[BREAKING]** Refactor token handling ([6329](https://github.com/vuestorefront/vue-storefront/pull/6329)) - [Filip Sobol](https://github.com/filipsobol) - -- Fix bug with wrong version UI and resolve problems with parse negative number for css calc method(after upgrading SFUI to 0.11.0-rc.1) ([6354](https://github.com/vuestorefront/vue-storefront/issues/6354)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -- Added server access token ([6365](https://github.com/vuestorefront/vue-storefront/issues/6365)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -- Add @nuxtjs/google-fonts to improve performance ([6374](https://github.com/vuestorefront/vue-storefront/pull/6374)) - [Baroshem](https://github.com/Baroshem) - -- use extractCSS rule in build to make the bundle smaller ([6375](https://github.com/vuestorefront/vue-storefront/pull/6375)) - [Baroshem](https://github.com/Baroshem) - -- **[BREAKING]** Update GraphQL API types ([6410](https://github.com/vuestorefront/vue-storefront/pull/6410)) - [Filip Sobol](https://github.com/filipsobol) - - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - | Shipping address could contain `contactInfo` object with `phone`, `mobile`, `email` and `tax` properties | `phone`, `mobile`, `email` and `tax` properties should be used directly on the address object, not nested in the `contactInfo` object | In the past, the application logged a warning when `contactInfo` was present on the address object. Now we are deprecating it to match commercetools API | @vue-storefront/commercetools-api | - -- Prevent cookie creation during SSR ([6442](https://github.com/vuestorefront/vue-storefront/pull/6442)) - [Dawid Ziobro](https://github.com/dawid-ziobro) - - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - | Cookies for currency, locale and country were included in SSR response | Cookies for currency, locale and country are generated on client side | To prevent generating cookies during SSR (server-side rendering) and allowing caching, change in the `nuxt.config.js` file is required. Inside the `i18n` configuration, you should set the `detectBrowserLanguage` options to `false`. Then change the order of loaded modules. In the `buildModules` configuration, move the `@vue-storefront/commercetools/nuxt` module before `@vue-storefront/nuxt`. Lastly, update the Vue components used to switch locales to use the `nuxt-link` component instead of the `a` tag. By default it's located in the `StoreLocaleSelector.vue` file. | core | - -- **[BREAKING]** Update Composition API to 1.2.4 ([6452](https://github.com/vuestorefront/vue-storefront/pull/6452)) - [Filip Sobol](https://github.com/filipsobol) - - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - | Composition API module was registered internally by Vue Storefront modules | Composition API module must be registered inside projects | Please refer to the migration guide for more information | Theme | - -## 1.3.6 - -- Fixed close button placement (StoreLocaleSelector). ([6202](https://github.com/vuestorefront/vue-storefront/issues/6202)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -- Fixed redirect to localized My Account page. ([6474](https://github.com/vuestorefront/vue-storefront/issues/6474)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -## 1.3.3 - -- Overwrite `CategoryPageHeader` component and remove filters from OS ([5684](https://github.com/vuestorefront/vue-storefront/issues/5684)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -- Fix bug with raising exception when visiting /checkout/payment page directly from url ([5983](https://github.com/vuestorefront/vue-storefront/issues/5983)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -- Implemented pagination for orders history ([6032](https://github.com/vuestorefront/vue-storefront/issues/6032)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -- Enable payment summary section for desktop view ([6104](https://github.com/vuestorefront/vue-storefront/pull/6104)) - [vn-vlad](https://github.com/vn-vlad) - -- Fix error thrown by the `search` method in `useProduct` composable when searching by product SKUs ([6181](https://github.com/vuestorefront/vue-storefront/issues/6181)) - [Andrzej Kurek](https://github.com/Razz21) - -- Fix no property error in changePassword function in useUser composable ([6231](https://github.com/vuestorefront/vue-storefront/issues/6231)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) - -- Updated SFUI ([6240](https://github.com/vuestorefront/vue-storefront/pull/6240)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Fix missing addresses data in order summary ([6282](https://github.com/vuestorefront/vue-storefront/pull/6283/)) - [Igor Wojciechowski](https://github.com/igorwojciechowski) - -- pass cookies obj with cookie names to mapI18nSettings ([6296](https://github.com/vuestorefront/vue-storefront/issues/6296)) - [Marcin Sulowski](https://github.com/MarcinSulowski) - -- Improve A11Y in Core Web Vitals ([6304](https://github.com/vuestorefront/vue-storefront/pull/6304)) - [Baroshem](https://github.com/Baroshem) - -- Improve SEO Core Web Vitals ([6306](https://github.com/vuestorefront/vue-storefront/pull/6306)) - [Baroshem](https://github.com/Baroshem) - -- Make VSF PWA again ([6307](https://github.com/vuestorefront/vue-storefront/pull/6307)) - [Baroshem](https://github.com/Baroshem) - -- Fix bug with redirect to home page after successful order placement ([6309](https://github.com/vuestorefront/vue-storefront/issues/6309)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -- Fix for unsuccessful login or register message ([6311](https://github.com/vuestorefront/vue-storefront/pull/6311)) - [Dawid Ziobro](https://github.com/dawid-ziobro) - -- getProduct custom query - productType doesnt get mapped to product response in enhanceProduct helper ([6347](https://github.com/vuestorefront/vue-storefront/issues/6347)) - [Marcin Sulowski](https://github.com/MarcinSulowski) - -- Fix bug with wrong version UI and resolve problems with parse negative number for css calc method(after upgrading SFUI to 0.11.0-rc.1) ([6354](https://github.com/vuestorefront/vue-storefront/issues/6354)) - [Rafał Dobrowolski](https://github.com/RafalDobrowolski) - -- Fix `Insufficient scope` error when resetting customer's password ([6403_1](https://github.com/vuestorefront/vue-storefront/pull/6403)) - [Filip Sobol](https://github.com/filipsobol) - -- Allow defining custom GraphQL operations that will be called with server API client ([6403_2](https://github.com/vuestorefront/vue-storefront/pull/6403)) - [Filip Sobol](https://github.com/filipsobol) - -- include a copy of the product object in productResponse returned by the enhanceProduct helper ([6405](https://github.com/vuestorefront/vue-storefront/issues/6405)) - [Marcin Sulowski](https://github.com/MarcinSulowski) - -## 1.3.2 - -- **[BREAKING]** Fix loading user and cart information ([6265](https://github.com/vuestorefront/vue-storefront/pull/6265/)) - [Filip Sobol](https://github.com/filipsobol) - - | Before | After | Comment | Module | - | ------ | ----- | ------- | ------ | - | `loadUser` was called directly inside `setup` method in `CartSidebar.vue` component | `loadUser` is called inside `onSSR` callback in `CartSidebar.vue` component | Calling `loadUser` directly inside `setup` method caused hydration issues, since cart information was not properly loaded during SSR. Additionally cart will now be automatically updated after calling `load` from the `useUser` composable, the same way as it happens when calling `logIn`, `logOut` and `register`. | commercetools theme | - -- Add server-specific API client ([6321](https://github.com/vuestorefront/vue-storefront/pull/6321)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.3.1 - -- Revert changes to Webpack configuration and Google font loading ([#6203](https://github.com/vuestorefront/vue-storefront/pull/6203)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.3.0 - -- **[BREAKING]** Enable the purchase of item with selected supply channel and distribution channel ([#6161](https://github.com/vuestorefront/vue-storefront/pull/6161)) - [Alef Barbeli](https://github.com/alefbarbeli) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | the addToCart method has the signature addToCart ({ id, version }: CartDetails, product: ProductVariant, quantity: number): Promise<CartResponse>; | now the addToCart method was change to enable the supply and distribution channels with the signature addToCart ({ id, version }: CartDetails, params: { product: ProductVariant; quantity: number; supplyChannel?: string; distributionChannel?: string;}): Promise<CartResponse>; | The composable was changed to match this signature. The changes from Click & Collect / MultiStore are required to use this feature on Product.vue | api-client - -- Added missing mobile menu to CT ([#6184](https://github.com/vuestorefront/vue-storefront/pull/6184)) - [Łukasz Jędrasik](https://github.com/lukaszjedrasik) - -- Added customQuery support for useUser factory params ([#5883](https://github.com/vuestorefront/vue-storefront/pull/5823)) - [vn-vlad](https://github.com/vn-vlad) - -- Fix locale links in core and commercetools integration ([#5886](https://github.com/vuestorefront/vue-storefront/issues/5886)) - [Baroshem](https://github.com/Baroshem) - -- Remove SSR from personalized elements ([#5925](https://github.com/vuestorefront/vue-storefront/pull/5925)) - [vn-vlad](https://github.com/vn-vlad) - -- Add "useStore" implementation and plugin for creating locale, currency and country cookies ([#5945](https://github.com/vuestorefront/vue-storefront/pull/5945)) - [vn-vlad](https://github.com/vn-vlad) - -- Add forgot password functionality ([#5968](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) - -- Click "Add New Address" button on the Checkout does not submit the form ([#5994](https://github.com/vuestorefront/vue-storefront/pull/6034)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) - -- Remove `generate` command from `package.json` ([#6035](https://github.com/vuestorefront/vue-storefront/pull/6035)) - [lukaszjedrasik](https://github.com/lukaszjedrasik) - -- Refactor updateCart, fix retry logic in case of mismatch of cart ([#6050](https://github.com/vuestorefront/vue-storefront/pull/6054)) - [git-antonyuk](https://github.com/git-antonyuk) - -- **[BREAKING]** refactor(commercetools): fix the frontend client bundling the commercetools-sdk and apollo client ([#6066](https://github.com/vuestorefront/vue-storefront/pull/6066)) - [bloodf](https://github.com/bloodf) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | the "createCommerceToolsConnection" were being exported by the api-client | the "createCommerceToolsConnection" is not being exported anymore | to use the current connection, you will need to access the context to call the API | api-client - -- Linked banner grids buttons on homepage ([#6070](https://github.com/vuestorefront/vue-storefront/pull/6070)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Replace mocked email address in MyProfile password change tab to active user email ([#6079](https://github.com/vuestorefront/vue-storefront/pull/6079)) - [Adam Pawliński](https://github.com/AdamPawlinski) - -- Removed hardcoded link to category in SearchResults.vue ([#6081](https://github.com/vuestorefront/vue-storefront/pull/6081)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Added new product getter `getProductSku` ([#6107](https://github.com/vuestorefront/vue-storefront/pull/6107)) - [Justyna Gieracka](https://github.com/justyna-13) - -- Smartphone only promo code input added ([#6112](https://github.com/vuestorefront/vue-storefront/pull/6112)) - [vn-vlad](https://github.com/vn-vlad) - -- Updates form validation scheme for street, number and city in the checkout and profile editing pages ([#6122](https://github.com/vuestorefront/vue-storefront/pull/6122)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - -- **[BREAKING]** updated the removeCoupon interface to match the applyCoupon ([#6126](https://github.com/vuestorefront/vue-storefront/pull/6126)) - [Heitor Ramon Ribeiro](https://github.com/bloodf) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | the useCart composable method removeCoupon was using this call signature: ({ coupon: COUPON, customQuery?: CustomQuery }) | the method signature was changed to: ({ couponCode: string, customQuery?: CustomQuery }) | on each removeCoupon composable usage need to change the "coupon" to "couponCode" | composables - -- Add new getter for orders total and change return value of searchOrders ([#6132](https://github.com/vuestorefront/vue-storefront/issues/5968)) - [Baroshem](https://github.com/Baroshem) - -- Phone number validation via awesome-phonenumber ([#5951](https://github.com/vuestorefront/vue-storefront/issues/5951)) - [Fifciu](https://github.com/Fifciu) - -## 1.2.3 - -- Use cookies to read information about i18n ([#5919](https://github.com/vuestorefront/vue-storefront/pull/5919)) - [andrzejewsky](https://github.com/andrzejewsky) - -- Resetting commercetools token when clearing user session ([#5920](https://github.com/vuestorefront/vue-storefront/pull/5920)) - [andrzejewsky](https://github.com/andrzejewsky) - -- Fix calculation of cart totals ([#5932](https://github.com/vuestorefront/vue-storefront/pull/5932)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.2.2 - -- Allow searching by orderNumber ([#5858](https://github.com/vuestorefront/vue-storefront/pull/5858)) - [samriley](https://github.com/samriley) - -## 1.2.1 - -- Add args parameter to custom queries ([#5854](https://github.com/vuestorefront/vue-storefront/issues/5854)) - [andrzejewsky](https://github.com/andrzejewsky) - -- Export factory params for all composables to allow overriding ([#5862](https://github.com/vuestorefront/vue-storefront/pull/5862)) - [Filip Sobol](https://github.com/filipsobol) - -- Export helper Apollo Link functions for easier overriding ([#5873](https://github.com/vuestorefront/vue-storefront/pull/5873)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.2.0 - -- Set 'vsf-commercetools-token' cookie expiration time to match token expiration time. ([#5774](https://github.com/vuestorefront/vue-storefront/pull/5774)) - [Filip Sobol](https://github.com/filipsobol) - -- Reduce payload size for cart methods ([#5836](https://github.com/vuestorefront/vue-storefront/pull/5836)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.2.0-rc.3 - -- Fix getters in `cartGetters` to not throw errors when some properties don't exist ([#5699](https://github.com/vuestorefront/vue-storefront/pull/5699)) - [Filip Sobol](https://github.com/filipsobol) - -- Fixed mapping for product attributes with type `set` ([#5708](https://github.com/vuestorefront/vue-storefront/pull/5708)) - [Filip Sobol](https://github.com/filipsobol) - -- Fixed CT wishlist throwing CAPI error ([#5716](https://github.com/vuestorefront/vue-storefront/pull/5716)) - [Filip Sobol](https://github.com/filipsobol) - -## 1.2.0-rc.2 - -- Adjust Checkout UI ([#5343](https://github.com/vuestorefront/vue-storefront/issues/5343)) - [Justyna Gieracka](https://github.com/justyna-13) - -- **[BREAKING]** Usage of api middleware ([#5361](https://github.com/vuestorefront/vue-storefront/pull/5361)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | one entrypoint | multiple entrypoints | We expose multiple entrypoints for server and client side interaction | commercetools - -- New part of checkout - shipping details, inside core and commercetools ([#5419](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - -- Added `is-authenticated` middleware to protect user profile routes from guest access ([#5442](https://github.com/vuestorefront/vue-storefront/pull/5442)) - [Filip Sobol](https://github.com/filipsobol) - -- Improvements for api middleware ([#5500](https://github.com/vuestorefront/vue-storefront/pull/5500)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - -- **[BREAKING]** New part of checkout - Billing details, inside core and commercetools ([#5552](https://github.com/vuestorefront/vue-storefront/pull/5552)) - [Fifciu](https://github.com/Fifciu) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | UserBillingAddress works properly | New API inside Checkout/UserBillingAddress.vue | Customized components to work with new checkout | commercetools-theme - -- **[BREAKING]** Quick search ([#5566](https://github.com/vuestorefront/vue-storefront/issues/5566)) - [Justyna Gieracka](https://github.com/justyna-13) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | { changeSearchTerm } = useUiHelpers() | { setTermForUrl } = useUiHelpers(); | Changed changeSearchTerm name to setTermForUrl | useUiHelpers/index.ts, - | { getSearchTermFromUrl } = useUiHelpers(); | Created new function | useUiHelpers/index.ts - -- **[BREAKING]** Implementation of api middleware ([#5577](https://github.com/vuestorefront/vue-storefront/pull/5577)) - [Patryk Andrzejewski](https://github.com/andrzejewsky) - -| Before | After | Comment | Module -| ------ | ----- | ------ | ------ -customQuery was used as a function | customQuery is a key-value object | The key is a query name, value is the name of a new query function, defined in the middleware config | commercetools - -- **[BREAKING]** New Payment API for Checkout ([#5587](https://github.com/vuestorefront/vue-storefront/pull/5587)) - [Fifciu](https://github.com/Fifciu) - - | Before | After | Comment | Module - | ------ | ----- | ------ | ------ - | Dedicated composable for whole checkout | Dedicated composable for Shipping, Billing and Provider components | undefined | commercetools - -- State as a select field at both Checkout and MyAccount (shipping & billing). Support for freeAbove in shipping methods ([#5628](https://github.com/vuestorefront/vue-storefront/pull/5628)) - [Fifciu](https://github.com/Fifciu) - -## 1.1.7 - -- fixed error with login to the account ([#5613](https://github.com/vuestorefront/vue-storefront/issues/5613)) - -## 1.1.6 - -- fix register function from CT useUser composable allows user to log in [#5613](https://github.com/vuestorefront/vue-storefront/issues/5613) - -## 1.1.5 - -- remove deprecated field `description` from shipping methods query [#5614](https://github.com/vuestorefront/vue-storefront/issues/5614) - -## 1.1.6 - -- fix register function from CT useUser composable allows user to log in [#5613](https://github.com/vuestorefront/vue-storefront/issues/5613) - -## 1.1.5 - -- remove deprecated field `description` from shipping methods query [#5614](https://github.com/vuestorefront/vue-storefront/issues/5614) - -## 1.1.3 - -- cover errors in re-try apollo-link that are not comming from graphql ([#5548](https://github.com/vuestorefront/vue-storefront/pull/5548)) - -## 1.1.2 - -- moved from using `attributesList` to `attributesRaw` -- add 'once' to prevent font reload on each reactivity event ([#5513](https://github.com/DivanteLtd/vue-storefront/issues/5534)) - -## 1.1.1 - -- fixed `vue-lazy-hydration` dependency in `nuxt-theme-module` ([#5406](https://github.com/DivanteLtd/vue-storefront/issues/5406)) - -## 1.1.0 - -- fix getOrders api ([#5328](https://github.com/DivanteLtd/vue-storefront/issues/5328)) -- added bottom margin to fix visibility of last footer category ([#5253](https://github.com/DivanteLtd/vue-storefront/issues/5253)) -- **[BREAKING]** refactored names of many factory methods and composable methods, details in linked PR ([#5299](https://github.com/DivanteLtd/vue-storefront/pull/5299)) -- **[BREAKING]** changed signatures of factory methods to always 2 arguments, details in linked PR ([#5299](https://github.com/DivanteLtd/vue-storefront/pull/5299)) -- **[BREAKING]** removed `totalOrders` and `totalProducts` ([#5330](https://github.com/vuestorefront/vue-storefront/pull/5330)) -- removed `formatPrice` from `useUiHelpers`, replaced by vue18n `$n` function ([#5339](https://github.com/vuestorefront/vue-storefront/pull/5339)) -- added missing `i18n` tags ([#5337](https://github.com/vuestorefront/vue-storefront/issues/5337)) -- use updated factories `useUserBillingFactory`, `useUserShippingFactory` and `useWishlistFactory` ([5350](https://github.com/vuestorefront/vue-storefront/pull/5350)) -- use updated factories `useUserBillingFactory`, `useUserShippingFactory` and `useWishlistFactory` ([5350](https://github.com/vuestorefront/vue-storefront/pull/5350)) -- fix selecting country on checkout payment and shipping ([5386](https://github.com/vuestorefront/vue-storefront/pull/5386)) -- `createMyShoppingList` as a restricted anonymous operation - -## 1.0.1-rc.1 - -- updated version of core - -## 1.0.0-rc.1 - -- removed `availableFilters` and `availableSortingOptions` from `useProduct` ([#4856](https://github.com/DivanteLtd/vue-storefront/issues/4856)) -- removed `@import "~@storefront-ui/vue/styles";` from all components, because SFUI variables and mixins are now available globally and imports will drastically increase bundle size ([#5195](https://github.com/DivanteLtd/vue-storefront/issues/5195)) -- enabled "modern mode" in `yarn build` command ([#5203](https://github.com/DivanteLtd/vue-storefront/issues/5203)) -- added missing order getter to get item price ([#5231](https://github.com/DivanteLtd/vue-storefront/issues/5231)) -- retry updating the cart with new version if previous request failed due to a version mismatch ([#5264](https://github.com/DivanteLtd/vue-storefront/issues/5264)) -- removed logging level from nuxt.config.js to use defaults from core ([#5304](https://github.com/DivanteLtd/vue-storefront/issues/5304)) -- fixed broken focus in login form ([#5273](https://github.com/DivanteLtd/vue-storefront/issues/5273)) -- fixed select for changing variant on product page ([#5281](https://github.com/DivanteLtd/vue-storefront/issues/5281)) -- added token re-try strategy ([#5295](https://github.com/DivanteLtd/vue-storefront/pull/5295)) -- added discounts api getter ([#5154](https://github.com/DivanteLtd/vue-storefront/pull/5154)) -- added context implementation ([#5218](https://github.com/DivanteLtd/vue-storefront/pull/5218)) -- added context typings ([5290](https://github.com/DivanteLtd/vue-storefront/pull/5290)) - -## 0.2.6 - -- fix errors throw by some product getters ([#5089](https://github.com/DivanteLtd/vue-storefront/issues/5089)) -- The address `contactInfo` field is deprecated in the CT api. We have added support for the contact information fields directly in the address and will now show a warning when deprecated field is used ([#5083](https://github.com/DivanteLtd/vue-storefront/pull/5083)) -- removed `chosenShippingMethod` defaulting ([#5073](https://github.com/DivanteLtd/vue-storefront/issues/5073)) -- fix `useCheckout` - set loading fields to false when api-client throws ([#5096](https://github.com/DivanteLtd/vue-storefront/pull/5096)) - -## 0.2.5 - -- `customQuery` for checkout composables ([#5025](https://github.com/DivanteLtd/vue-storefront/issues/5025)) -- api-client apollo client no longer shared between requests ([#5056](https://github.com/DivanteLtd/vue-storefront/pull/5056)) - -## 0.2.4 - -- Remove defaulting for checkout shipping details ([#5026](https://github.com/DivanteLtd/vue-storefront/issues/5026)) - -### Changes - -- added `getTotalReviews` and `getAverageRating` to `productGetters` ([#4958](https://github.com/DivanteLtd/vue-storefront/issues/4958)) -- added '_rating' back to the product ([#4958](https://github.com/DivanteLtd/vue-storefront/issues/4958)) -- added mock for user shipping addresses in MyShippingDetails and Checkout's Shipping ([#4841](https://github.com/DivanteLtd/vue-storefront/issues/4841)) - -## 0.2.3 - -### Changes - -- adding ability to overriding `isTokenUserSession` check in api-client ([#4959](https://github.com/DivanteLtd/vue-storefront/issues/4959)) - -## 0.2.2 - -### Breaking changes - -- removed '_rating' from product ([#4906](https://github.com/DivanteLtd/vue-storefront/issues/4906)) - -### Changes - -- Fix types for CT api-client and composables packages ([#4924](https://github.com/DivanteLtd/vue-storefront/pull/4924)) -- fixed updateUser on useUser composable ([#4863](https://github.com/DivanteLtd/vue-storefront/issues/4863)) -- implemented useReviews on product page ([#4800](https://github.com/DivanteLtd/vue-storefront/issues/4800)) -- implemented faceting using useFacet factory ([#4853](https://github.com/DivanteLtd/vue-storefront/issues/4853)) -- fixed anonymous token loading ([#4917](https://github.com/DivanteLtd/vue-storefront/issues/4917)) -- fixed bugs related to customQuery ([#4933](https://github.com/DivanteLtd/vue-storefront/issues/4933), [#4913](https://github.com/DivanteLtd/vue-storefront/issues/4913)) - -## 0.1.0 - -- refactored setup using apiClientFactory ([#4777](https://github.com/DivanteLtd/vue-storefront/issues/4777)) diff --git a/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.2/index.md b/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.2/index.md deleted file mode 100644 index b91df269d6..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.2/index.md +++ /dev/null @@ -1,35 +0,0 @@ -# Upgrading to 1.2.0-rc.2 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.2. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -We made changes to the following files: -- added new composable `useBilling`, -- added new composable `useShipping`, -- added new composable `useShippingProvider` -- added new component `components/Checkout/VsfShippingProvider`, -- added new component `components/Checkout/VsfPaymentProviderMock`, -- added new components `pages/Checkout/Billing.vue`, -- added new helper `helpers/Checkout/getShippingMethodPrice.ts`, -- added new middleware `middleware/is-authenticated.js`, -- added `middleware.config.js`, -- updated `components/Checkout/UserBillingAddresses.vue`, -- updated `components/Checkout/UserShippingAddresses.vue`, -- updated `composables/useUiHelpers/index.ts`: - - renamed `changeSearchTerm` to `setTermForUrl`, - - added `getSearchTermFromUrl`, -- updated translations in `theme/lang`, -- updated `middleware/checkout.js`, -- updated `pages/Checkout.vue`, -- updated `pages/Checkout/Payment.vue`, -- updated `pages/Checkout/Shipping.vue`, -- updated icons in `static/icons`, -- updated `nuxt.config.js`, -- updated `package.json`, -- deleted component `pages/Checkout/OrderReview.vue`, -- deleted component `pages/Checkout/PersonalDetails.vue`. \ No newline at end of file diff --git a/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.3/index.md b/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.3/index.md deleted file mode 100644 index 8e6791cd26..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.2.0-rc.3/index.md +++ /dev/null @@ -1,18 +0,0 @@ -# Upgrading to 1.2.0-rc.3 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0-rc.3. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -- Fixed mapping for product attributes with type `set`. -- Fixed cart getters to not throw errors when some properties are missing. -- Fixed error thrown by the Composition API plugin when importing `useWishlist`. - -We also made changes to the following files: -- updated `components/Checkout/VsfShippingProvider.vue`, -- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersForUrl.js`, -- deleted unused `packages/commercetools/theme/helpers/filters/getFiltersFromUrl.js`. diff --git a/packages/core/docs/commercetools/reference/migrate/1.2.0/index.md b/packages/core/docs/commercetools/reference/migrate/1.2.0/index.md deleted file mode 100644 index 34d2a35354..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.2.0/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# Upgrading to 1.2.0 - -## Introduction - -This migration guide helps developers using our `commercetools` integration to upgrade to version 2.3.0. - -For more information about this version, refer to the [Overview](./overview.md) page. - -## Changes - -- Added E2E (cypress) tests: - - use `yarn test:e2e` to start Cypress, - - use `test:e2e:hl` to run Cypress tests in headless mode. Useful for running the tests in CI/CD workflows, - - use `test:e2e:generate:report` to generate Cypress report. -- **[BREAKING]** Fixed helpers used for search on the Category page to read `phrase` URL query string instead of `term`. -- Added `SfLoader` to `VsfShippingProvider` to correctly handle the loading state. -- Added expiration time to `vsf-commercetools-token` cookie matching token expiration time received from commercetools. Previously session cookies were used, which browsers delete when the current session ends. This forced users to log in more often than necessary. -- Fixed an issue in the cart where API calls would result in `HTTP 413 Payload Too Large` error code due to large payload size. Cart method calls will now only include cart `id` and `version` instead of the whole cart object. - -We also made changes to the following files: -- updated `components/Checkout/CartPreview.vue`, -- updated `components/Checkout/UserBillingAddresses.vue`, -- updated `components/Checkout/UserShippingAddresses.vue`, -- updated `components/Checkout/VsfPaymentProviderMock.vue`, -- updated `components/Checkout/VsfShippingProvider.vue`, -- updated `components/MyAccount/BillingAddressForm.vue`, -- updated `components/MyAccount/PasswordResetForm.vue`, -- updated `components/MyAccount/ProfileUpdateForm.vue`, -- updated `components/MyAccount/ShippingAddressForm.vue`, -- updated `pages/Checkout/Billing.vue`, -- updated `pages/Checkout/Payment.vue`, -- updated `pages/Checkout/Shipping.vue`, -- updated `pages/Checkout/ThankYou.vue`. diff --git a/packages/core/docs/commercetools/reference/migrate/1.3.0/index.md b/packages/core/docs/commercetools/reference/migrate/1.3.0/index.md deleted file mode 100644 index cc4e94c750..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.3.0/index.md +++ /dev/null @@ -1,27 +0,0 @@ -# Upgrading to 1.3.0 - -## Introduction - -In 1.3.0 release, we introduce Forgot Password functionality and basic support for Stores and Channels in commercetools - you can now select a specific store and its corresponding channel, e.g., to display prices for a selected channel. We also fix some bugs related to Checkout forms and add new getters. - -## Changes - -- **[BREAKING]** Enable the purchase of an item with selected supply channel and distribution channel -- Added `storeGetters`, `useStore` composable and plugin for creating locale, currency, and country cookies -- Added `forgotPasswordGetters` and `useForgotPassword` composable -- Added `getProductSku` getter to `productGetters` -- Extended `middleware.config.js` with `inventoryMode` optional property - when added to the configuration, Inventory Mode is set on cart creation -- Added smartphone only promo code input -- Removed hardcoded link to the category in `SearchResults.vue` -- Replaced mocked email address in MyProfile password change tab to active user email -- Fixed bug with input characters limits on Checkout forms preventing submitting the form with a street name less than five characters long and apartment number with less than two characters long -- Added e2e tests for Checkout - -We also made changes to the following files: -- Added `pages/MyAccount/MyProfile.vue`. -- Updated `components/MyAccount/BillingAddressForm.vue`. -- Updated `components/MyAccount/ShippingAddressForm.vue`. -- Updated `pages/Checkout/Billing.vue`. -- Updated `pages/Checkout/Payment.vue`. -- Updated `pages/Checkout/Shipping.vue`. -- Updated `lang/de.js` and `lang/en.js`. diff --git a/packages/core/docs/commercetools/reference/migrate/1.3.2/customer_scopes.jpg b/packages/core/docs/commercetools/reference/migrate/1.3.2/customer_scopes.jpg deleted file mode 100644 index c2dc8808c9d8e036ba40604037e9406695377074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46607 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

Nx4p7Je22P!NUUM>oV8?;5{tx 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 diff --git a/packages/core/docs/commercetools/reference/migrate/1.3.2/index.md b/packages/core/docs/commercetools/reference/migrate/1.3.2/index.md deleted file mode 100644 index c374ab5ff7..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.3.2/index.md +++ /dev/null @@ -1,75 +0,0 @@ -# Upgrading to 1.3.2 - -## Introduction - -In the 1.3.2 release, we focused on improving security by limiting permissions given to the customers to the bare minimum. This release doesn't include breaking changes, but we **HIGHLY** recommend applying the changes described below to your projects. - -## Changes - -In the past, all requests sent to the commercetools included customer's access token created with scopes defined in the `middleware.config.js` file. If the customer didn't have permission to access a given resource, commercetools would return an error. It sounds logical - you can't access or operate the data if you don't have permission. - -Unfortunately, some operations require `manage_*` scopes. For example: - -- resetting user password requires `manage_customers` scope, -- adding product reviews requires `manage_products` scope. - -Giving these permissions to the customer would allow them to access and modify all customers and products in your commercetools project. - -For this reason, we introduced a new key named `serverApi` to the commercetools middleware configuration. You can use it to pass new server-specific API client credentials that middleware will use instead of customers API client for selected operations that require `manage_*` permissions. - -```javascript{11-22,25-30} -// middleware.config.js -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - api: { - uri: 'https://api.commercetools.com/PROJECT_KEY/graphql', - authHost: 'https://auth.sphere.io', - projectKey: 'PROJECT_KEY', - clientId: 'CLIENT_ID', // Customer API client ID - clientSecret: 'CLIENT_SECRET', // Customer API client secret - scopes: [ - 'create_anonymous_token:PROJECT_KEY', - 'manage_my_profile:PROJECT_KEY', - 'view_categories:PROJECT_KEY', - 'manage_my_payments:PROJECT_KEY', - 'manage_my_orders:PROJECT_KEY', - 'manage_my_shopping_lists:PROJECT_KEY', - 'view_published_products:PROJECT_KEY', - 'view_stores:PROJECT_KEY' - ] - }, - serverApi: { - clientId: 'SERVER_ID', // Server API client ID - clientSecret: 'SERVER_SECRET', // Server API client secret - scopes: [ - 'manage_customers:PROJECT_KEY', - 'manage_products:PROJECT_KEY' - ] - } - } - } - } -}; -``` - -API client used in the `serverApi` section can only have the `manage_customers` and `manage_products` scopes. -Alternatively, you can use just the `manage_project` scope, but keep in mind that this gives Vue Storefront unlimited access to everything in your project. When dealing with permissions, less is always better ;) - -:::tip Use two separate API clients for `api` and `serverApi` -While it's possible to use the same API client in `api` and `serverApi`, but will different scopes, we recommend creating two separate API clients. -::: - -### Recommended customer scopes - -The image below shows a list of recommended scopes for the API client configured in the `api` section should have. - -![Image showing list of recommended scopes for the customers](./customer_scopes.jpg) - -### Recommended server scopes - -The image below shows a list of recommended scopes for the API client configured in the `serverApi` section should have. - -![Image showing list of recommended scopes for the server](./server_scopes.jpg) diff --git a/packages/core/docs/commercetools/reference/migrate/1.3.2/server_scopes.jpg b/packages/core/docs/commercetools/reference/migrate/1.3.2/server_scopes.jpg deleted file mode 100644 index b80a48d7a74c70c595585cce586328475c9f1ba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45828 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 A&Hw-a diff --git a/packages/core/docs/commercetools/reference/migrate/1.3.3/index.md b/packages/core/docs/commercetools/reference/migrate/1.3.3/index.md deleted file mode 100644 index 6d0f06bd70..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.3.3/index.md +++ /dev/null @@ -1,74 +0,0 @@ -# Upgrading to 1.3.3 - -## Introduction - -In the 1.3.3 release, we added new options to the `serverApi` introduced in the 1.3.2 release. - -## Changes - -In the 1.3.2 release, we introduced a new key named `serverApi` to the commercetools middleware configuration. It stores API client used to generate access tokens for selected operations. However, we quickly noticed the need to allow adding other operations that will use these access tokens. That's why in this release we added new `operations` option to the `serverApi` configuration. - -```javascript{9-15} -// middleware.config.js -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - // irrelevant configuration was omitted for readability - serverApi: { - clientId: 'SERVER_ID', - clientSecret: 'SERVER_SECRET', - scopes: [ - 'manage_customers:PROJECT_KEY', - 'manage_products:PROJECT_KEY' - ], - operations: [] - } - } - } - } -}; -``` - -:::warning Custom operations might require additional scopes -Remember that custom operations added to the `operations` array might require additional scopes. -::: - - -### Example - -Let's assume you have custom GraphQL that adds new mutation like shown below: - -```graphql -mutation AddProductType( - $draft: ProductTypeDraft! -) { - productType: createProductType(draft: $draft) { - name - description - key - } -} -``` - -In this case, you need to add `createProductType` to the `operations` array: - -```javascript{9-11} -// middleware.config.js -module.exports = { - integrations: { - ct: { - location: '@vue-storefront/commercetools-api/server', - configuration: { - // irrelevant configuration was omitted for readability - serverApi: { - operations: [ - 'createProductType' - ] - } - } - } - } -}; -``` \ No newline at end of file diff --git a/packages/core/docs/commercetools/reference/migrate/1.4.0/index.md b/packages/core/docs/commercetools/reference/migrate/1.4.0/index.md deleted file mode 100644 index a79b0d6f63..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/1.4.0/index.md +++ /dev/null @@ -1,124 +0,0 @@ -# Upgrading to 1.4.0 - -## Introduction - -:::warning Start by updating the core packages -This guide only includes commercetools-specific changes. Follow the [Migrating projects to 2.5.0](/migrate/2.5.0/overview.html) guide to update the core before you proceed with applying changes from this guide. -::: - -In this release, we focused on improving security and performance and updating GraphQL types. - -This release includes some breaking changes. However, adjusting your projects shouldn't take too long and only requires a few minor changes. - -### Updated GraphQL types - -You might have noticed that the `@vue-storefront/commercetools-api` package exports [TypeScript types](/commercetools/api-reference/commercetools-api.html) for GraphQL data returned by commercetools. We didn't update them for quite a while and decided that it was time to do it. There are plenty of new types as well as some breaking changes to the old types. Depending on the types you use, you might need to update your project. - -### Handling access tokens - -We completely rewrote internals for handling authentication because of the poor performance of the old solution. Previously, the application requested a new access token several times for every user visiting the page if they didn't have the token cookie. This approach didn't make much sense, especially because [all guests share the same access token](https://docs.commercetools.com/api/authorization#create-anonymous-sessions-only-once-necessary) until their session become unique in any way, for example, by logging in or adding an item to the cart or wishlist. - -From now on, the application will request one access token for server operations (introduced in the previous release) and one for all guests. The server stores these tokens and doesn't send them out to the users. It will only create session cookies only for anonymous and logged-in users. - -:::tip What is an anonymous session in commercetools? -You might be wondering what an "anonymous" session is and how it's different from the "guest" session. In commercetools there are three types of sessions: - -* **guest** - user that didn't log in nor perform any visitor-specific operation, -* **anonymous** - user that didn't log in but performed some visitor-specific operation, for example, added item to the cart or wishlist, -* **customer** - user that logged into the application. -::: - -This change by itself doesn't require any changes in existing projects. However, we used this opportunity to improve the security of the cookies storing the user session. See the next section for more details. - -### Improving security of the session cookie - -The commercetools integration creates the `vsf-commercetools-token` cookie to store the user session. In the past, this cookie didn't include the `secure` and `httpOnly` attributes. The lack of these attributes meant that the cookie could be sent with unsecured HTTP and be accessed using JavaScript, which exposed the cookie to security risks. - -From now on, a session cookie will always have the `httpOnly` attribute. It will also have the `secure` attribute, but only if the request was HTTPS. For this reason, you don't have to use HTTPS in your development environments. - -However, because the session cookie can no longer be accessed using JavaScript, we needed a new way of checking if the user is logged in. For this reason, we introduced a new `isLoggedIn` endpoint. **You need to update the `middleware/is-authenticated.js` file**, which protects `/my-account` routes from unauthorized access and all other parts of the application that read the session cookie. - -```javascript -// middleware/is-authenticated.js -import { Logger } from '@vue-storefront/core'; - -export default async ({ $vsf, route, redirect }) => { - try { - const isLoggedIn = await $vsf.$ct.api.isLoggedIn(); - - if (!isLoggedIn) { - throw new Error(`"${ route.fullPath }" route is only available to logged-in customers`); - } - } catch (error) { - Logger.warn(error.toString()); - return redirect('/'); - } -}; -``` - -In components, you can use the same approach by using the `useVSFContext` helper to access the `$ct` context. - -```javascript -// Vue components -import { useVSFContext } from '@vue-storefront/core'; - -export default { - setup() { - const { $ct } = useVSFContext(); - - async function isLoggedIn() { - return await $ct.api.isLoggedIn(); - } - } -}; -``` - -## Other changes - -Below is the list of the template files that we updated since the last release. You can generate a new project using our CLI and compare the files listed below with your existing project to see if they need updating. - -- `components/AppHeader.vue`, -- `components/CategoryPageHeader.vue`, -- `components/MyAccount/ProfileUpdateForm.vue`, -- `components/StoreLocaleSelector.vue`, -- `composables/useUiHelpers/index.ts`, -- `lang/de.js`, -- `lang/en.js`, -- `middleware/is-authenticated.js` , -- `nuxt.config.js`, -- `package.json`, -- `pages/Checkout.vue`, -- `pages/Checkout/Billing.vue`, -- `pages/Checkout/Payment.vue`, -- `pages/Checkout/Shipping.vue`, -- `pages/Checkout/ThankYou.vue`, -- `pages/MyAccount/OrderHistory.vue`, -- `pages/Product.vue`. - -If you are using E2E tests included in the projects, you might also need to update the following files. - -- `tests/e2e/api/requests.ts`, -- `tests/e2e/fixtures/responses/getOrders.json`, -- `tests/e2e/fixtures/responses/getOrdersWithOffset.json`, -- `tests/e2e/fixtures/test-data/e2e-add-to-cart.json`, -- `tests/e2e/fixtures/test-data/e2e-carts-merging.json`, -- `tests/e2e/fixtures/test-data/e2e-my-account-order-history.json`, -- `tests/e2e/fixtures/test-data/e2e-product-page.json`, -- `tests/e2e/fixtures/test-data/e2e-remove-from-cart.json`, -- `tests/e2e/fixtures/test-data/e2e-update-cart.json`, -- `tests/e2e/integration/e2e-add-to-cart.spec.ts`, -- `tests/e2e/integration/e2e-carts-merging.spec.ts`, -- `tests/e2e/integration/e2e-checkout-order-summary.spec.ts`, -- `tests/e2e/integration/e2e-my-account-order-history.spec.ts`, -- `tests/e2e/integration/e2e-my-account.spec.ts`, -- `tests/e2e/integration/e2e-place-order.spec.ts`, -- `tests/e2e/integration/e2e-user-login.spec.ts`, -- `tests/e2e/integration/e2e-user-registration.spec.ts`, -- `tests/e2e/pages/category.ts`, -- `tests/e2e/pages/checkout.ts`, -- `tests/e2e/pages/components/breadcrumbs.ts`, -- `tests/e2e/pages/components/cart-sidebar.ts`, -- `tests/e2e/pages/components/header.ts`, -- `tests/e2e/pages/components/login-modal.ts`, -- `tests/e2e/pages/my-account.ts`, -- `tests/e2e/utils/network.ts`. diff --git a/packages/core/docs/commercetools/reference/migrate/index.md b/packages/core/docs/commercetools/reference/migrate/index.md deleted file mode 100644 index e9e1a0ee1c..0000000000 --- a/packages/core/docs/commercetools/reference/migrate/index.md +++ /dev/null @@ -1,9 +0,0 @@ -# Migration guides - -- [1.4.0](./1.4.0/index.md) -- [1.3.3](./1.3.3/index.md) -- [1.3.2](./1.3.2/index.md) -- [1.3.0](./1.3.0/index.md) -- [1.2.0](./1.2.0/index.md) -- [1.2.0-rc.3](./1.2.0-rc.3/index.md) -- [1.2.0-rc.2](./1.2.0-rc.2/index.md) diff --git a/packages/core/docs/package.json b/packages/core/docs/package.json index 7d23d30f71..e81d7aa52a 100644 --- a/packages/core/docs/package.json +++ b/packages/core/docs/package.json @@ -6,21 +6,16 @@ "license": "MIT", "scripts": { "dev": "vuepress dev", - "build": "yarn build:core && yarn build:ct && NODE_OPTIONS=--max_old_space_size=8192 vuepress build", + "build": "yarn build:core && NODE_OPTIONS=--max_old_space_size=8192 vuepress build", "core-cache-ref": "cd ../cache && api-extractor run --local", "core-core-ref": "cd ../core && api-extractor run --local", "core-middleware-ref": "cd ../middleware && api-extractor run --local", "core-ref-md": "api-documenter markdown --i reference/api --o reference/api", - "build:core": "yarn core-cache-ref && yarn core-core-ref && yarn core-middleware-ref && yarn core-ref-md", - "ct-api-ref": "cd ../../commercetools/api-client && api-extractor run --local", - "ct-comp-ref": "cd ../../commercetools/composables && api-extractor run --local", - "ct-ref-md": "api-documenter markdown --i commercetools/reference/api --o commercetools/reference/api", - "build:ct": "yarn ct-api-ref && yarn ct-comp-ref && yarn ct-ref-md" + "build:core": "yarn core-cache-ref && yarn core-core-ref && yarn core-middleware-ref && yarn core-ref-md" }, "devDependencies": { "@microsoft/api-documenter": "^7.13.7", "@microsoft/api-extractor": "^7.18.3", - "@vue-storefront/commercetools-api": "~1.2.0", "@vuepress/plugin-active-header-links": "^1.8.2", "@vuepress/plugin-back-to-top": "^1.8.2", "@vuepress/plugin-medium-zoom": "^1.8.2", diff --git a/yarn.lock b/yarn.lock index fa0f9d070f..41d5f50573 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,7 +9,7 @@ dependencies: "@types/throttle-debounce" "^2.1.0" -"@apollo/client@^3.2.5", "@apollo/client@^3.2.9", "@apollo/client@^3.3.21": +"@apollo/client@^3.2.5", "@apollo/client@^3.3.21": version "3.5.5" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.5.5.tgz#ce331403ee5f099e595430890f9b510c8435c932" integrity sha512-EiQstc8VjeqosS2h21bwY9fhL3MCRRmACtRrRh2KYpp9vkDyx5pUfMnN3swgiBVYw1twdXg9jHmyZa1gZlvlog== @@ -1099,7 +1099,7 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@commercetools/sdk-auth@^3.0.1", "@commercetools/sdk-auth@^3.0.12": +"@commercetools/sdk-auth@^3.0.12": version "3.0.12" resolved "https://registry.yarnpkg.com/@commercetools/sdk-auth/-/sdk-auth-3.0.12.tgz#6b6930f697f2311beeb909677df08bd5c7f523b8" integrity sha512-t7F71oNK+A23hLGzlEYnjTtqhxDUFST8f4l9YAf7mmVCA9Qeu668pDvJ/kf5gVLMQVazEQM8Vjy4JyyeQctEkQ== @@ -4234,25 +4234,6 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@vue-storefront/commercetools-api@~1.2.0": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue-storefront/commercetools-api/-/commercetools-api-1.2.4.tgz#c85fb21dfc931143f1516f64aeac003a7de38a47" - integrity sha512-rHV3wXfIT85Si5po+hwrnUnP5KWtw7SbNt7akxMDWOSbkg3z+tMAhDDU9lwVOFIvsCiOdBmxty/gQFPbdFrcXw== - dependencies: - "@apollo/client" "^3.2.9" - "@commercetools/sdk-auth" "^3.0.1" - "@vue-storefront/core" "^2.3.4" - apollo-cache-inmemory "^1.6.6" - apollo-client "^2.6.10" - apollo-link "^1.2.14" - apollo-link-context "^1.0.20" - apollo-link-error "^1.1.13" - apollo-link-http "^1.5.17" - apollo-link-retry "^2.2.16" - graphql "^14.5.8" - graphql-tag "^2.10.1" - isomorphic-fetch "^2.2.1" - "@vue-storefront/theme-utilities@^0.1.3": version "0.1.7" resolved "https://registry.yarnpkg.com/@vue-storefront/theme-utilities/-/theme-utilities-0.1.7.tgz#0f54ad97daa27a9c2b674c205d729d27b1d9adbe" @@ -10148,7 +10129,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -graphql-tag@^2.10.1, graphql-tag@^2.12.0, graphql-tag@^2.12.3, graphql-tag@^2.12.5, graphql-tag@^2.2.2: +graphql-tag@^2.12.0, graphql-tag@^2.12.3, graphql-tag@^2.12.5, graphql-tag@^2.2.2: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== @@ -10193,13 +10174,6 @@ graphql-ws@^4.4.1: resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.9.0.tgz#5cfd8bb490b35e86583d8322f5d5d099c26e365c" integrity sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag== -graphql@^14.5.8: - version "14.7.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" - integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== - dependencies: - iterall "^1.2.2" - graphql@^15.5.1: version "15.7.2" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" @@ -11496,7 +11470,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -11607,14 +11581,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isomorphic-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" @@ -11747,7 +11713,7 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterall@^1.2.1, iterall@^1.2.2: +iterall@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== @@ -14127,14 +14093,6 @@ node-fetch@2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-fetch@^2.5.0, node-fetch@^2.6.1: version "2.6.6" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" @@ -19938,7 +19896,7 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0, whatwg-fetch@^3.4.1: +whatwg-fetch@^3.4.1: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== From eda93ffac5121d72c1642ec95bc3119f4984f955 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 3 Jan 2022 10:57:21 +0100 Subject: [PATCH 069/151] docs: fix `Edit this page` links (#6587) --- packages/core/docs/.vuepress/config.js | 2 +- packages/core/docs/getting-started/project-structure.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/docs/.vuepress/config.js b/packages/core/docs/.vuepress/config.js index 089705f450..acf4772aae 100644 --- a/packages/core/docs/.vuepress/config.js +++ b/packages/core/docs/.vuepress/config.js @@ -103,7 +103,7 @@ module.exports = { repo: 'https://github.com/vuestorefront/vue-storefront/', editLinks: true, docsDir: 'packages/core/docs', - docsBranch: 'release/next', + docsBranch: 'main', editLinkText: 'Edit this page', logo: '/vsf-full.svg', sidebarDepth: 0, diff --git a/packages/core/docs/getting-started/project-structure.md b/packages/core/docs/getting-started/project-structure.md index 92d932c834..37c6a834bf 100644 --- a/packages/core/docs/getting-started/project-structure.md +++ b/packages/core/docs/getting-started/project-structure.md @@ -46,4 +46,4 @@ After the `nuxt.config.js` file, the next step is the `middleware.config.js` fil ## What's next -With a basic understanding of the project structure, we can learn about [Layouts and Routing](./layout-and-routing.html). We will show what routes come predefined in every Vue Storefront project and how to register custom ones. +With a basic understanding of the project structure, we can learn about [Layouts and Routing](./layouts-and-routing.html). We will show what routes come predefined in every Vue Storefront project and how to register custom ones. From cf78686ad9ca2634cf0e2f4f613992e099cca078 Mon Sep 17 00:00:00 2001 From: Piotr Grzywa Date: Wed, 5 Jan 2022 10:45:25 +0100 Subject: [PATCH 070/151] fix(os-203): fixed adding custom router.base property breaks api calls (#6526) (#6592) Co-authored-by: Piotr Grzywa Co-authored-by: Piotr Grzywa --- packages/boilerplate/theme/nuxt.config.js | 2 +- packages/core/core/src/utils/helpers/index.ts | 21 ++++++++++ packages/core/core/src/utils/index.ts | 4 +- .../core/core/src/utils/nuxt/_proxyUtils.ts | 8 ++-- packages/core/docs/changelog/6526.js | 8 ++++ packages/core/docs/getting-started/theme.md | 39 +++++++++++++++++ .../theme/components/AppFooter.vue | 8 +++- .../theme/components/AppHeader.vue | 6 ++- .../theme/components/CartSidebar.vue | 6 ++- .../theme/components/InstagramFeed.vue | 22 ++++++---- .../theme/components/LocaleSelector.vue | 8 ++-- .../theme/components/MobileStoreBanner.vue | 12 ++++-- .../theme/components/RelatedProducts.vue | 6 ++- .../theme/components/SearchResults.vue | 10 +++-- .../theme/components/WishlistSidebar.vue | 6 ++- .../nuxt-theme-module/theme/layouts/error.vue | 6 ++- .../theme/pages/Category.vue | 8 ++-- .../theme/pages/Checkout/Payment.vue | 4 +- .../theme/pages/Checkout/ThankYou.vue | 6 ++- .../nuxt-theme-module/theme/pages/Home.vue | 42 ++++++++++--------- .../nuxt-theme-module/theme/pages/Product.vue | 7 ++-- 21 files changed, 175 insertions(+), 64 deletions(-) create mode 100644 packages/core/core/src/utils/helpers/index.ts create mode 100644 packages/core/docs/changelog/6526.js diff --git a/packages/boilerplate/theme/nuxt.config.js b/packages/boilerplate/theme/nuxt.config.js index d29a9aa83b..b6f74cf314 100644 --- a/packages/boilerplate/theme/nuxt.config.js +++ b/packages/boilerplate/theme/nuxt.config.js @@ -19,7 +19,7 @@ export default { { rel: 'icon', type: 'image/x-icon', - href: '/favicon.ico' + href: './favicon.ico' }, { rel: 'preconnect', diff --git a/packages/core/core/src/utils/helpers/index.ts b/packages/core/core/src/utils/helpers/index.ts new file mode 100644 index 0000000000..9cf7230659 --- /dev/null +++ b/packages/core/core/src/utils/helpers/index.ts @@ -0,0 +1,21 @@ +import { useRouter } from '@nuxtjs/composition-api'; + +/** + * Adds prefix with base path configured in router.base to provided url + * @param {string} path - url to which base path will be added + * @returns Relative path prefixed with router.base or not modified absolute path (it needs start from http or https) + */ +function addBasePath (path: string): string { + const pattern = /^((http|https):\/\/)/; + + if (pattern.test(path)) { + return path; + } + + const basePath = (useRouter().options.base).slice(0, -1); + return `${basePath}${path}`; +} + +export { + addBasePath +}; diff --git a/packages/core/core/src/utils/index.ts b/packages/core/core/src/utils/index.ts index 38575cb989..439822455d 100644 --- a/packages/core/core/src/utils/index.ts +++ b/packages/core/core/src/utils/index.ts @@ -4,6 +4,7 @@ import { onSSR, vsfRef, configureSSR } from './ssr'; import { sharedRef } from './shared'; import wrap from './wrap'; import { Logger, registerLogger } from './logger'; +import { addBasePath } from './helpers'; import mask from './logger/mask'; import { useVSFContext, configureContext, generateContext } from './context'; import { integrationPlugin } from './nuxt'; @@ -24,5 +25,6 @@ export { configureFactoryParams, generateContext, integrationPlugin, - i18nRedirectsUtil + i18nRedirectsUtil, + addBasePath }; diff --git a/packages/core/core/src/utils/nuxt/_proxyUtils.ts b/packages/core/core/src/utils/nuxt/_proxyUtils.ts index 69fb6d9d96..093830e61e 100644 --- a/packages/core/core/src/utils/nuxt/_proxyUtils.ts +++ b/packages/core/core/src/utils/nuxt/_proxyUtils.ts @@ -9,14 +9,14 @@ interface CreateProxiedApiParams { tag: string; } -export const getBaseUrl = (req: IncomingMessage) => { - if (!req) return '/api/'; +export const getBaseUrl = (req: IncomingMessage, basePath: string | undefined = '/'): string => { + if (!req) return `${basePath}api/`; const { headers } = req; const isHttps = require('is-https')(req); const scheme = isHttps ? 'https' : 'http'; const host = headers['x-forwarded-host'] || headers.host; - return `${scheme}://${host}/api/`; + return `${scheme}://${host}${basePath}api/`; }; export const createProxiedApi = ({ givenApi, client, tag }: CreateProxiedApiParams) => new Proxy(givenApi, { @@ -39,7 +39,7 @@ export const getIntegrationConfig = (context: NuxtContext, configuration: any) = const cookie = getCookies(context); const initialConfig = merge({ axios: { - baseURL: getBaseUrl(context?.req), + baseURL: getBaseUrl(context?.req, context?.base), headers: { ...(cookie ? { cookie } : {}) } diff --git a/packages/core/docs/changelog/6526.js b/packages/core/docs/changelog/6526.js new file mode 100644 index 0000000000..7616276fc5 --- /dev/null +++ b/packages/core/docs/changelog/6526.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fixed adding custom router.base property breaks api calls', + link: 'https://github.com/vuestorefront/vue-storefront/issues/6505', + isBreaking: false, + breakingChanges: [], + author: 'Piotr Grzywa', + linkToGitHubAccount: 'https://github.com/PiotrGrzywa' +}; diff --git a/packages/core/docs/getting-started/theme.md b/packages/core/docs/getting-started/theme.md index dbebd6a25b..63ed86e355 100644 --- a/packages/core/docs/getting-started/theme.md +++ b/packages/core/docs/getting-started/theme.md @@ -33,6 +33,45 @@ These two components come from the `vue-lazy-hydration` library and are wrappers If you encounter one of these components, you should refer to the direct **child** component. +### Router base property + +There is an option to set base URL for your store. + +This can be useful if you need to serve your store as a different context root, from within a bigger Web site. + +Add following configuration to `nuxt.config.js` +```javascript +// nuxt.config.js + +export default { + router: { + base: "/myShop/" + } +}; +``` + +:::warning Be careful +When using base router property you need to wrap all assets relative links in addBasePath(), this will automatically add base path to them and prevent redirects. (example below) +::: + + + +```javascript +//use addBasePath on relative url + + + +//In theme file import addBasePath from vue-storefront core +import { addBasePath } from '@vue-storefront/core'; + +setup() { + return { + // if you want to use it in template you need to exprt it + addBasePath + } +} +``` + ## Updating styles There are few ways of updating the default styles. Below we describe the most optimal ways for the most common cases. diff --git a/packages/core/nuxt-theme-module/theme/components/AppFooter.vue b/packages/core/nuxt-theme-module/theme/components/AppFooter.vue index 89a0aabe3b..615af0b9cb 100644 --- a/packages/core/nuxt-theme-module/theme/components/AppFooter.vue +++ b/packages/core/nuxt-theme-module/theme/components/AppFooter.vue @@ -50,7 +50,7 @@

@@ -58,6 +58,7 @@ diff --git a/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue b/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue index ffa192e5b5..ca9e98fd79 100644 --- a/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue +++ b/packages/core/nuxt-theme-module/theme/components/RelatedProducts.vue @@ -8,7 +8,7 @@ '; import { computed } from '@vue/composition-api'; +import { addBasePath } from '@vue-storefront/core'; export default { name: 'RelatedProducts', @@ -64,7 +65,8 @@ export default { isInWishlist, removeProductFromWishlist, addItemToCart, - isInCart + isInCart, + addBasePath }; } }; diff --git a/packages/core/nuxt-theme-module/theme/components/SearchResults.vue b/packages/core/nuxt-theme-module/theme/components/SearchResults.vue index 0855b13fb5..6901bf22f5 100644 --- a/packages/core/nuxt-theme-module/theme/components/SearchResults.vue +++ b/packages/core/nuxt-theme-module/theme/components/SearchResults.vue @@ -42,7 +42,7 @@ :regular-price="$n(productGetters.getPrice(product).regular, 'currency')" :score-rating="productGetters.getAverageRating(product)" :reviews-count="7" - :image="productGetters.getCoverImage(product)" + :image="addBasePath(productGetters.getCoverImage(product))" :alt="productGetters.getName(product)" :title="productGetters.getName(product)" :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" @@ -59,7 +59,7 @@ :regular-price="$n(productGetters.getPrice(product).regular, 'currency')" :score-rating="productGetters.getAverageRating(product)" :reviews-count="7" - :image="productGetters.getCoverImage(product)" + :image="addBasePath(productGetters.getCoverImage(product))" :alt="productGetters.getName(product)" :title="productGetters.getName(product)" :link="localePath(`/p/${productGetters.getId(product)}/${productGetters.getSlug(product)}`)" @@ -73,7 +73,7 @@
- + @@ -100,6 +100,7 @@ import { } from '@storefront-ui/vue'; import { ref, watch, computed } from '@nuxtjs/composition-api'; import { useWishlist, wishlistGetters, productGetters } from '<%= options.generate.replace.composables %>'; +import { addBasePath } from '@vue-storefront/core'; export default { name: 'SearchResults', @@ -155,7 +156,8 @@ export default { categories, addItemToWishlist, isInWishlist, - removeProductFromWishlist + removeProductFromWishlist, + addBasePath }; } }; diff --git a/packages/core/nuxt-theme-module/theme/components/WishlistSidebar.vue b/packages/core/nuxt-theme-module/theme/components/WishlistSidebar.vue index 1f51677282..e11f691dfa 100644 --- a/packages/core/nuxt-theme-module/theme/components/WishlistSidebar.vue +++ b/packages/core/nuxt-theme-module/theme/components/WishlistSidebar.vue @@ -23,7 +23,7 @@
- + import { useRouter } from '@nuxtjs/composition-api'; import { SfButton, SfImage, SfHeading } from '@storefront-ui/vue'; +import { addBasePath } from '@vue-storefront/core'; export default { name: 'ErrorLayout', @@ -36,7 +37,8 @@ export default { const router = useRouter(); return { - router + router, + addBasePath }; } }; diff --git a/packages/core/nuxt-theme-module/theme/pages/Category.vue b/packages/core/nuxt-theme-module/theme/pages/Category.vue index 1a35353941..2108fd4368 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Category.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Category.vue @@ -90,7 +90,7 @@ :key="productGetters.getSlug(product)" :style="{ '--index': i }" :title="productGetters.getName(product)" - :image="productGetters.getCoverImage(product)" + :image="addBasePath(productGetters.getCoverImage(product))" :regular-price="$n(productGetters.getPrice(product).regular, 'currency')" :special-price="productGetters.getPrice(product).special && $n(productGetters.getPrice(product).special, 'currency')" :max-rating="5" @@ -119,7 +119,7 @@ :style="{ '--index': i }" :title="productGetters.getName(product)" :description="productGetters.getDescription(product)" - :image="productGetters.getCoverImage(product)" + :image="addBasePath(productGetters.getCoverImage(product))" :regular-price="$n(productGetters.getPrice(product).regular, 'currency')" :special-price="productGetters.getPrice(product).special && $n(productGetters.getPrice(product).special, 'currency')" :max-rating="5" @@ -217,6 +217,7 @@ import { onSSR } from '@vue-storefront/core'; import LazyHydrate from 'vue-lazy-hydration'; import cacheControl from './../helpers/cacheControl'; import CategoryPageHeader from '~/components/CategoryPageHeader'; +import { addBasePath } from '@vue-storefront/core'; // TODO(addToCart qty, horizontal): https://github.com/vuestorefront/storefront-ui/issues/1606 export default { @@ -283,7 +284,8 @@ export default { isInWishlist, addToCart, isInCart, - productsQuantity + productsQuantity, + addBasePath }; }, components: { diff --git a/packages/core/nuxt-theme-module/theme/pages/Checkout/Payment.vue b/packages/core/nuxt-theme-module/theme/pages/Checkout/Payment.vue index a17caf28fe..04cefdbac9 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Checkout/Payment.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Checkout/Payment.vue @@ -23,7 +23,7 @@ class="table__row" > - +
{{ cartGetters.getItemName(product) }}
@@ -111,6 +111,7 @@ import { import { onSSR } from '@vue-storefront/core'; import { ref, computed, useRouter } from '@nuxtjs/composition-api'; import { useMakeOrder, useCart, cartGetters, orderGetters } from '<%= options.generate.replace.composables %>'; +import { addBasePath } from '@vue-storefront/core'; export default { name: 'ReviewOrder', @@ -148,6 +149,7 @@ export default { }; return { + addBasePath, router, isPaymentReady, terms, diff --git a/packages/core/nuxt-theme-module/theme/pages/Checkout/ThankYou.vue b/packages/core/nuxt-theme-module/theme/pages/Checkout/ThankYou.vue index fd02fb4567..877eca5407 100644 --- a/packages/core/nuxt-theme-module/theme/pages/Checkout/ThankYou.vue +++ b/packages/core/nuxt-theme-module/theme/pages/Checkout/ThankYou.vue @@ -5,8 +5,8 @@ class="banner" title="Thank you for your order!" :image="{ - mobile: '/thankyou/bannerM.png', - desktop: '/thankyou/bannerD.png', + mobile: addBasePath('/thankyou/bannerM.png'), + desktop: addBasePath('/thankyou/bannerD.png'), }" >