From 0afe686fe981345ce3153f80b2ceb66eccf10784 Mon Sep 17 00:00:00 2001
From: Luis Alvarez D <luis@vercel.com>
Date: Tue, 1 Feb 2022 14:14:05 -0500
Subject: [PATCH 1/7] Monorepo with Turborepo (#651)

* Moved everything

* Figuring out how to make imports work

* Updated exports

* Added missing exports

* Added @vercel/commerce-local to `site`

* Updated commerce config

* Updated exports and commerce config

* Updated commerce hoc

* Fixed exports in local

* Added publish config

* Updated imports in site

* It's actually working

* Don't use debugger in dev for better speeds

* Improved DX when editing packages

* Set up eslint with husky

* Updated prettier config

* Added prettier setup to every package

* Moved bigcommerce

* Moved Bigcommerce to src and package updates

* Updated setup of bigcommerce

* Moved definitions script

* Moved commercejs

* Move to src

* Fixed types in commercejs

* Moved kibocommerce

* Moved kibocommerce to src

* Added package/tsconfig to kibocommerce

* Fixed imports and other things

* Moved ordercloud

* Moved ordercloud to src

* Fixed imports

* Added missing prettier files

* Moved Saleor

* Moved Saleor to src

* Fixed imports

* Replaced all imports to @commerce

* Added prettierignore/rc to all providers

* Moved shopify to src

* Build shopify in packages

* Moved Spree

* Moved spree to src

* Updated spree

* Moved swell

* Moved swell to src

* Fixed type imports in swell

* Moved Vendure to packages

* Moved vendure to src

* Fixed imports in vendure

* Added codegen to saleor

* Updated codegen setup for shopify

* Added codegen to vendure

* Added codegen to kibocommerce

* Added all packages to site's deps

* Updated codegen setup in bigcommerce

* Minor fixes

* Updated providers' names in site

* Updated packages based on Bel's changes

* Updated turbo to latest

* Fixed ts complains

* Set npm engine in root

* New lockfile install

* remove engines

* Regen lockfile

* Switched from npm to yarn

* Updated typesVersions in all packages

* Moved dep

* Updated SWR to the just released 1.2.0

* Removed "isolatedModules" from packages

* Updated list of providers and default

* Updated swell declaration

* Removed next import from kibocommerce

* Added COMMERCE_PROVIDER log

* Added another log

* Updated turbo config

* Updated docs

* Removed test logs

Co-authored-by: Jared Palmer <jared@jaredpalmer.com>
---
 .gitignore                                    |    14 +-
 .prettierignore                               |     5 +-
 .prettierrc                                   |    10 +-
 .vscode/extensions.json                       |     7 +-
 README.md                                     |    22 +-
 framework/bigcommerce/product/use-price.tsx   |     2 -
 framework/bigcommerce/types/checkout.ts       |     1 -
 framework/bigcommerce/types/common.ts         |     1 -
 framework/bigcommerce/types/customer.ts       |     5 -
 framework/bigcommerce/types/login.ts          |     8 -
 framework/bigcommerce/types/logout.ts         |     1 -
 framework/bigcommerce/types/product.ts        |     1 -
 framework/bigcommerce/types/signup.ts         |     1 -
 framework/commerce/config.js                  |    92 -
 framework/commercejs/product/use-price.tsx    |     2 -
 framework/commercejs/types/common.ts          |     1 -
 framework/commercejs/types/customer.ts        |     1 -
 framework/commercejs/types/logout.ts          |     1 -
 framework/commercejs/types/page.ts            |     1 -
 framework/commercejs/types/signup.ts          |     1 -
 framework/commercejs/types/wishlist.ts        |     1 -
 .../kibocommerce/checkout/use-checkout.tsx    |    14 -
 .../customer/address/use-add-item.tsx         |    15 -
 .../customer/card/use-add-item.tsx            |    15 -
 framework/kibocommerce/product/use-price.tsx  |     2 -
 framework/kibocommerce/types/login.ts         |     8 -
 framework/kibocommerce/types/logout.ts        |     1 -
 framework/kibocommerce/types/signup.ts        |     1 -
 framework/local/product/use-price.tsx         |     2 -
 framework/ordercloud/product/use-price.tsx    |     2 -
 .../saleor/customer/address/use-add-item.tsx  |    15 -
 .../saleor/customer/card/use-add-item.tsx     |    15 -
 framework/saleor/product/use-price.tsx        |     2 -
 .../shopify/customer/address/use-add-item.tsx |    15 -
 .../shopify/customer/card/use-add-item.tsx    |    15 -
 framework/shopify/product/use-price.tsx       |     2 -
 framework/shopify/types/checkout.ts           |     1 -
 framework/shopify/types/common.ts             |     1 -
 framework/shopify/types/customer.ts           |     5 -
 framework/shopify/types/login.ts              |     8 -
 framework/shopify/types/logout.ts             |     1 -
 framework/shopify/types/product.ts            |     1 -
 framework/shopify/types/signup.ts             |     1 -
 framework/shopify/types/site.ts               |     1 -
 framework/shopify/types/wishlist.ts           |     1 -
 framework/spree/product/use-price.tsx         |     2 -
 framework/swell/checkout/use-checkout.tsx     |    14 -
 .../swell/customer/address/use-add-item.tsx   |    15 -
 .../swell/customer/card/use-add-item.tsx      |    15 -
 framework/swell/product/use-price.tsx         |     2 -
 framework/swell/types/cart.ts                 |     1 -
 framework/swell/types/checkout.ts             |     1 -
 framework/swell/types/common.ts               |     1 -
 framework/swell/types/customer.ts             |     1 -
 framework/swell/types/login.ts                |    11 -
 framework/swell/types/logout.ts               |     1 -
 framework/swell/types/page.ts                 |     1 -
 framework/swell/types/product.ts              |     1 -
 framework/swell/types/signup.ts               |     1 -
 framework/swell/types/site.ts                 |     1 -
 framework/swell/types/wishlist.ts             |     1 -
 framework/vendure/checkout/use-checkout.tsx   |    14 -
 .../vendure/customer/address/use-add-item.tsx |    15 -
 .../vendure/customer/card/use-add-item.tsx    |    15 -
 framework/vendure/product/use-price.tsx       |     2 -
 framework/vendure/types/cart.ts               |     1 -
 framework/vendure/types/checkout.ts           |     1 -
 framework/vendure/types/common.ts             |     1 -
 framework/vendure/types/customer.ts           |     1 -
 framework/vendure/types/login.ts              |    12 -
 framework/vendure/types/logout.ts             |     1 -
 framework/vendure/types/page.ts               |     1 -
 framework/vendure/types/product.ts            |     1 -
 framework/vendure/types/signup.ts             |     1 -
 framework/vendure/types/site.ts               |     1 -
 framework/vendure/types/wishlist.ts           |     1 -
 package-lock.json                             | 17895 ----------------
 package.json                                  |   163 +-
 .../bigcommerce/.env.template                 |     0
 packages/bigcommerce/.prettierignore          |     2 +
 packages/bigcommerce/.prettierrc              |     6 +
 {framework => packages}/bigcommerce/README.md |     2 +-
 .../bigcommerce/codegen.json                  |     6 +-
 packages/bigcommerce/package.json             |    80 +
 .../bigcommerce/schema.d.ts                   |     0
 .../bigcommerce/schema.graphql                |     0
 .../scripts/generate-definitions.js           |     0
 .../src}/api/definitions/catalog.ts           |     0
 .../src}/api/definitions/store-content.ts     |     0
 .../src}/api/definitions/wishlist.ts          |     0
 .../src}/api/endpoints/cart/add-item.ts       |     0
 .../src}/api/endpoints/cart/get-cart.ts       |     0
 .../src}/api/endpoints/cart/index.ts          |     4 +-
 .../src}/api/endpoints/cart/remove-item.ts    |     0
 .../src}/api/endpoints/cart/update-item.ts    |     0
 .../catalog/products/get-products.ts          |     2 +-
 .../api/endpoints/catalog/products/index.ts   |     4 +-
 .../api/endpoints/checkout/get-checkout.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     4 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../customer/get-logged-in-customer.ts        |     2 +-
 .../src}/api/endpoints/customer/index.ts      |     4 +-
 .../src}/api/endpoints/login/index.ts         |     4 +-
 .../src}/api/endpoints/login/login.ts         |     2 +-
 .../src}/api/endpoints/logout/index.ts        |     4 +-
 .../src}/api/endpoints/logout/logout.ts       |     0
 .../src}/api/endpoints/signup/index.ts        |     4 +-
 .../src}/api/endpoints/signup/signup.ts       |     0
 .../src}/api/endpoints/wishlist/add-item.ts   |     0
 .../api/endpoints/wishlist/get-wishlist.ts    |     0
 .../src}/api/endpoints/wishlist/index.ts      |     4 +-
 .../api/endpoints/wishlist/remove-item.ts     |     0
 .../src}/api/fragments/category-tree.ts       |     0
 .../bigcommerce/src}/api/fragments/product.ts |     0
 .../bigcommerce/src}/api/index.ts             |     2 +-
 .../src}/api/operations/get-all-pages.ts      |     2 +-
 .../api/operations/get-all-product-paths.ts   |     4 +-
 .../src}/api/operations/get-all-products.ts   |     4 +-
 .../api/operations/get-customer-wishlist.ts   |     2 +-
 .../src}/api/operations/get-page.ts           |     2 +-
 .../src}/api/operations/get-product.ts        |     4 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../bigcommerce/src}/api/operations/login.ts  |     4 +-
 .../src}/api/utils/concat-cookie.ts           |     0
 .../bigcommerce/src}/api/utils/errors.ts      |     0
 .../src}/api/utils/fetch-graphql-api.ts       |     4 +-
 .../src}/api/utils/fetch-store-api.ts         |     0
 .../bigcommerce/src}/api/utils/fetch.ts       |     0
 .../src}/api/utils/filter-edges.ts            |     0
 .../src}/api/utils/get-cart-cookie.ts         |     0
 .../src}/api/utils/get-customer-id.ts         |     2 +-
 .../bigcommerce/src}/api/utils/parse-item.ts  |     0
 .../src}/api/utils/set-product-locale-meta.ts |     0
 .../bigcommerce/src}/api/utils/types.ts       |     0
 .../bigcommerce/src}/auth/index.ts            |     0
 .../bigcommerce/src}/auth/use-login.tsx       |     6 +-
 .../bigcommerce/src}/auth/use-logout.tsx      |     4 +-
 .../bigcommerce/src}/auth/use-signup.tsx      |     6 +-
 .../bigcommerce/src}/cart/index.ts            |     0
 .../bigcommerce/src}/cart/use-add-item.tsx    |     8 +-
 .../bigcommerce/src}/cart/use-cart.tsx        |     6 +-
 .../bigcommerce/src}/cart/use-remove-item.tsx |     8 +-
 .../bigcommerce/src}/cart/use-update-item.tsx |     8 +-
 .../src}/checkout/use-checkout.tsx            |     4 +-
 .../bigcommerce/src}/commerce.config.json     |     0
 .../src/customer/address}/use-add-item.tsx    |     4 +-
 .../src/customer/card}/use-add-item.tsx       |     4 +-
 .../bigcommerce/src}/customer/index.ts        |     0
 .../src}/customer/use-customer.tsx            |     4 +-
 .../bigcommerce/src}/fetcher.ts               |     4 +-
 .../bigcommerce/src}/index.tsx                |     2 +-
 .../bigcommerce/src}/lib/get-slug.ts          |     0
 .../bigcommerce/src}/lib/immutability.ts      |     0
 .../bigcommerce/src}/lib/normalize.ts         |     0
 .../bigcommerce/src/next.config.cjs           |     0
 .../bigcommerce/src}/product/index.ts         |     0
 .../bigcommerce/src/product/use-price.tsx     |     2 +
 .../bigcommerce/src}/product/use-search.tsx   |     4 +-
 .../bigcommerce/src}/provider.ts              |     0
 .../bigcommerce/src}/types/cart.ts            |     4 +-
 packages/bigcommerce/src/types/checkout.ts    |     1 +
 packages/bigcommerce/src/types/common.ts      |     1 +
 packages/bigcommerce/src/types/customer.ts    |     5 +
 .../bigcommerce/src}/types/index.ts           |     0
 packages/bigcommerce/src/types/login.ts       |     8 +
 packages/bigcommerce/src/types/logout.ts      |     1 +
 .../bigcommerce/src}/types/page.ts            |     4 +-
 packages/bigcommerce/src/types/product.ts     |     1 +
 packages/bigcommerce/src/types/signup.ts      |     1 +
 .../bigcommerce/src}/types/site.ts            |     6 +-
 .../bigcommerce/src}/types/wishlist.ts        |     4 +-
 .../bigcommerce/src}/wishlist/index.ts        |     0
 .../src}/wishlist/use-add-item.tsx            |     6 +-
 .../src}/wishlist/use-remove-item.tsx         |     6 +-
 .../src}/wishlist/use-wishlist.tsx            |     4 +-
 packages/bigcommerce/tsconfig.json            |    21 +
 packages/commerce/.prettierignore             |     2 +
 packages/commerce/.prettierrc                 |     6 +
 {framework => packages}/commerce/README.md    |     0
 packages/commerce/fixup.mjs                   |     5 +
 .../commerce/new-provider.md                  |   170 +-
 packages/commerce/package.json                |    76 +
 .../commerce/src}/api/endpoints/cart.ts       |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../commerce/src}/api/endpoints/checkout.ts   |     0
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../commerce/src}/api/endpoints/login.ts      |     0
 .../commerce/src}/api/endpoints/logout.ts     |     0
 .../commerce/src}/api/endpoints/signup.ts     |     0
 .../commerce/src}/api/endpoints/wishlist.ts   |     0
 .../commerce/src}/api/index.ts                |     0
 .../commerce/src}/api/operations.ts           |     0
 .../commerce/src}/api/utils/errors.ts         |     0
 .../src}/api/utils/is-allowed-method.ts       |     0
 .../src}/api/utils/is-allowed-operation.ts    |     0
 .../commerce/src}/api/utils/types.ts          |     0
 .../commerce/src}/auth/use-login.tsx          |     0
 .../commerce/src}/auth/use-logout.tsx         |     0
 .../commerce/src}/auth/use-signup.tsx         |     0
 .../commerce/src}/cart/use-add-item.tsx       |     0
 .../commerce/src}/cart/use-cart.tsx           |     0
 .../commerce/src}/cart/use-remove-item.tsx    |     0
 .../commerce/src}/cart/use-update-item.tsx    |     0
 .../commerce/src}/checkout/use-checkout.ts    |     0
 .../src}/checkout/use-submit-checkout.tsx     |     0
 packages/commerce/src/config.cjs              |    31 +
 .../src}/customer/address/use-add-item.tsx    |     0
 .../src}/customer/address/use-addresses.tsx   |     0
 .../src}/customer/address/use-remove-item.tsx |     0
 .../src}/customer/address/use-update-item.tsx |     0
 .../src}/customer/card/use-add-item.tsx       |     0
 .../commerce/src}/customer/card/use-cards.tsx |     0
 .../src}/customer/card/use-remove-item.tsx    |     0
 .../src}/customer/card/use-update-item.tsx    |     0
 .../commerce/src}/customer/use-customer.tsx   |     0
 .../commerce/src}/index.tsx                   |     2 +-
 .../commerce/src}/product/use-price.tsx       |     0
 .../commerce/src}/product/use-search.tsx      |     0
 .../commerce/src}/types/cart.ts               |     0
 .../commerce/src}/types/checkout.ts           |     0
 .../commerce/src}/types/common.ts             |     0
 .../commerce/src}/types/customer/address.ts   |     0
 .../commerce/src}/types/customer/card.ts      |     0
 .../commerce/src}/types/customer/index.ts     |     0
 .../commerce/src}/types/index.ts              |     0
 .../commerce/src}/types/login.ts              |     0
 .../commerce/src}/types/logout.ts             |     0
 .../commerce/src}/types/page.ts               |     0
 .../commerce/src}/types/product.ts            |     0
 .../commerce/src}/types/signup.ts             |     0
 .../commerce/src}/types/site.ts               |     0
 .../commerce/src}/types/wishlist.ts           |     0
 .../commerce/src}/utils/default-fetcher.ts    |     0
 .../commerce/src}/utils/define-property.ts    |     0
 .../commerce/src}/utils/errors.ts             |     0
 .../commerce/src}/utils/types.ts              |     0
 .../commerce/src}/utils/use-data.tsx          |     0
 .../commerce/src}/utils/use-hook.ts           |     0
 .../commerce/src}/wishlist/index.ts           |     0
 .../commerce/src}/wishlist/use-add-item.tsx   |     0
 .../src}/wishlist/use-remove-item.tsx         |     0
 .../commerce/src}/wishlist/use-wishlist.tsx   |     0
 packages/commerce/tsconfig.json               |    21 +
 .../commercejs/.env.template                  |     0
 packages/commercejs/.prettierignore           |     2 +
 packages/commercejs/.prettierrc               |     6 +
 {framework => packages}/commercejs/README.md  |     2 +-
 packages/commercejs/global.d.ts               |     1 +
 packages/commercejs/package.json              |    73 +
 .../src}/api/endpoints/cart/index.ts          |     0
 .../src}/api/endpoints/catalog/index.ts       |     0
 .../api/endpoints/catalog/products/index.ts   |     0
 .../api/endpoints/checkout/get-checkout.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     4 +-
 .../api/endpoints/checkout/submit-checkout.ts |     4 +-
 .../api/endpoints/customer/address/index.ts   |     0
 .../src}/api/endpoints/customer/card/index.ts |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../src}/api/endpoints/login/index.ts         |     4 +-
 .../src}/api/endpoints/login/login.ts         |     0
 .../src}/api/endpoints/logout/index.ts        |     0
 .../src}/api/endpoints/signup/index.ts        |     0
 .../src}/api/endpoints/wishlist/index.tsx     |     0
 .../commercejs/src}/api/index.ts              |     4 +-
 .../src}/api/operations/get-all-pages.ts      |     0
 .../api/operations/get-all-product-paths.ts   |     2 +-
 .../src}/api/operations/get-all-products.ts   |     2 +-
 .../src}/api/operations/get-page.ts           |     0
 .../src}/api/operations/get-product.ts        |     2 +-
 .../src}/api/operations/get-site-info.ts      |     2 +-
 .../commercejs/src}/api/operations/index.ts   |     0
 .../src}/api/utils/graphql-fetch.ts           |     4 +-
 .../commercejs/src}/api/utils/sdk-fetch.ts    |     0
 .../commercejs/src}/auth/index.ts             |     0
 .../commercejs/src}/auth/use-login.tsx        |     6 +-
 .../commercejs/src}/auth/use-logout.tsx       |     6 +-
 .../commercejs/src}/auth/use-signup.tsx       |     4 +-
 .../commercejs/src}/cart/index.ts             |     0
 .../commercejs/src}/cart/use-add-item.tsx     |     6 +-
 .../commercejs/src}/cart/use-cart.tsx         |     6 +-
 .../commercejs/src}/cart/use-remove-item.tsx  |     6 +-
 .../commercejs/src}/cart/use-update-item.tsx  |     8 +-
 .../commercejs/src}/checkout/index.ts         |     0
 .../commercejs/src}/checkout/use-checkout.tsx |     6 +-
 .../src}/checkout/use-submit-checkout.tsx     |     6 +-
 .../commercejs/src}/commerce.config.json      |     0
 .../commercejs/src}/constants.ts              |     0
 .../commercejs/src}/customer/address/index.ts |     0
 .../src}/customer/address/use-add-item.tsx    |     6 +-
 .../src}/customer/address/use-addresses.tsx   |     6 +-
 .../commercejs/src}/customer/card/index.ts    |     0
 .../src}/customer/card/use-add-item.tsx       |     6 +-
 .../src}/customer/card/use-cards.tsx          |     6 +-
 .../commercejs/src}/customer/index.ts         |     0
 .../commercejs/src}/customer/use-customer.tsx |     4 +-
 .../commercejs/src}/fetcher.ts                |     4 +-
 .../commercejs/src}/index.tsx                 |     2 +-
 .../commercejs/src}/lib/commercejs.ts         |     0
 .../commercejs/src/next.config.cjs            |     0
 .../commercejs/src}/product/index.ts          |     0
 packages/commercejs/src/product/use-price.tsx |     2 +
 .../commercejs/src}/product/use-search.tsx    |     6 +-
 .../commercejs/src}/provider.ts               |     0
 .../commercejs/src}/types/cart.ts             |     2 +-
 .../commercejs/src}/types/checkout.ts         |     2 +-
 packages/commercejs/src/types/common.ts       |     1 +
 packages/commercejs/src/types/customer.ts     |     1 +
 .../commercejs/src}/types/index.ts            |     0
 .../commercejs/src}/types/login.ts            |     4 +-
 packages/commercejs/src/types/logout.ts       |     1 +
 packages/commercejs/src/types/page.ts         |     1 +
 .../commercejs/src}/types/product.ts          |     2 +-
 packages/commercejs/src/types/signup.ts       |     1 +
 .../commercejs/src}/types/site.ts             |     2 +-
 packages/commercejs/src/types/wishlist.ts     |     1 +
 .../src}/utils/get-deployment-url.ts          |     0
 .../commercejs/src}/utils/normalize-cart.ts   |     0
 .../src}/utils/normalize-category.ts          |     2 +-
 .../src}/utils/normalize-checkout.ts          |     4 +-
 .../src}/utils/normalize-product.ts           |     0
 .../commercejs/src}/utils/product-search.ts   |     2 +-
 .../commercejs/src}/wishlist/use-add-item.tsx |     0
 .../src}/wishlist/use-remove-item.tsx         |     0
 .../commercejs/src}/wishlist/use-wishlist.tsx |     2 +-
 packages/commercejs/tsconfig.json             |    21 +
 .../kibocommerce/.env.template                |     0
 packages/kibocommerce/.prettierignore         |     2 +
 packages/kibocommerce/.prettierrc             |     6 +
 .../kibocommerce/README.md                    |     4 +-
 .../kibocommerce/codegen.json                 |     6 +-
 packages/kibocommerce/package.json            |    78 +
 .../kibocommerce/schema.d.ts                  |     0
 .../kibocommerce/schema.graphql               |     0
 .../src}/api/endpoints/cart/add-item.ts       |     1 -
 .../src}/api/endpoints/cart/get-cart.ts       |     2 +-
 .../src}/api/endpoints/cart/index.ts          |     4 +-
 .../src}/api/endpoints/cart/remove-item.ts    |     0
 .../src}/api/endpoints/cart/update-item.ts    |     0
 .../api/endpoints/catalog/products/index.ts   |     4 +-
 .../endpoints/catalog/products/products.ts    |     2 +-
 .../src}/api/endpoints/checkout/index.ts      |     0
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../src}/api/endpoints/customer/customer.ts   |     0
 .../src}/api/endpoints/customer/index.ts      |     4 +-
 .../src}/api/endpoints/login/index.ts         |     4 +-
 .../src}/api/endpoints/login/login.ts         |    14 +-
 .../src}/api/endpoints/logout/index.ts        |     4 +-
 .../src}/api/endpoints/logout/logout.ts       |     0
 .../src}/api/endpoints/signup/index.ts        |     4 +-
 .../src}/api/endpoints/signup/signup.ts       |    12 +-
 .../src}/api/endpoints/wishlist/add-item.ts   |     0
 .../api/endpoints/wishlist/get-wishlist.ts    |     0
 .../src}/api/endpoints/wishlist/index.ts      |     4 +-
 .../api/endpoints/wishlist/remove-item.ts     |     0
 .../src}/api/fragments/cartItemDetails.ts     |     0
 .../src}/api/fragments/category.ts            |     0
 .../src}/api/fragments/product.ts             |     0
 .../src}/api/fragments/productDetails.ts      |     0
 .../kibocommerce/src}/api/fragments/search.ts |     0
 .../kibocommerce/src}/api/index.ts            |     4 +-
 .../mutations/addItemToWishlist-mutation.ts   |     0
 .../src}/api/mutations/addToCart-mutation.ts  |     0
 .../api/mutations/create-wishlist-mutation.ts |     0
 .../src}/api/mutations/login-mutation.ts      |     0
 .../mutations/removeItemFromCart-mutation.ts  |     0
 .../removeItemFromWishlist-mutation.ts        |     0
 .../src}/api/mutations/signup-mutation.ts     |     0
 .../updateCartItemQuantity-mutation.ts        |     0
 .../src}/api/operations/get-all-pages.ts      |     6 +-
 .../api/operations/get-all-product-paths.ts   |     0
 .../src}/api/operations/get-all-products.ts   |     8 +-
 .../api/operations/get-customer-wishlist.ts   |     6 +-
 .../src}/api/operations/get-page.ts           |     6 +-
 .../src}/api/operations/get-product.ts        |    12 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../kibocommerce/src}/api/operations/index.ts |     0
 .../src}/api/queries/get-all-pages-query.ts   |     0
 .../api/queries/get-all-products-query.ts     |     0
 .../get-anonymous-shopper-token-query.ts      |     0
 .../src}/api/queries/get-cart-query.ts        |     0
 .../api/queries/get-categories-tree-query.ts  |     0
 .../api/queries/get-customer-account-query.ts |     0
 .../queries/get-customer-wishlist-query.ts    |     0
 .../src}/api/queries/get-page-query.ts        |     0
 .../src}/api/queries/get-product-query.ts     |     0
 .../src}/api/queries/product-search-query.ts  |     0
 .../src}/api/utils/api-auth-helper.ts         |    14 +-
 .../src}/api/utils/cookie-handler.ts          |     0
 .../src}/api/utils/fetch-graphql-api.ts       |     4 +-
 .../src}/api/utils/fetch-local.ts             |     4 +-
 .../kibocommerce/src}/api/utils/fetch.ts      |     0
 .../api/utils/get-anonymous-shopper-token.ts  |     0
 .../src}/api/utils/get-customer-id.ts         |     0
 .../kibocommerce/src}/auth/index.ts           |     0
 .../kibocommerce/src}/auth/use-login.tsx      |     6 +-
 .../kibocommerce/src}/auth/use-logout.tsx     |     6 +-
 .../kibocommerce/src}/auth/use-signup.tsx     |     6 +-
 .../kibocommerce/src}/cart/index.ts           |     0
 .../kibocommerce/src}/cart/use-add-item.tsx   |     8 +-
 .../kibocommerce/src}/cart/use-cart.tsx       |     4 +-
 .../src}/cart/use-remove-item.tsx             |     8 +-
 .../src}/cart/use-update-item.tsx             |     8 +-
 .../src}/checkout/use-checkout.tsx            |     4 +-
 .../kibocommerce/src}/commerce.config.json    |     0
 .../src/customer/address/use-add-item.tsx     |    15 +
 .../src}/customer/card/use-add-item.tsx       |     4 +-
 .../kibocommerce/src}/customer/index.ts       |     0
 .../src}/customer/use-customer.tsx            |     4 +-
 .../kibocommerce/src}/fetcher.ts              |     4 +-
 .../kibocommerce/src}/index.tsx               |     2 +-
 .../src}/lib/get-cookie-expiration-date.ts    |     0
 .../kibocommerce/src}/lib/get-slug.ts         |     0
 .../kibocommerce/src}/lib/immutability.ts     |     0
 .../kibocommerce/src}/lib/normalize.ts        |     2 +-
 .../src}/lib/prepare-set-cookie.ts            |     0
 .../src}/lib/product-search-vars.ts           |     0
 .../kibocommerce/src}/lib/set-cookie.ts       |     0
 .../kibocommerce/src/next.config.cjs          |     0
 .../kibocommerce/src}/product/index.ts        |     0
 .../kibocommerce/src/product/use-price.tsx    |     2 +
 .../kibocommerce/src}/product/use-search.tsx  |     4 +-
 .../kibocommerce/src}/provider.ts             |     0
 .../kibocommerce/src}/types/customer.ts       |     4 +-
 packages/kibocommerce/src/types/login.ts      |     8 +
 packages/kibocommerce/src/types/logout.ts     |     1 +
 .../kibocommerce/src}/types/page.ts           |     4 +-
 packages/kibocommerce/src/types/signup.ts     |     1 +
 .../kibocommerce/src}/wishlist/index.ts       |     0
 .../src}/wishlist/use-add-item.tsx            |     8 +-
 .../src}/wishlist/use-remove-item.tsx         |     8 +-
 .../src}/wishlist/use-wishlist.tsx            |     6 +-
 packages/kibocommerce/tsconfig.json           |    21 +
 {framework => packages}/local/.env.template   |     0
 packages/local/.prettierignore                |     2 +
 packages/local/.prettierrc                    |     6 +
 {framework => packages}/local/README.md       |     0
 packages/local/package.json                   |    72 +
 .../local/src}/api/endpoints/cart/index.ts    |     0
 .../local/src}/api/endpoints/catalog/index.ts |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     0
 .../src}/api/endpoints/customer/address.ts    |     0
 .../local/src}/api/endpoints/customer/card.ts |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../local/src}/api/endpoints/login/index.ts   |     0
 .../local/src}/api/endpoints/logout/index.ts  |     0
 .../local/src}/api/endpoints/signup/index.ts  |     0
 .../src}/api/endpoints/wishlist/index.tsx     |     0
 .../local => packages/local/src}/api/index.ts |     4 +-
 .../src}/api/operations/get-all-pages.ts      |     0
 .../api/operations/get-all-product-paths.ts   |     0
 .../src}/api/operations/get-all-products.ts   |     6 +-
 .../api/operations/get-customer-wishlist.ts   |     0
 .../local/src}/api/operations/get-page.ts     |     0
 .../local/src}/api/operations/get-product.ts  |     6 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../local/src}/api/operations/index.ts        |     0
 .../local/src}/api/utils/fetch-local.ts       |     4 +-
 .../local/src}/api/utils/fetch.ts             |     0
 .../local/src}/auth/index.ts                  |     0
 .../local/src}/auth/use-login.tsx             |     4 +-
 .../local/src}/auth/use-logout.tsx            |     4 +-
 .../local/src}/auth/use-signup.tsx            |     4 +-
 .../local/src}/cart/index.ts                  |     0
 .../local/src}/cart/use-add-item.tsx          |     4 +-
 .../local/src}/cart/use-cart.tsx              |     4 +-
 .../local/src}/cart/use-remove-item.tsx       |     6 +-
 .../local/src}/cart/use-update-item.tsx       |     6 +-
 .../local/src}/checkout/use-checkout.tsx      |     6 +-
 .../local/src}/commerce.config.json           |     0
 .../src/customer/address/use-add-item.tsx     |    17 +
 .../local/src/customer/card/use-add-item.tsx  |    17 +
 .../local/src}/customer/index.ts              |     0
 .../local/src}/customer/use-customer.tsx      |     6 +-
 .../local => packages/local/src}/data.json    |     0
 .../local => packages/local/src}/fetcher.ts   |     2 +-
 .../local => packages/local/src}/index.tsx    |     5 +-
 .../local/src/next.config.cjs                 |     0
 .../local/src}/product/index.ts               |     0
 packages/local/src/product/use-price.tsx      |     2 +
 .../local/src}/product/use-search.tsx         |     4 +-
 .../local => packages/local/src}/provider.ts  |     0
 .../local/src}/wishlist/use-add-item.tsx      |     0
 .../local/src}/wishlist/use-remove-item.tsx   |     0
 .../local/src}/wishlist/use-wishlist.tsx      |     4 +-
 packages/local/tsconfig.json                  |    21 +
 .../ordercloud/.env.template                  |     0
 packages/ordercloud/.prettierignore           |     2 +
 packages/ordercloud/.prettierrc               |     6 +
 {framework => packages}/ordercloud/README.md  |     0
 packages/ordercloud/package.json              |    73 +
 .../src}/api/endpoints/cart/add-item.ts       |     0
 .../src}/api/endpoints/cart/get-cart.ts       |     0
 .../src}/api/endpoints/cart/index.ts          |     4 +-
 .../src}/api/endpoints/cart/remove-item.ts    |     0
 .../src}/api/endpoints/cart/update-item.ts    |     0
 .../catalog/products/get-products.ts          |     0
 .../api/endpoints/catalog/products/index.ts   |     6 +-
 .../api/endpoints/checkout/get-checkout.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     4 +-
 .../api/endpoints/checkout/submit-checkout.ts |     0
 .../endpoints/customer/address/add-item.ts    |     0
 .../customer/address/get-addresses.ts         |     0
 .../api/endpoints/customer/address/index.ts   |     4 +-
 .../endpoints/customer/address/remove-item.ts |     0
 .../endpoints/customer/address/update-item.ts |     0
 .../api/endpoints/customer/card/add-item.ts   |     0
 .../api/endpoints/customer/card/get-cards.ts  |     0
 .../src}/api/endpoints/customer/card/index.ts |     4 +-
 .../endpoints/customer/card/remove-item.ts    |     0
 .../endpoints/customer/card/update-item.ts    |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../src}/api/endpoints/login/index.ts         |     0
 .../src}/api/endpoints/logout/index.ts        |     0
 .../src}/api/endpoints/signup/index.ts        |     0
 .../src}/api/endpoints/wishlist/index.tsx     |     0
 .../ordercloud/src}/api/index.ts              |     4 +-
 .../src}/api/operations/get-all-pages.ts      |     2 +-
 .../api/operations/get-all-product-paths.ts   |     4 +-
 .../src}/api/operations/get-all-products.ts   |     4 +-
 .../src}/api/operations/get-page.ts           |     2 +-
 .../src}/api/operations/get-product.ts        |     4 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../ordercloud/src}/api/operations/index.ts   |     0
 .../ordercloud/src}/api/utils/cart.ts         |     0
 .../src}/api/utils/fetch-graphql.ts           |     4 +-
 .../ordercloud/src}/api/utils/fetch-rest.ts   |     2 +-
 .../ordercloud/src}/auth/index.ts             |     0
 .../ordercloud/src}/auth/use-login.tsx        |     4 +-
 .../ordercloud/src}/auth/use-logout.tsx       |     4 +-
 .../ordercloud/src}/auth/use-signup.tsx       |     4 +-
 .../ordercloud/src}/cart/index.ts             |     0
 .../ordercloud/src}/cart/use-add-item.tsx     |     8 +-
 .../ordercloud/src}/cart/use-cart.tsx         |     6 +-
 .../ordercloud/src}/cart/use-remove-item.tsx  |     8 +-
 .../ordercloud/src}/cart/use-update-item.tsx  |    10 +-
 .../ordercloud/src}/checkout/index.ts         |     0
 .../ordercloud/src}/checkout/use-checkout.tsx |     6 +-
 .../src}/checkout/use-submit-checkout.tsx     |     8 +-
 .../ordercloud/src}/commerce.config.json      |     0
 .../ordercloud/src}/constants.ts              |     0
 .../ordercloud/src}/customer/address/index.ts |     0
 .../src}/customer/address/use-add-item.tsx    |     6 +-
 .../src}/customer/address/use-addresses.tsx   |     6 +-
 .../src}/customer/address/use-remove-item.tsx |     8 +-
 .../src}/customer/address/use-update-item.tsx |     8 +-
 .../ordercloud/src}/customer/card/index.ts    |     0
 .../src}/customer/card/use-add-item.tsx       |     6 +-
 .../src}/customer/card/use-cards.tsx          |     6 +-
 .../src}/customer/card/use-remove-item.tsx    |     8 +-
 .../src}/customer/card/use-update-item.tsx    |     8 +-
 .../ordercloud/src}/customer/index.ts         |     0
 .../ordercloud/src}/customer/use-customer.tsx |     4 +-
 .../ordercloud/src}/fetcher.ts                |     2 +-
 .../ordercloud/src}/index.tsx                 |     2 +-
 .../ordercloud/src/next.config.cjs            |     0
 .../ordercloud/src}/product/index.ts          |     0
 packages/ordercloud/src/product/use-price.tsx |     2 +
 .../ordercloud/src}/product/use-search.tsx    |     6 +-
 .../ordercloud/src}/provider.ts               |     0
 .../ordercloud/src}/types/cart.ts             |     4 +-
 .../ordercloud/src}/types/category.ts         |     0
 .../ordercloud/src}/types/checkout.ts         |     2 +-
 .../ordercloud/src}/types/customer/address.ts |     2 +-
 .../ordercloud/src}/types/customer/card.ts    |     2 +-
 .../ordercloud/src}/types/node.d.ts           |     0
 .../ordercloud/src}/types/product.ts          |     0
 .../ordercloud/src}/utils/product.ts          |     2 +-
 .../ordercloud/src}/wishlist/use-add-item.tsx |     0
 .../src}/wishlist/use-remove-item.tsx         |     0
 .../ordercloud/src}/wishlist/use-wishlist.tsx |     4 +-
 packages/ordercloud/tsconfig.json             |    21 +
 {framework => packages}/saleor/.env.template  |     0
 packages/saleor/.prettierignore               |     2 +
 packages/saleor/.prettierrc                   |     6 +
 {framework => packages}/saleor/README.md      |     2 +-
 codegen.json => packages/saleor/codegen.json  |    10 +-
 packages/saleor/package.json                  |    78 +
 {framework => packages}/saleor/schema.d.ts    |     0
 {framework => packages}/saleor/schema.graphql |     0
 .../saleor/src}/api/cart.ts                   |     0
 .../saleor/src}/api/catalog/products.ts       |     0
 .../saleor/src}/api/checkout.ts               |     0
 .../saleor/src}/api/customers/index.ts        |     0
 .../saleor/src}/api/customers/login.ts        |     0
 .../saleor/src}/api/customers/logout.ts       |     0
 .../saleor/src}/api/customers/signup.ts       |     0
 .../saleor/src}/api/endpoints/cart.ts         |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     6 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../saleor/src}/api/endpoints/login.ts        |     0
 .../saleor/src}/api/endpoints/logout.ts       |     0
 .../saleor/src}/api/endpoints/signup.ts       |     0
 .../saleor/src}/api/endpoints/wishlist.ts     |     0
 .../saleor/src}/api/index.ts                  |     2 +-
 .../src}/api/operations/get-all-pages.ts      |     4 +-
 .../api/operations/get-all-product-paths.ts   |     4 +-
 .../src}/api/operations/get-all-products.ts   |     8 +-
 .../saleor/src}/api/operations/get-page.ts    |     4 +-
 .../saleor/src}/api/operations/get-product.ts |     2 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../saleor/src}/api/operations/index.ts       |     0
 .../saleor/src}/api/operations/login.ts       |     2 +-
 .../src}/api/utils/fetch-all-products.ts      |     2 +-
 .../src}/api/utils/fetch-graphql-api.ts       |     2 +-
 .../saleor/src}/api/utils/fetch.ts            |     0
 .../src}/api/utils/is-allowed-method.ts       |     0
 .../saleor/src}/api/wishlist.ts               |     0
 .../saleor/src}/auth/use-login.tsx            |    10 +-
 .../saleor/src}/auth/use-logout.tsx           |     6 +-
 .../saleor/src}/auth/use-signup.tsx           |    10 +-
 .../saleor/src}/cart/index.ts                 |     0
 .../saleor/src}/cart/use-add-item.tsx         |    10 +-
 .../saleor/src}/cart/use-cart.tsx             |     6 +-
 .../saleor/src}/cart/use-remove-item.tsx      |     6 +-
 .../saleor/src}/cart/use-update-item.tsx      |     8 +-
 .../saleor/src}/checkout/use-checkout.tsx     |     4 +-
 .../saleor/src}/commerce.config.json          |     0
 .../saleor => packages/saleor/src}/const.ts   |     0
 .../src/customer/address/use-add-item.tsx     |    15 +
 .../src/customer/card}/use-add-item.tsx       |     4 +-
 .../saleor/src}/customer/index.ts             |     0
 .../saleor/src}/customer/use-customer.tsx     |     6 +-
 .../saleor => packages/saleor/src}/fetcher.ts |     2 +-
 .../saleor => packages/saleor/src}/index.tsx  |     2 +-
 .../saleor/src/next.config.cjs                |     0
 packages/saleor/src/product/use-price.tsx     |     2 +
 .../saleor/src}/product/use-search.tsx        |    10 +-
 .../saleor/src}/provider.ts                   |     0
 .../saleor => packages/saleor/src}/types.ts   |     4 +-
 .../saleor/src}/types/cart.ts                 |     4 +-
 .../saleor/src}/utils/checkout-attach.ts      |     2 +-
 .../saleor/src}/utils/checkout-create.ts      |     4 +-
 .../saleor/src}/utils/checkout-to-cart.ts     |     4 +-
 .../saleor/src}/utils/customer-token.ts       |     0
 .../src}/utils/fragments/checkout-details.ts  |     0
 .../saleor/src}/utils/fragments/index.ts      |     0
 .../saleor/src}/utils/fragments/product.ts    |     0
 .../saleor/src}/utils/get-categories.ts       |     4 +-
 .../saleor/src}/utils/get-checkout-id.ts      |     0
 .../saleor/src}/utils/get-search-variables.ts |     0
 .../saleor/src}/utils/get-sort-variables.ts   |     0
 .../saleor/src}/utils/get-vendors.ts          |     0
 .../src}/utils/handle-fetch-response.ts       |     2 +-
 .../saleor/src}/utils/handle-login.ts         |     4 +-
 .../saleor/src}/utils/index.ts                |     0
 .../src}/utils/mutations/account-create.ts    |     0
 .../src}/utils/mutations/checkout-attach.ts   |     0
 .../src}/utils/mutations/checkout-create.ts   |     0
 .../src}/utils/mutations/checkout-line-add.ts |     0
 .../utils/mutations/checkout-line-remove.ts   |     0
 .../utils/mutations/checkout-line-update.ts   |     0
 .../saleor/src}/utils/mutations/index.ts      |     0
 .../src}/utils/mutations/session-create.ts    |     0
 .../src}/utils/mutations/session-destroy.ts   |     0
 .../saleor/src}/utils/normalize.ts            |     4 +-
 .../saleor/src}/utils/queries/checkout-one.ts |     0
 .../src}/utils/queries/collection-many.ts     |     0
 .../src}/utils/queries/collection-one.ts      |     0
 .../src}/utils/queries/customer-current.ts    |     0
 .../saleor/src}/utils/queries/customer-one.ts |     0
 .../queries/get-all-product-vendors-query.ts  |     0
 .../queries/get-all-products-paths-query.ts   |     0
 .../saleor/src}/utils/queries/index.ts        |     0
 .../saleor/src}/utils/queries/page-many.ts    |     0
 .../saleor/src}/utils/queries/page-one.ts     |     0
 .../saleor/src}/utils/queries/product-many.ts |     0
 .../src}/utils/queries/product-one-by-slug.ts |     0
 .../saleor/src}/utils/throw-user-errors.ts    |     4 +-
 .../saleor/src}/wishlist/use-add-item.tsx     |     0
 .../saleor/src}/wishlist/use-remove-item.tsx  |     0
 .../saleor/src}/wishlist/use-wishlist.tsx     |     4 +-
 packages/saleor/tsconfig.json                 |    21 +
 {framework => packages}/shopify/.env.template |     0
 packages/shopify/.prettierignore              |     2 +
 packages/shopify/.prettierrc                  |     6 +
 {framework => packages}/shopify/README.md     |     2 +-
 {framework => packages}/shopify/codegen.json  |     6 +-
 packages/shopify/package.json                 |    79 +
 {framework => packages}/shopify/schema.d.ts   |     0
 .../shopify/schema.graphql                    |     0
 .../shopify/src}/api/endpoints/cart.ts        |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../api/endpoints/checkout/get-checkout.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     4 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../shopify/src}/api/endpoints/login.ts       |     0
 .../shopify/src}/api/endpoints/logout.ts      |     0
 .../shopify/src}/api/endpoints/signup.ts      |     0
 .../shopify/src}/api/endpoints/wishlist.ts    |     0
 .../shopify/src}/api/index.ts                 |     2 +-
 .../src}/api/operations/get-all-pages.ts      |     4 +-
 .../api/operations/get-all-product-paths.ts   |     4 +-
 .../src}/api/operations/get-all-products.ts   |     4 +-
 .../shopify/src}/api/operations/get-page.ts   |     4 +-
 .../src}/api/operations/get-product.ts        |     7 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../shopify/src}/api/operations/index.ts      |     0
 .../shopify/src}/api/operations/login.ts      |     4 +-
 .../src}/api/utils/fetch-graphql-api.ts       |     2 +-
 .../shopify/src}/api/utils/fetch.ts           |     0
 .../shopify/src}/auth/use-login.tsx           |     8 +-
 .../shopify/src}/auth/use-logout.tsx          |     4 +-
 .../shopify/src}/auth/use-signup.tsx          |     8 +-
 .../shopify/src}/cart/index.ts                |     0
 .../shopify/src}/cart/use-add-item.tsx        |     8 +-
 .../shopify/src}/cart/use-cart.tsx            |     4 +-
 .../shopify/src}/cart/use-remove-item.tsx     |    10 +-
 .../shopify/src}/cart/use-update-item.tsx     |    10 +-
 .../shopify/src/checkout/use-checkout.tsx     |    16 +
 .../shopify/src}/commerce.config.json         |     0
 .../shopify => packages/shopify/src}/const.ts |     0
 .../src/customer/address/use-add-item.tsx     |    17 +
 .../src/customer/card/use-add-item.tsx        |    17 +
 .../shopify/src}/customer/index.ts            |     0
 .../shopify/src}/customer/use-customer.tsx    |     8 +-
 .../shopify/src}/fetcher.ts                   |     2 +-
 .../shopify/src}/index.tsx                    |     5 +-
 .../shopify/src/next.config.cjs               |     0
 packages/shopify/src/product/use-price.tsx    |     2 +
 .../shopify/src}/product/use-search.tsx       |     6 +-
 .../shopify/src}/provider.ts                  |     0
 .../shopify/src}/types/cart.ts                |     4 +-
 packages/shopify/src/types/checkout.ts        |     1 +
 packages/shopify/src/types/common.ts          |     1 +
 packages/shopify/src/types/customer.ts        |     5 +
 .../shopify/src}/types/index.ts               |     0
 packages/shopify/src/types/login.ts           |     8 +
 packages/shopify/src/types/logout.ts          |     1 +
 .../shopify/src}/types/page.ts                |     4 +-
 packages/shopify/src/types/product.ts         |     1 +
 packages/shopify/src/types/signup.ts          |     1 +
 packages/shopify/src/types/site.ts            |     1 +
 packages/shopify/src/types/wishlist.ts        |     1 +
 .../shopify/src}/utils/checkout-create.ts     |     4 +-
 .../shopify/src}/utils/checkout-to-cart.ts    |     4 +-
 packages/shopify/src/utils/colors.ts          |   154 +
 .../shopify/src}/utils/customer-token.ts      |     0
 .../shopify/src}/utils/get-brands.ts          |     2 +-
 .../shopify/src}/utils/get-categories.ts      |     2 +-
 .../shopify/src}/utils/get-checkout-id.ts     |     0
 .../src}/utils/get-search-variables.ts        |     0
 .../shopify/src}/utils/get-sort-variables.ts  |     0
 .../src}/utils/handle-account-activation.ts   |     6 +-
 .../src}/utils/handle-fetch-response.ts       |     2 +-
 .../shopify/src}/utils/handle-login.ts        |     4 +-
 .../shopify/src}/utils/index.ts               |     0
 .../associate-customer-with-checkout.ts       |     0
 .../src}/utils/mutations/checkout-create.ts   |     0
 .../utils/mutations/checkout-line-item-add.ts |     0
 .../mutations/checkout-line-item-remove.ts    |     0
 .../mutations/checkout-line-item-update.ts    |     0
 .../mutations/customer-access-token-create.ts |     0
 .../mutations/customer-access-token-delete.ts |     0
 .../mutations/customer-activate-by-url.ts     |     0
 .../src}/utils/mutations/customer-activate.ts |     0
 .../src}/utils/mutations/customer-create.ts   |     0
 .../shopify/src}/utils/mutations/index.ts     |     0
 .../shopify/src}/utils/normalize.ts           |     4 +-
 .../queries/get-all-collections-query.ts      |     0
 .../src}/utils/queries/get-all-pages-query.ts |     0
 .../queries/get-all-product-vendors-query.ts  |     0
 .../queries/get-all-products-paths-query.ts   |     0
 .../utils/queries/get-all-products-query.ts   |     0
 .../src}/utils/queries/get-checkout-query.ts  |     0
 .../queries/get-collection-products-query.ts  |     0
 .../utils/queries/get-customer-id-query.ts    |     0
 .../src}/utils/queries/get-customer-query.ts  |     0
 .../src}/utils/queries/get-page-query.ts      |     0
 .../src}/utils/queries/get-product-query.ts   |     0
 .../src}/utils/queries/get-site-info-query.ts |     0
 .../shopify/src}/utils/queries/index.ts       |     0
 .../shopify/src}/utils/throw-user-errors.ts   |     4 +-
 .../shopify/src}/wishlist/use-add-item.tsx    |     0
 .../shopify/src}/wishlist/use-remove-item.tsx |     0
 .../shopify/src}/wishlist/use-wishlist.tsx    |     4 +-
 packages/shopify/tsconfig.json                |    21 +
 {framework => packages}/spree/.env.template   |     0
 packages/spree/.prettierignore                |     2 +
 packages/spree/.prettierrc                    |     6 +
 .../spree/README-assets/screenshots.png       |   Bin
 {framework => packages}/spree/README.md       |     4 +-
 packages/spree/package.json                   |    74 +
 .../spree/src}/api/endpoints/cart/index.ts    |     0
 .../spree/src}/api/endpoints/catalog/index.ts |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../api/endpoints/checkout/get-checkout.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     8 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../spree/src}/api/endpoints/customer/card.ts |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../spree/src}/api/endpoints/login/index.ts   |     0
 .../spree/src}/api/endpoints/logout/index.ts  |     0
 .../spree/src}/api/endpoints/signup/index.ts  |     0
 .../src}/api/endpoints/wishlist/index.tsx     |     0
 .../spree => packages/spree/src}/api/index.ts |     4 +-
 .../src}/api/operations/get-all-pages.ts      |     4 +-
 .../api/operations/get-all-product-paths.ts   |     6 +-
 .../src}/api/operations/get-all-products.ts   |     6 +-
 .../api/operations/get-customer-wishlist.ts   |     0
 .../spree/src}/api/operations/get-page.ts     |     4 +-
 .../spree/src}/api/operations/get-product.ts  |     4 +-
 .../src}/api/operations/get-site-info.ts      |     7 +-
 .../spree/src}/api/operations/index.ts        |     0
 .../spree/src}/api/utils/create-api-fetch.ts  |     2 +-
 .../spree/src}/api/utils/fetch.ts             |     0
 .../spree/src}/auth/index.ts                  |     0
 .../spree/src}/auth/use-login.tsx             |     8 +-
 .../spree/src}/auth/use-logout.tsx            |    45 +-
 .../spree/src}/auth/use-signup.tsx            |    10 +-
 .../spree/src}/cart/index.ts                  |     0
 .../spree/src}/cart/use-add-item.tsx          |    37 +-
 .../spree/src}/cart/use-cart.tsx              |    14 +-
 .../spree/src}/cart/use-remove-item.tsx       |    43 +-
 .../spree/src}/cart/use-update-item.tsx       |    75 +-
 .../spree/src}/checkout/use-checkout.tsx      |     6 +-
 .../spree/src}/commerce.config.json           |     0
 .../src}/customer/address/use-add-item.tsx    |     6 +-
 .../spree/src}/customer/card/use-add-item.tsx |     6 +-
 .../spree/src}/customer/index.ts              |     0
 .../spree/src}/customer/use-customer.tsx      |    12 +-
 .../spree/src}/errors/AccessTokenError.ts     |     0
 .../src}/errors/MisconfigurationError.ts      |     0
 .../errors/MissingConfigurationValueError.ts  |     0
 .../errors/MissingLineItemVariantError.ts     |     0
 .../src}/errors/MissingOptionValueError.ts    |     0
 .../src}/errors/MissingPrimaryVariantError.ts |     0
 .../spree/src}/errors/MissingProductError.ts  |     0
 .../src}/errors/MissingSlugVariableError.ts   |     0
 .../spree/src}/errors/MissingVariantError.ts  |     0
 .../spree/src}/errors/RefreshTokenError.ts    |     0
 .../src}/errors/SpreeResponseContentError.ts  |     0
 .../SpreeSdkMethodFromEndpointPathError.ts    |     0
 .../src}/errors/TokensNotRejectedError.ts     |     0
 .../errors/UserTokenResponseParseError.ts     |     0
 .../spree => packages/spree/src}/fetcher.ts   |     4 +-
 .../spree => packages/spree/src}/index.tsx    |     4 +-
 .../spree/src}/isomorphic-config.ts           |     0
 .../spree/src/next.config.cjs                 |     0
 .../spree/src}/product/index.ts               |     0
 packages/spree/src/product/use-price.tsx      |     2 +
 .../spree/src}/product/use-search.tsx         |    13 +-
 .../spree => packages/spree/src}/provider.ts  |     0
 .../spree/src}/types/index.ts                 |     6 +-
 .../convert-spree-error-to-graph-ql-error.ts  |     2 +-
 .../utils/create-customized-fetch-fetcher.ts  |     0
 .../spree/src}/utils/create-empty-cart.ts     |     4 +-
 .../utils/create-get-absolute-image-url.ts    |     0
 .../spree/src}/utils/expand-options.ts        |     2 +-
 .../utils/force-isomorphic-config-values.ts   |     0
 .../spree/src}/utils/get-image-url.ts         |     0
 .../spree/src}/utils/get-media-gallery.ts     |     2 +-
 .../spree/src}/utils/get-product-path.ts      |     0
 ...get-spree-sdk-method-from-endpoint-path.ts |     0
 .../spree/src}/utils/handle-token-errors.ts   |     0
 .../spree/src}/utils/is-json-content-type.ts  |     0
 .../spree/src}/utils/is-server.ts             |     0
 .../spree/src}/utils/login.ts                 |     4 +-
 .../utils/normalizations/normalize-cart.ts    |     4 +-
 .../utils/normalizations/normalize-page.ts    |     2 +-
 .../utils/normalizations/normalize-product.ts |     2 +-
 .../utils/normalizations/normalize-user.ts    |     2 +-
 .../normalizations/normalize-wishlist.ts      |     0
 .../utils/pretty-print-spree-sdk-errors.ts    |     0
 .../spree/src}/utils/require-config.ts        |     0
 .../spree/src}/utils/sort-option-types.ts     |     0
 .../spree/src}/utils/tokens/cart-token.ts     |     0
 .../tokens/ensure-fresh-user-access-token.ts  |     0
 .../spree/src}/utils/tokens/ensure-itoken.ts  |     0
 .../spree/src}/utils/tokens/is-logged-in.ts   |     0
 .../src}/utils/tokens/revoke-user-tokens.ts   |     4 +-
 .../src}/utils/tokens/user-token-response.ts  |     0
 .../validate-all-products-taxonomy-id.ts      |     0
 .../validations/validate-cookie-expire.ts     |     0
 .../validate-images-option-filter.ts          |     0
 .../validations/validate-images-quality.ts    |     0
 .../utils/validations/validate-images-size.ts |     0
 .../validate-placeholder-image-url.ts         |     0
 .../validate-products-prerender-count.ts      |     0
 .../spree/src}/wishlist/index.ts              |     0
 .../spree/src}/wishlist/use-add-item.tsx      |    10 +-
 .../spree/src}/wishlist/use-remove-item.tsx   |     8 +-
 .../spree/src}/wishlist/use-wishlist.tsx      |    10 +-
 packages/spree/tsconfig.json                  |    21 +
 {framework => packages}/swell/.env.template   |     0
 packages/swell/.prettierignore                |     2 +
 packages/swell/.prettierrc                    |     6 +
 packages/swell/package.json                   |    74 +
 {framework => packages}/swell/schema.d.ts     |     0
 {framework => packages}/swell/schema.graphql  |     0
 .../swell/src}/api/cart/index.ts              |     0
 .../swell/src}/api/catalog/index.ts           |     0
 .../swell/src}/api/catalog/products.ts        |     0
 .../swell/src}/api/customer.ts                |     0
 .../swell/src}/api/customers/index.ts         |     0
 .../swell/src}/api/customers/logout.ts        |     0
 .../swell/src}/api/customers/signup.ts        |     0
 .../swell/src}/api/endpoints/cart.ts          |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     6 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../swell/src}/api/endpoints/customer/card.ts |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../swell/src}/api/endpoints/login.ts         |     0
 .../swell/src}/api/endpoints/logout.ts        |     0
 .../swell/src}/api/endpoints/signup.ts        |     0
 .../swell/src}/api/endpoints/wishlist.ts      |     0
 .../swell => packages/swell/src}/api/index.ts |     2 +-
 .../src}/api/operations/get-all-pages.ts      |     2 +-
 .../api/operations/get-all-product-paths.ts   |     7 +-
 .../src}/api/operations/get-all-products.ts   |     4 +-
 .../swell/src}/api/operations/get-page.ts     |     7 +-
 .../swell/src}/api/operations/get-product.ts  |     4 +-
 .../src}/api/operations/get-site-info.ts      |     4 +-
 .../swell/src}/api/operations/login.ts        |     2 +-
 .../swell/src}/api/utils/fetch-swell-api.ts   |     0
 .../swell/src}/api/utils/fetch.ts             |     0
 .../swell/src}/api/utils/is-allowed-method.ts |     0
 .../swell/src}/api/wishlist/index.tsx         |     0
 .../swell/src}/auth/use-login.tsx             |     8 +-
 .../swell/src}/auth/use-logout.tsx            |     4 +-
 .../swell/src}/auth/use-signup.tsx            |     6 +-
 .../swell/src}/cart/index.ts                  |     0
 .../swell/src}/cart/use-add-item.tsx          |     6 +-
 .../swell/src}/cart/use-cart.tsx              |     6 +-
 .../swell/src}/cart/use-remove-item.tsx       |    12 +-
 .../swell/src}/cart/use-update-item.tsx       |    12 +-
 .../swell/src}/cart/utils/checkout-create.ts  |     0
 .../swell/src}/cart/utils/checkout-to-cart.ts |     4 +-
 .../swell/src}/cart/utils/index.ts            |     0
 packages/swell/src/checkout/use-checkout.tsx  |    16 +
 .../swell/src}/commerce.config.json           |     0
 .../swell => packages/swell/src}/const.ts     |     0
 .../src/customer/address/use-add-item.tsx     |    17 +
 .../swell/src/customer/card/use-add-item.tsx  |    17 +
 .../swell/src}/customer/index.ts              |     0
 .../swell/src}/customer/use-customer.tsx      |     6 +-
 .../swell => packages/swell/src}/fetcher.ts   |     4 +-
 .../swell => packages/swell/src}/index.tsx    |     5 +-
 .../swell/src/next.config.cjs                 |     0
 .../swell/src}/product/index.ts               |     0
 packages/swell/src/product/use-price.tsx      |     2 +
 .../swell/src}/product/use-search.tsx         |     4 +-
 .../swell => packages/swell/src}/provider.ts  |     2 +-
 .../swell => packages/swell/src}/swell.ts     |     1 +
 .../swell => packages/swell/src}/types.ts     |     6 +-
 packages/swell/src/types/cart.ts              |     1 +
 packages/swell/src/types/checkout.ts          |     1 +
 packages/swell/src/types/common.ts            |     1 +
 packages/swell/src/types/customer.ts          |     1 +
 .../swell/src}/types/index.ts                 |     0
 packages/swell/src/types/login.ts             |    11 +
 packages/swell/src/types/logout.ts            |     1 +
 packages/swell/src/types/page.ts              |     1 +
 packages/swell/src/types/product.ts           |     1 +
 packages/swell/src/types/signup.ts            |     1 +
 packages/swell/src/types/site.ts              |     1 +
 packages/swell/src/types/wishlist.ts          |     1 +
 .../swell/src}/utils/customer-token.ts        |     0
 .../swell/src}/utils/get-categories.ts        |     0
 .../swell/src}/utils/get-checkout-id.ts       |     0
 .../swell/src}/utils/get-search-variables.ts  |     0
 .../swell/src}/utils/get-sort-variables.ts    |     0
 .../swell/src}/utils/get-vendors.ts           |     0
 .../swell/src}/utils/handle-fetch-response.ts |     2 +-
 .../swell/src}/utils/handle-login.ts          |     2 +-
 .../swell/src}/utils/index.ts                 |     0
 .../swell/src}/utils/normalize.ts             |     2 +-
 .../swell/src}/utils/storage.ts               |     0
 .../swell/src}/wishlist/use-add-item.tsx      |     0
 .../swell/src}/wishlist/use-remove-item.tsx   |     0
 .../swell/src}/wishlist/use-wishlist.tsx      |     4 +-
 packages/swell/tsconfig.json                  |    21 +
 {framework => packages}/vendure/.env.template |     0
 packages/vendure/.prettierignore              |     2 +
 packages/vendure/.prettierrc                  |     6 +
 {framework => packages}/vendure/README.md     |     6 +-
 {framework => packages}/vendure/codegen.json  |     6 +-
 packages/vendure/package.json                 |    78 +
 {framework => packages}/vendure/schema.d.ts   |     0
 .../vendure/schema.graphql                    |     0
 .../vendure/src}/api/endpoints/cart/index.ts  |     0
 .../src}/api/endpoints/catalog/index.ts       |     0
 .../src}/api/endpoints/catalog/products.ts    |     0
 .../src}/api/endpoints/checkout/index.ts      |     6 +-
 .../src}/api/endpoints/customer/address.ts    |     0
 .../src}/api/endpoints/customer/card.ts       |     0
 .../src}/api/endpoints/customer/index.ts      |     0
 .../vendure/src}/api/endpoints/login/index.ts |     0
 .../src}/api/endpoints/logout/index.ts        |     0
 .../src}/api/endpoints/signup/index.ts        |     0
 .../src}/api/endpoints/wishlist/index.tsx     |     0
 .../vendure/src}/api/index.ts                 |     7 +-
 .../src}/api/operations/get-all-pages.ts      |     4 +-
 .../api/operations/get-all-product-paths.ts   |    17 +-
 .../src}/api/operations/get-all-products.ts   |     6 +-
 .../api/operations/get-customer-wishlist.ts   |     2 +-
 .../vendure/src}/api/operations/get-page.ts   |     2 +-
 .../src}/api/operations/get-product.ts        |     6 +-
 .../src}/api/operations/get-site-info.ts      |     6 +-
 .../vendure/src}/api/operations/login.ts      |     6 +-
 .../src}/api/utils/fetch-graphql-api.ts       |     4 +-
 .../vendure/src}/api/utils/fetch.ts           |     0
 .../vendure/src}/auth/index.ts                |     0
 .../vendure/src}/auth/use-login.tsx           |     8 +-
 .../vendure/src}/auth/use-logout.tsx          |     6 +-
 .../vendure/src}/auth/use-signup.tsx          |     8 +-
 .../vendure/src}/cart/index.ts                |     0
 .../vendure/src}/cart/use-add-item.tsx        |     8 +-
 .../vendure/src}/cart/use-cart.tsx            |     6 +-
 .../vendure/src}/cart/use-remove-item.tsx     |    12 +-
 .../vendure/src}/cart/use-update-item.tsx     |    12 +-
 .../vendure/src/checkout/use-checkout.tsx     |    16 +
 .../vendure/src}/commerce.config.json         |     0
 .../src/customer/address/use-add-item.tsx     |    17 +
 .../src/customer/card/use-add-item.tsx        |    17 +
 .../vendure/src}/customer/index.ts            |     0
 .../vendure/src}/customer/use-customer.tsx    |     8 +-
 .../vendure/src}/fetcher.ts                   |     4 +-
 .../vendure/src}/index.tsx                    |     5 +-
 .../vendure/src/next.config.cjs               |     0
 .../vendure/src}/product/index.ts             |     0
 packages/vendure/src/product/use-price.tsx    |     2 +
 .../vendure/src}/product/use-search.tsx       |     8 +-
 .../vendure/src}/provider.ts                  |     0
 packages/vendure/src/types/cart.ts            |     1 +
 packages/vendure/src/types/checkout.ts        |     1 +
 packages/vendure/src/types/common.ts          |     1 +
 packages/vendure/src/types/customer.ts        |     1 +
 .../vendure/src}/types/index.ts               |     0
 packages/vendure/src/types/login.ts           |    12 +
 packages/vendure/src/types/logout.ts          |     1 +
 packages/vendure/src/types/page.ts            |     1 +
 packages/vendure/src/types/product.ts         |     1 +
 packages/vendure/src/types/signup.ts          |     1 +
 packages/vendure/src/types/site.ts            |     1 +
 packages/vendure/src/types/wishlist.ts        |     1 +
 .../vendure/src}/utils/array-to-tree.ts       |     0
 .../src}/utils/fragments/cart-fragment.ts     |     0
 .../utils/fragments/search-result-fragment.ts |     0
 .../mutations/add-item-to-order-mutation.ts   |     0
 .../mutations/adjust-order-line-mutation.ts   |     0
 .../src}/utils/mutations/log-in-mutation.ts   |     0
 .../src}/utils/mutations/log-out-mutation.ts  |     0
 .../mutations/remove-order-line-mutation.ts   |     0
 .../src}/utils/mutations/sign-up-mutation.ts  |     0
 .../vendure/src}/utils/normalize.ts           |     6 +-
 .../utils/queries/active-customer-query.ts    |     0
 .../queries/get-all-product-paths-query.ts    |     0
 .../utils/queries/get-all-products-query.ts   |     0
 .../src}/utils/queries/get-cart-query.ts      |     0
 .../utils/queries/get-collections-query.ts    |     0
 .../src}/utils/queries/get-product-query.ts   |     0
 .../src}/utils/queries/search-query.ts        |     0
 .../vendure/src}/wishlist/use-add-item.tsx    |     0
 .../vendure/src}/wishlist/use-remove-item.tsx |     0
 .../vendure/src}/wishlist/use-wishlist.tsx    |     4 +-
 packages/vendure/tsconfig.json                |    21 +
 .env.template => site/.env.template           |    12 +-
 .eslintrc => site/.eslintrc                   |     0
 site/.gitignore                               |    36 +
 site/.prettierignore                          |     3 +
 site/.prettierrc                              |     6 +
 {assets => site/assets}/base.css              |     0
 {assets => site/assets}/chrome-bug.css        |     0
 {assets => site/assets}/components.css        |     0
 {assets => site/assets}/main.css              |     0
 site/commerce-config.js                       |   105 +
 .../commerce.config.json                      |     0
 .../components}/auth/ForgotPassword.tsx       |     0
 .../components}/auth/LoginView.tsx            |     0
 .../components}/auth/SignUpView.tsx           |     0
 {components => site/components}/auth/index.ts |     0
 .../cart/CartItem/CartItem.module.css         |     0
 .../components}/cart/CartItem/CartItem.tsx    |     0
 .../components}/cart/CartItem/index.ts        |     0
 .../CartSidebarView.module.css                |     0
 .../cart/CartSidebarView/CartSidebarView.tsx  |     0
 .../components}/cart/CartSidebarView/index.ts |     0
 {components => site/components}/cart/index.ts |     0
 .../CheckoutSidebarView.module.css            |     0
 .../CheckoutSidebarView.tsx                   |     0
 .../checkout/CheckoutSidebarView/index.ts     |     0
 .../PaymentMethodView.module.css              |     0
 .../PaymentMethodView/PaymentMethodView.tsx   |     0
 .../checkout/PaymentMethodView/index.ts       |     0
 .../PaymentWidget/PaymentWidget.module.css    |     0
 .../checkout/PaymentWidget/PaymentWidget.tsx  |     0
 .../checkout/PaymentWidget/index.ts           |     0
 .../ShippingView/ShippingView.module.css      |     0
 .../checkout/ShippingView/ShippingView.tsx    |     0
 .../checkout/ShippingView/index.ts            |     0
 .../ShippingWidget/ShippingWidget.module.css  |     0
 .../ShippingWidget/ShippingWidget.tsx         |     0
 .../checkout/ShippingWidget/index.ts          |     0
 .../components}/checkout/context.tsx          |     0
 .../components}/common/Avatar/Avatar.tsx      |     0
 .../components}/common/Avatar/index.ts        |     0
 .../common/FeatureBar/FeatureBar.module.css   |     0
 .../common/FeatureBar/FeatureBar.tsx          |     0
 .../components}/common/FeatureBar/index.ts    |     0
 .../common/Footer/Footer.module.css           |     0
 .../components}/common/Footer/Footer.tsx      |     0
 .../components}/common/Footer/index.ts        |     0
 .../components}/common/Head/Head.tsx          |     0
 .../components}/common/Head/index.ts          |     0
 .../HomeAllProductsGrid.module.css            |     0
 .../HomeAllProductsGrid.tsx                   |     0
 .../common/HomeAllProductsGrid/index.ts       |     0
 .../common/I18nWidget/I18nWidget.module.css   |     0
 .../common/I18nWidget/I18nWidget.tsx          |     0
 .../components}/common/I18nWidget/index.ts    |     0
 .../common/Layout/Layout.module.css           |     0
 .../components}/common/Layout/Layout.tsx      |     0
 .../components}/common/Layout/index.ts        |     0
 .../common/Navbar/Navbar.module.css           |     0
 .../components}/common/Navbar/Navbar.tsx      |     0
 .../components}/common/Navbar/NavbarRoot.tsx  |     0
 .../components}/common/Navbar/index.ts        |     0
 .../common/Searchbar/Searchbar.module.css     |     0
 .../common/Searchbar/Searchbar.tsx            |     0
 .../components}/common/Searchbar/index.ts     |     0
 .../SidebarLayout/SidebarLayout.module.css    |     0
 .../common/SidebarLayout/SidebarLayout.tsx    |     0
 .../components}/common/SidebarLayout/index.ts |     0
 .../common/UserNav/DropdownMenu.module.css    |     0
 .../common/UserNav/DropdownMenu.tsx           |     0
 .../MenuSidebarView.module.css                |     0
 .../MenuSidebarView/MenuSidebarView.tsx       |     0
 .../common/UserNav/MenuSidebarView/index.ts   |     0
 .../common/UserNav/UserNav.module.css         |     0
 .../components}/common/UserNav/UserNav.tsx    |     0
 .../components}/common/UserNav/index.ts       |     0
 .../components}/common/index.ts               |     0
 .../components}/icons/ArrowLeft.tsx           |     0
 .../components}/icons/ArrowRight.tsx          |     0
 {components => site/components}/icons/Bag.tsx |     0
 .../components}/icons/Check.tsx               |     0
 .../components}/icons/ChevronDown.tsx         |     0
 .../components}/icons/ChevronLeft.tsx         |     0
 .../components}/icons/ChevronRight.tsx        |     0
 .../components}/icons/ChevronUp.tsx           |     0
 .../components}/icons/CreditCard.tsx          |     0
 .../components}/icons/Cross.tsx               |     0
 .../components}/icons/DoubleChevron.tsx       |     0
 .../components}/icons/Github.tsx              |     0
 .../components}/icons/Heart.tsx               |     0
 .../components}/icons/Info.tsx                |     0
 .../components}/icons/MapPin.tsx              |     0
 .../components}/icons/Menu.tsx                |     0
 .../components}/icons/Minus.tsx               |     0
 .../components}/icons/Moon.tsx                |     0
 .../components}/icons/Plus.tsx                |     0
 .../components}/icons/Star.tsx                |     0
 {components => site/components}/icons/Sun.tsx |     0
 .../components}/icons/Trash.tsx               |     0
 .../components}/icons/Vercel.tsx              |     0
 .../components}/icons/index.ts                |     0
 .../ProductCard/ProductCard.module.css        |     0
 .../product/ProductCard/ProductCard.tsx       |     0
 .../components}/product/ProductCard/index.ts  |     0
 .../product/ProductOptions/ProductOptions.tsx |     0
 .../product/ProductOptions/index.ts           |     0
 .../ProductSidebar/ProductSidebar.module.css  |     0
 .../product/ProductSidebar/ProductSidebar.tsx |     0
 .../product/ProductSidebar/index.ts           |     0
 .../ProductSlider/ProductSlider.module.css    |     0
 .../product/ProductSlider/ProductSlider.tsx   |     0
 .../product/ProductSlider/index.ts            |     0
 .../ProductSliderControl.module.css           |     0
 .../ProductSliderControl.tsx                  |     0
 .../product/ProductSliderControl/index.ts     |     0
 .../product/ProductTag/ProductTag.module.css  |     0
 .../product/ProductTag/ProductTag.tsx         |     0
 .../components}/product/ProductTag/index.ts   |     0
 .../ProductView/ProductView.module.css        |     0
 .../product/ProductView/ProductView.tsx       |     0
 .../components}/product/ProductView/index.ts  |     0
 .../product/Swatch/Swatch.module.css          |     0
 .../components}/product/Swatch/Swatch.tsx     |     0
 .../components}/product/Swatch/index.ts       |     0
 .../components}/product/helpers.ts            |     0
 .../components}/product/index.ts              |     0
 {components => site/components}/search.tsx    |     0
 .../components}/ui/Button/Button.module.css   |     0
 .../components}/ui/Button/Button.tsx          |     0
 .../components}/ui/Button/index.ts            |     0
 .../ui/Collapse/Collapse.module.css           |     0
 .../components}/ui/Collapse/Collapse.tsx      |     0
 .../components}/ui/Collapse/index.ts          |     0
 .../components}/ui/Container/Container.tsx    |     0
 .../components}/ui/Container/index.ts         |     0
 .../components}/ui/Grid/Grid.module.css       |     0
 .../components}/ui/Grid/Grid.tsx              |     0
 .../components}/ui/Grid/index.ts              |     0
 .../components}/ui/Hero/Hero.module.css       |     0
 .../components}/ui/Hero/Hero.tsx              |     0
 .../components}/ui/Hero/index.ts              |     0
 .../components}/ui/Input/Input.module.css     |     0
 .../components}/ui/Input/Input.tsx            |     0
 .../components}/ui/Input/index.ts             |     0
 .../components}/ui/Link/Link.tsx              |     0
 .../components}/ui/Link/index.ts              |     0
 .../ui/LoadingDots/LoadingDots.module.css     |     0
 .../ui/LoadingDots/LoadingDots.tsx            |     0
 .../components}/ui/LoadingDots/index.ts       |     0
 .../components}/ui/Logo/Logo.tsx              |     0
 .../components}/ui/Logo/index.ts              |     0
 .../components}/ui/Marquee/Marquee.module.css |     0
 .../components}/ui/Marquee/Marquee.tsx        |     0
 .../components}/ui/Marquee/index.ts           |     0
 .../components}/ui/Modal/Modal.module.css     |     0
 .../components}/ui/Modal/Modal.tsx            |     0
 .../components}/ui/Modal/index.ts             |     0
 .../ui/Quantity/Quantity.module.css           |     0
 .../components}/ui/Quantity/Quantity.tsx      |     0
 .../components}/ui/Quantity/index.ts          |     0
 {components => site/components}/ui/README.md  |     0
 .../components}/ui/Rating/Rating.module.css   |     0
 .../components}/ui/Rating/Rating.tsx          |     0
 .../components}/ui/Rating/index.ts            |     0
 .../components}/ui/Sidebar/Sidebar.module.css |     0
 .../components}/ui/Sidebar/Sidebar.tsx        |     0
 .../components}/ui/Sidebar/index.ts           |     0
 .../ui/Skeleton/Skeleton.module.css           |     0
 .../components}/ui/Skeleton/Skeleton.tsx      |     0
 .../components}/ui/Skeleton/index.ts          |     0
 .../components}/ui/Text/Text.module.css       |     0
 .../components}/ui/Text/Text.tsx              |     0
 .../components}/ui/Text/index.ts              |     0
 .../components}/ui/context.tsx                |     0
 {components => site/components}/ui/index.ts   |     0
 .../WishlistButton/WishlistButton.module.css  |     0
 .../WishlistButton/WishlistButton.tsx         |     0
 .../wishlist/WishlistButton/index.ts          |     0
 .../WishlistCard/WishlistCard.module.css      |     0
 .../wishlist/WishlistCard/WishlistCard.tsx    |     2 +-
 .../wishlist/WishlistCard/index.ts            |     0
 .../components}/wishlist/index.ts             |     0
 {config => site/config}/seo.json              |     0
 global.d.ts => site/global.d.ts               |     0
 {lib => site/lib}/api/commerce.ts             |     0
 .../lib}/click-outside/click-outside.tsx      |     0
 {lib => site/lib}/click-outside/has-parent.js |     0
 {lib => site/lib}/click-outside/index.ts      |     0
 {lib => site/lib}/click-outside/is-in-dom.js  |     0
 {lib => site/lib}/colors.ts                   |     0
 {lib => site/lib}/focus-trap.tsx              |     0
 {lib => site/lib}/get-slug.ts                 |     0
 {lib => site/lib}/hooks/useAcceptCookies.ts   |     0
 {lib => site/lib}/hooks/useUserAvatar.ts      |     0
 {lib => site/lib}/range-map.ts                |     0
 {lib => site/lib}/search-props.tsx            |     0
 {lib => site/lib}/search.tsx                  |     0
 {lib => site/lib}/to-pixels.ts                |     0
 {lib => site/lib}/usage-warns.ts              |     0
 next-env.d.ts => site/next-env.d.ts           |     0
 next.config.js => site/next.config.js         |    15 +-
 site/package.json                             |   106 +
 {pages => site/pages}/404.tsx                 |     0
 {pages => site/pages}/[...pages].tsx          |     0
 {pages => site/pages}/_app.tsx                |     0
 {pages => site/pages}/_document.tsx           |     0
 {pages => site/pages}/api/cart.ts             |     0
 {pages => site/pages}/api/catalog/products.ts |     0
 {pages => site/pages}/api/checkout.ts         |     0
 {pages => site/pages}/api/customer/address.ts |     0
 {pages => site/pages}/api/customer/card.ts    |     0
 {pages => site/pages}/api/customer/index.ts   |     0
 {pages => site/pages}/api/login.ts            |     0
 {pages => site/pages}/api/logout.ts           |     0
 {pages => site/pages}/api/signup.ts           |     0
 {pages => site/pages}/api/wishlist.ts         |     0
 {pages => site/pages}/cart.tsx                |     0
 {pages => site/pages}/index.tsx               |     0
 {pages => site/pages}/orders.tsx              |     0
 {pages => site/pages}/product/[slug].tsx      |     0
 {pages => site/pages}/profile.tsx             |     0
 {pages => site/pages}/search.tsx              |     0
 {pages => site/pages}/search/[category].tsx   |     0
 .../pages}/search/designers/[name].tsx        |     0
 .../search/designers/[name]/[category].tsx    |     0
 {pages => site/pages}/wishlist.tsx            |     0
 postcss.config.js => site/postcss.config.js   |     0
 .../public}/assets/drop-shirt-0.png           |   Bin
 .../public}/assets/drop-shirt-1.png           |   Bin
 .../public}/assets/drop-shirt-2.png           |   Bin
 {public => site/public}/assets/drop-shirt.png |   Bin
 .../public}/assets/lightweight-jacket-0.png   |   Bin
 .../public}/assets/lightweight-jacket-1.png   |   Bin
 .../public}/assets/lightweight-jacket-2.png   |   Bin
 {public => site/public}/assets/t-shirt-0.png  |   Bin
 {public => site/public}/assets/t-shirt-1.png  |   Bin
 {public => site/public}/assets/t-shirt-2.png  |   Bin
 {public => site/public}/assets/t-shirt-3.png  |   Bin
 {public => site/public}/assets/t-shirt-4.png  |   Bin
 {public => site/public}/bg-products.svg       |     0
 {public => site/public}/card.png              |   Bin
 {public => site/public}/cursor-left.png       |   Bin
 {public => site/public}/cursor-right.png      |   Bin
 {public => site/public}/favicon.ico           |   Bin
 {public => site/public}/flag-en-us.svg        |     0
 {public => site/public}/flag-es-ar.svg        |     0
 {public => site/public}/flag-es-co.svg        |     0
 {public => site/public}/flag-es.svg           |     0
 {public => site/public}/icon-144x144.png      |   Bin
 {public => site/public}/icon-192x192.png      |   Bin
 {public => site/public}/icon-512x512.png      |   Bin
 {public => site/public}/icon.png              |   Bin
 .../public}/product-img-placeholder.svg       |     0
 {public => site/public}/site.webmanifest      |     0
 {public => site/public}/slider-arrows.png     |   Bin
 {public => site/public}/vercel.svg            |     0
 tailwind.config.js => site/tailwind.config.js |     0
 tsconfig.json => site/tsconfig.json           |    25 +-
 swell-js.d.ts                                 |     1 -
 yarn.lock                                     |  6038 ++++++
 1326 files changed, 9109 insertions(+), 19494 deletions(-)
 delete mode 100644 framework/bigcommerce/product/use-price.tsx
 delete mode 100644 framework/bigcommerce/types/checkout.ts
 delete mode 100644 framework/bigcommerce/types/common.ts
 delete mode 100644 framework/bigcommerce/types/customer.ts
 delete mode 100644 framework/bigcommerce/types/login.ts
 delete mode 100644 framework/bigcommerce/types/logout.ts
 delete mode 100644 framework/bigcommerce/types/product.ts
 delete mode 100644 framework/bigcommerce/types/signup.ts
 delete mode 100644 framework/commerce/config.js
 delete mode 100644 framework/commercejs/product/use-price.tsx
 delete mode 100644 framework/commercejs/types/common.ts
 delete mode 100644 framework/commercejs/types/customer.ts
 delete mode 100644 framework/commercejs/types/logout.ts
 delete mode 100644 framework/commercejs/types/page.ts
 delete mode 100644 framework/commercejs/types/signup.ts
 delete mode 100644 framework/commercejs/types/wishlist.ts
 delete mode 100644 framework/kibocommerce/checkout/use-checkout.tsx
 delete mode 100644 framework/kibocommerce/customer/address/use-add-item.tsx
 delete mode 100644 framework/kibocommerce/customer/card/use-add-item.tsx
 delete mode 100644 framework/kibocommerce/product/use-price.tsx
 delete mode 100644 framework/kibocommerce/types/login.ts
 delete mode 100644 framework/kibocommerce/types/logout.ts
 delete mode 100644 framework/kibocommerce/types/signup.ts
 delete mode 100644 framework/local/product/use-price.tsx
 delete mode 100644 framework/ordercloud/product/use-price.tsx
 delete mode 100644 framework/saleor/customer/address/use-add-item.tsx
 delete mode 100644 framework/saleor/customer/card/use-add-item.tsx
 delete mode 100644 framework/saleor/product/use-price.tsx
 delete mode 100644 framework/shopify/customer/address/use-add-item.tsx
 delete mode 100644 framework/shopify/customer/card/use-add-item.tsx
 delete mode 100644 framework/shopify/product/use-price.tsx
 delete mode 100644 framework/shopify/types/checkout.ts
 delete mode 100644 framework/shopify/types/common.ts
 delete mode 100644 framework/shopify/types/customer.ts
 delete mode 100644 framework/shopify/types/login.ts
 delete mode 100644 framework/shopify/types/logout.ts
 delete mode 100644 framework/shopify/types/product.ts
 delete mode 100644 framework/shopify/types/signup.ts
 delete mode 100644 framework/shopify/types/site.ts
 delete mode 100644 framework/shopify/types/wishlist.ts
 delete mode 100644 framework/spree/product/use-price.tsx
 delete mode 100644 framework/swell/checkout/use-checkout.tsx
 delete mode 100644 framework/swell/customer/address/use-add-item.tsx
 delete mode 100644 framework/swell/customer/card/use-add-item.tsx
 delete mode 100644 framework/swell/product/use-price.tsx
 delete mode 100644 framework/swell/types/cart.ts
 delete mode 100644 framework/swell/types/checkout.ts
 delete mode 100644 framework/swell/types/common.ts
 delete mode 100644 framework/swell/types/customer.ts
 delete mode 100644 framework/swell/types/login.ts
 delete mode 100644 framework/swell/types/logout.ts
 delete mode 100644 framework/swell/types/page.ts
 delete mode 100644 framework/swell/types/product.ts
 delete mode 100644 framework/swell/types/signup.ts
 delete mode 100644 framework/swell/types/site.ts
 delete mode 100644 framework/swell/types/wishlist.ts
 delete mode 100644 framework/vendure/checkout/use-checkout.tsx
 delete mode 100644 framework/vendure/customer/address/use-add-item.tsx
 delete mode 100644 framework/vendure/customer/card/use-add-item.tsx
 delete mode 100644 framework/vendure/product/use-price.tsx
 delete mode 100644 framework/vendure/types/cart.ts
 delete mode 100644 framework/vendure/types/checkout.ts
 delete mode 100644 framework/vendure/types/common.ts
 delete mode 100644 framework/vendure/types/customer.ts
 delete mode 100644 framework/vendure/types/login.ts
 delete mode 100644 framework/vendure/types/logout.ts
 delete mode 100644 framework/vendure/types/page.ts
 delete mode 100644 framework/vendure/types/product.ts
 delete mode 100644 framework/vendure/types/signup.ts
 delete mode 100644 framework/vendure/types/site.ts
 delete mode 100644 framework/vendure/types/wishlist.ts
 delete mode 100644 package-lock.json
 rename {framework => packages}/bigcommerce/.env.template (100%)
 create mode 100644 packages/bigcommerce/.prettierignore
 create mode 100644 packages/bigcommerce/.prettierrc
 rename {framework => packages}/bigcommerce/README.md (97%)
 rename codegen.bigcommerce.json => packages/bigcommerce/codegen.json (73%)
 create mode 100644 packages/bigcommerce/package.json
 rename {framework => packages}/bigcommerce/schema.d.ts (100%)
 rename {framework => packages}/bigcommerce/schema.graphql (100%)
 rename {framework => packages}/bigcommerce/scripts/generate-definitions.js (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/definitions/catalog.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/definitions/store-content.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/definitions/wishlist.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/cart/add-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/cart/get-cart.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/cart/index.ts (81%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/cart/remove-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/cart/update-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/catalog/products/get-products.ts (97%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/catalog/products/index.ts (76%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/checkout/get-checkout.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/checkout/index.ts (77%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/customer/get-logged-in-customer.ts (94%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/customer/index.ts (78%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/login/index.ts (75%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/login/login.ts (95%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/logout/index.ts (76%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/logout/logout.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/signup/index.ts (76%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/signup/signup.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/wishlist/add-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/wishlist/get-wishlist.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/wishlist/index.ts (80%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/endpoints/wishlist/remove-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/fragments/category-tree.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/fragments/product.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/index.ts (99%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-all-pages.ts (97%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-all-product-paths.ts (94%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-all-products.ts (98%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-customer-wishlist.ts (98%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-page.ts (97%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-product.ts (98%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/get-site-info.ts (95%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/operations/login.ts (95%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/concat-cookie.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/errors.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/fetch-graphql-api.ts (88%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/fetch-store-api.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/fetch.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/filter-edges.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/get-cart-cookie.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/get-customer-id.ts (91%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/parse-item.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/set-product-locale-meta.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/api/utils/types.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/auth/index.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/auth/use-login.tsx (81%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/auth/use-logout.tsx (81%)
 rename {framework/kibocommerce => packages/bigcommerce/src}/auth/use-signup.tsx (83%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/cart/index.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/cart/use-add-item.tsx (77%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/cart/use-cart.tsx (78%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/cart/use-remove-item.tsx (84%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/cart/use-update-item.tsx (89%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/checkout/use-checkout.tsx (64%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/commerce.config.json (100%)
 rename {framework/local/customer/card => packages/bigcommerce/src/customer/address}/use-add-item.tsx (62%)
 rename {framework/local/customer/address => packages/bigcommerce/src/customer/card}/use-add-item.tsx (63%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/customer/index.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/customer/use-customer.tsx (79%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/fetcher.ts (88%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/index.tsx (93%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/lib/get-slug.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/lib/immutability.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/lib/normalize.ts (100%)
 rename framework/bigcommerce/next.config.js => packages/bigcommerce/src/next.config.cjs (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/product/index.ts (100%)
 create mode 100644 packages/bigcommerce/src/product/use-price.tsx
 rename {framework/bigcommerce => packages/bigcommerce/src}/product/use-search.tsx (91%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/provider.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/types/cart.ts (94%)
 create mode 100644 packages/bigcommerce/src/types/checkout.ts
 create mode 100644 packages/bigcommerce/src/types/common.ts
 create mode 100644 packages/bigcommerce/src/types/customer.ts
 rename {framework/bigcommerce => packages/bigcommerce/src}/types/index.ts (100%)
 create mode 100644 packages/bigcommerce/src/types/login.ts
 create mode 100644 packages/bigcommerce/src/types/logout.ts
 rename {framework/bigcommerce => packages/bigcommerce/src}/types/page.ts (68%)
 create mode 100644 packages/bigcommerce/src/types/product.ts
 create mode 100644 packages/bigcommerce/src/types/signup.ts
 rename {framework/bigcommerce => packages/bigcommerce/src}/types/site.ts (77%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/types/wishlist.ts (85%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/wishlist/index.ts (100%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/wishlist/use-add-item.tsx (82%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/wishlist/use-remove-item.tsx (85%)
 rename {framework/bigcommerce => packages/bigcommerce/src}/wishlist/use-wishlist.tsx (90%)
 create mode 100644 packages/bigcommerce/tsconfig.json
 create mode 100644 packages/commerce/.prettierignore
 create mode 100644 packages/commerce/.prettierrc
 rename {framework => packages}/commerce/README.md (100%)
 create mode 100755 packages/commerce/fixup.mjs
 rename {framework => packages}/commerce/new-provider.md (59%)
 create mode 100644 packages/commerce/package.json
 rename {framework/commerce => packages/commerce/src}/api/endpoints/cart.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/checkout.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/login.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/logout.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/signup.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/endpoints/wishlist.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/index.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/operations.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/utils/errors.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/utils/is-allowed-method.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/utils/is-allowed-operation.ts (100%)
 rename {framework/commerce => packages/commerce/src}/api/utils/types.ts (100%)
 rename {framework/commerce => packages/commerce/src}/auth/use-login.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/auth/use-logout.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/auth/use-signup.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/cart/use-add-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/cart/use-cart.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/cart/use-remove-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/cart/use-update-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/checkout/use-checkout.ts (100%)
 rename {framework/commerce => packages/commerce/src}/checkout/use-submit-checkout.tsx (100%)
 create mode 100644 packages/commerce/src/config.cjs
 rename {framework/commerce => packages/commerce/src}/customer/address/use-add-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/address/use-addresses.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/address/use-remove-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/address/use-update-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/card/use-add-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/card/use-cards.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/card/use-remove-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/card/use-update-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/customer/use-customer.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/index.tsx (99%)
 rename {framework/commerce => packages/commerce/src}/product/use-price.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/product/use-search.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/types/cart.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/checkout.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/common.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/customer/address.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/customer/card.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/customer/index.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/index.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/login.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/logout.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/page.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/product.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/signup.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/site.ts (100%)
 rename {framework/commerce => packages/commerce/src}/types/wishlist.ts (100%)
 rename {framework/commerce => packages/commerce/src}/utils/default-fetcher.ts (100%)
 rename {framework/commerce => packages/commerce/src}/utils/define-property.ts (100%)
 rename {framework/commerce => packages/commerce/src}/utils/errors.ts (100%)
 rename {framework/commerce => packages/commerce/src}/utils/types.ts (100%)
 rename {framework/commerce => packages/commerce/src}/utils/use-data.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/utils/use-hook.ts (100%)
 rename {framework/commerce => packages/commerce/src}/wishlist/index.ts (100%)
 rename {framework/commerce => packages/commerce/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/commerce => packages/commerce/src}/wishlist/use-wishlist.tsx (100%)
 create mode 100644 packages/commerce/tsconfig.json
 rename {framework => packages}/commercejs/.env.template (100%)
 create mode 100644 packages/commercejs/.prettierignore
 create mode 100644 packages/commercejs/.prettierrc
 rename {framework => packages}/commercejs/README.md (92%)
 create mode 100644 packages/commercejs/global.d.ts
 create mode 100644 packages/commercejs/package.json
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/cart/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/catalog/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/catalog/products/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/checkout/get-checkout.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/checkout/index.ts (79%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/checkout/submit-checkout.ts (88%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/customer/address/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/customer/card/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/login/index.ts (75%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/login/login.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/logout/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/signup/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/endpoints/wishlist/index.tsx (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/index.ts (89%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-all-pages.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-all-product-paths.ts (92%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-all-products.ts (91%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-page.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-product.ts (93%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/get-site-info.ts (92%)
 rename {framework/commercejs => packages/commercejs/src}/api/operations/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/api/utils/graphql-fetch.ts (71%)
 rename {framework/commercejs => packages/commercejs/src}/api/utils/sdk-fetch.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/auth/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/auth/use-login.tsx (80%)
 rename {framework/commercejs => packages/commercejs/src}/auth/use-logout.tsx (74%)
 rename {framework/commercejs => packages/commercejs/src}/auth/use-signup.tsx (64%)
 rename {framework/commercejs => packages/commercejs/src}/cart/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/cart/use-add-item.tsx (84%)
 rename {framework/commercejs => packages/commercejs/src}/cart/use-cart.tsx (83%)
 rename {framework/commercejs => packages/commercejs/src}/cart/use-remove-item.tsx (81%)
 rename {framework/commercejs => packages/commercejs/src}/cart/use-update-item.tsx (89%)
 rename {framework/commercejs => packages/commercejs/src}/checkout/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/checkout/use-checkout.tsx (85%)
 rename {framework/commercejs => packages/commercejs/src}/checkout/use-submit-checkout.tsx (82%)
 rename {framework/commercejs => packages/commercejs/src}/commerce.config.json (100%)
 rename {framework/commercejs => packages/commercejs/src}/constants.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/customer/address/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/customer/address/use-add-item.tsx (70%)
 rename {framework/commercejs => packages/commercejs/src}/customer/address/use-addresses.tsx (75%)
 rename {framework/commercejs => packages/commercejs/src}/customer/card/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/customer/card/use-add-item.tsx (70%)
 rename {framework/commercejs => packages/commercejs/src}/customer/card/use-cards.tsx (71%)
 rename {framework/commercejs => packages/commercejs/src}/customer/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/customer/use-customer.tsx (87%)
 rename {framework/commercejs => packages/commercejs/src}/fetcher.ts (93%)
 rename {framework/commercejs => packages/commercejs/src}/index.tsx (93%)
 rename {framework/commercejs => packages/commercejs/src}/lib/commercejs.ts (100%)
 rename framework/commercejs/next.config.js => packages/commercejs/src/next.config.cjs (100%)
 rename {framework/commercejs => packages/commercejs/src}/product/index.ts (100%)
 create mode 100644 packages/commercejs/src/product/use-price.tsx
 rename {framework/commercejs => packages/commercejs/src}/product/use-search.tsx (86%)
 rename {framework/commercejs => packages/commercejs/src}/provider.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/types/cart.ts (78%)
 rename {framework/commercejs => packages/commercejs/src}/types/checkout.ts (69%)
 create mode 100644 packages/commercejs/src/types/common.ts
 create mode 100644 packages/commercejs/src/types/customer.ts
 rename {framework/commercejs => packages/commercejs/src}/types/index.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/types/login.ts (56%)
 create mode 100644 packages/commercejs/src/types/logout.ts
 create mode 100644 packages/commercejs/src/types/page.ts
 rename {framework/commercejs => packages/commercejs/src}/types/product.ts (78%)
 create mode 100644 packages/commercejs/src/types/signup.ts
 rename {framework/commercejs => packages/commercejs/src}/types/site.ts (66%)
 create mode 100644 packages/commercejs/src/types/wishlist.ts
 rename {framework/commercejs => packages/commercejs/src}/utils/get-deployment-url.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/utils/normalize-cart.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/utils/normalize-category.ts (82%)
 rename {framework/commercejs => packages/commercejs/src}/utils/normalize-checkout.ts (92%)
 rename {framework/commercejs => packages/commercejs/src}/utils/normalize-product.ts (100%)
 rename {framework/commercejs => packages/commercejs/src}/utils/product-search.ts (94%)
 rename {framework/commercejs => packages/commercejs/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/commercejs => packages/commercejs/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/commercejs => packages/commercejs/src}/wishlist/use-wishlist.tsx (92%)
 create mode 100644 packages/commercejs/tsconfig.json
 rename {framework => packages}/kibocommerce/.env.template (100%)
 create mode 100644 packages/kibocommerce/.prettierignore
 create mode 100644 packages/kibocommerce/.prettierrc
 rename {framework => packages}/kibocommerce/README.md (95%)
 rename {framework => packages}/kibocommerce/codegen.json (78%)
 create mode 100644 packages/kibocommerce/package.json
 rename {framework => packages}/kibocommerce/schema.d.ts (100%)
 rename {framework => packages}/kibocommerce/schema.graphql (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/cart/add-item.ts (98%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/cart/get-cart.ts (96%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/cart/index.ts (79%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/cart/remove-item.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/cart/update-item.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/catalog/products/index.ts (73%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/catalog/products/products.ts (94%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/checkout/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/customer/customer.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/customer/index.ts (77%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/login/index.ts (76%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/login/login.ts (92%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/logout/index.ts (76%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/logout/logout.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/signup/index.ts (76%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/signup/signup.ts (95%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/wishlist/add-item.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/wishlist/get-wishlist.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/wishlist/index.ts (78%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/endpoints/wishlist/remove-item.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/fragments/cartItemDetails.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/fragments/category.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/fragments/product.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/fragments/productDetails.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/fragments/search.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/index.ts (93%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/addItemToWishlist-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/addToCart-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/create-wishlist-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/login-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/removeItemFromCart-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/removeItemFromWishlist-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/signup-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/mutations/updateCartItemQuantity-mutation.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-all-pages.ts (92%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-all-product-paths.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-all-products.ts (81%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-customer-wishlist.ts (94%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-page.ts (92%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-product.ts (78%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/get-site-info.ts (88%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/operations/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-all-pages-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-all-products-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-anonymous-shopper-token-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-cart-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-categories-tree-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-customer-account-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-customer-wishlist-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-page-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/get-product-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/queries/product-search-query.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/api-auth-helper.ts (90%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/cookie-handler.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/fetch-graphql-api.ts (90%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/fetch-local.ts (89%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/fetch.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/get-anonymous-shopper-token.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/api/utils/get-customer-id.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/auth/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/auth/use-login.tsx (84%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/auth/use-logout.tsx (78%)
 rename {framework/bigcommerce => packages/kibocommerce/src}/auth/use-signup.tsx (83%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/cart/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/cart/use-add-item.tsx (77%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/cart/use-cart.tsx (85%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/cart/use-remove-item.tsx (84%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/cart/use-update-item.tsx (89%)
 rename {framework/saleor => packages/kibocommerce/src}/checkout/use-checkout.tsx (64%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/commerce.config.json (100%)
 create mode 100644 packages/kibocommerce/src/customer/address/use-add-item.tsx
 rename {framework/bigcommerce => packages/kibocommerce/src}/customer/card/use-add-item.tsx (63%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/customer/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/customer/use-customer.tsx (78%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/fetcher.ts (88%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/index.tsx (93%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/get-cookie-expiration-date.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/get-slug.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/immutability.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/normalize.ts (99%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/prepare-set-cookie.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/product-search-vars.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/lib/set-cookie.ts (100%)
 rename framework/kibocommerce/next.config.js => packages/kibocommerce/src/next.config.cjs (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/product/index.ts (100%)
 create mode 100644 packages/kibocommerce/src/product/use-price.tsx
 rename {framework/kibocommerce => packages/kibocommerce/src}/product/use-search.tsx (89%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/provider.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/types/customer.ts (87%)
 create mode 100644 packages/kibocommerce/src/types/login.ts
 create mode 100644 packages/kibocommerce/src/types/logout.ts
 rename {framework/kibocommerce => packages/kibocommerce/src}/types/page.ts (90%)
 create mode 100644 packages/kibocommerce/src/types/signup.ts
 rename {framework/kibocommerce => packages/kibocommerce/src}/wishlist/index.ts (100%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/wishlist/use-add-item.tsx (77%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/wishlist/use-remove-item.tsx (79%)
 rename {framework/kibocommerce => packages/kibocommerce/src}/wishlist/use-wishlist.tsx (86%)
 create mode 100644 packages/kibocommerce/tsconfig.json
 rename {framework => packages}/local/.env.template (100%)
 create mode 100644 packages/local/.prettierignore
 create mode 100644 packages/local/.prettierrc
 rename {framework => packages}/local/README.md (100%)
 create mode 100644 packages/local/package.json
 rename {framework/local => packages/local/src}/api/endpoints/cart/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/catalog/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/checkout/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/login/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/logout/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/signup/index.ts (100%)
 rename {framework/local => packages/local/src}/api/endpoints/wishlist/index.tsx (100%)
 rename {framework/local => packages/local/src}/api/index.ts (88%)
 rename {framework/local => packages/local/src}/api/operations/get-all-pages.ts (100%)
 rename {framework/local => packages/local/src}/api/operations/get-all-product-paths.ts (100%)
 rename {framework/local => packages/local/src}/api/operations/get-all-products.ts (72%)
 rename {framework/local => packages/local/src}/api/operations/get-customer-wishlist.ts (100%)
 rename {framework/local => packages/local/src}/api/operations/get-page.ts (100%)
 rename {framework/local => packages/local/src}/api/operations/get-product.ts (73%)
 rename {framework/local => packages/local/src}/api/operations/get-site-info.ts (87%)
 rename {framework/local => packages/local/src}/api/operations/index.ts (100%)
 rename {framework/local => packages/local/src}/api/utils/fetch-local.ts (87%)
 rename {framework/local => packages/local/src}/api/utils/fetch.ts (100%)
 rename {framework/local => packages/local/src}/auth/index.ts (100%)
 rename {framework/local => packages/local/src}/auth/use-login.tsx (65%)
 rename {framework/local => packages/local/src}/auth/use-logout.tsx (64%)
 rename {framework/ordercloud => packages/local/src}/auth/use-signup.tsx (70%)
 rename {framework/local => packages/local/src}/cart/index.ts (100%)
 rename {framework/local => packages/local/src}/cart/use-add-item.tsx (69%)
 rename {framework/local => packages/local/src}/cart/use-cart.tsx (85%)
 rename {framework/local => packages/local/src}/cart/use-remove-item.tsx (68%)
 rename {framework/local => packages/local/src}/cart/use-update-item.tsx (66%)
 rename {framework/shopify => packages/local/src}/checkout/use-checkout.tsx (63%)
 rename {framework/local => packages/local/src}/commerce.config.json (100%)
 create mode 100644 packages/local/src/customer/address/use-add-item.tsx
 create mode 100644 packages/local/src/customer/card/use-add-item.tsx
 rename {framework/local => packages/local/src}/customer/index.ts (100%)
 rename {framework/local => packages/local/src}/customer/use-customer.tsx (66%)
 rename {framework/local => packages/local/src}/data.json (100%)
 rename {framework/local => packages/local/src}/fetcher.ts (78%)
 rename {framework/local => packages/local/src}/index.tsx (73%)
 rename framework/local/next.config.js => packages/local/src/next.config.cjs (100%)
 rename {framework/local => packages/local/src}/product/index.ts (100%)
 create mode 100644 packages/local/src/product/use-price.tsx
 rename {framework/local => packages/local/src}/product/use-search.tsx (67%)
 rename {framework/local => packages/local/src}/provider.ts (100%)
 rename {framework/local => packages/local/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/local => packages/local/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/ordercloud => packages/local/src}/wishlist/use-wishlist.tsx (86%)
 create mode 100644 packages/local/tsconfig.json
 rename {framework => packages}/ordercloud/.env.template (100%)
 create mode 100644 packages/ordercloud/.prettierignore
 create mode 100644 packages/ordercloud/.prettierrc
 rename {framework => packages}/ordercloud/README.md (100%)
 create mode 100644 packages/ordercloud/package.json
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/cart/add-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/cart/get-cart.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/cart/index.ts (81%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/cart/remove-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/cart/update-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/catalog/products/get-products.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/catalog/products/index.ts (66%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/checkout/get-checkout.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/checkout/index.ts (79%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/checkout/submit-checkout.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/address/add-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/address/get-addresses.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/address/index.ts (82%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/address/remove-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/address/update-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/card/add-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/card/get-cards.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/card/index.ts (81%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/card/remove-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/card/update-item.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/login/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/logout/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/signup/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/endpoints/wishlist/index.tsx (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/index.ts (92%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-all-pages.ts (87%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-all-product-paths.ts (85%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-all-products.ts (86%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-page.ts (82%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-product.ts (91%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/get-site-info.ts (87%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/operations/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/utils/cart.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/utils/fetch-graphql.ts (71%)
 rename {framework/ordercloud => packages/ordercloud/src}/api/utils/fetch-rest.ts (98%)
 rename {framework/ordercloud => packages/ordercloud/src}/auth/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/auth/use-login.tsx (65%)
 rename {framework/ordercloud => packages/ordercloud/src}/auth/use-logout.tsx (64%)
 rename {framework/local => packages/ordercloud/src}/auth/use-signup.tsx (70%)
 rename {framework/ordercloud => packages/ordercloud/src}/cart/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/cart/use-add-item.tsx (77%)
 rename {framework/ordercloud => packages/ordercloud/src}/cart/use-cart.tsx (78%)
 rename {framework/ordercloud => packages/ordercloud/src}/cart/use-remove-item.tsx (84%)
 rename {framework/ordercloud => packages/ordercloud/src}/cart/use-update-item.tsx (87%)
 rename {framework/ordercloud => packages/ordercloud/src}/checkout/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/checkout/use-checkout.tsx (81%)
 rename {framework/ordercloud => packages/ordercloud/src}/checkout/use-submit-checkout.tsx (75%)
 rename {framework/ordercloud => packages/ordercloud/src}/commerce.config.json (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/constants.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/address/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/address/use-add-item.tsx (76%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/address/use-addresses.tsx (79%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/address/use-remove-item.tsx (86%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/address/use-update-item.tsx (81%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/card/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/card/use-add-item.tsx (76%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/card/use-cards.tsx (76%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/card/use-remove-item.tsx (86%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/card/use-update-item.tsx (81%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/index.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/customer/use-customer.tsx (66%)
 rename {framework/ordercloud => packages/ordercloud/src}/fetcher.ts (87%)
 rename {framework/ordercloud => packages/ordercloud/src}/index.tsx (93%)
 rename framework/ordercloud/next.config.js => packages/ordercloud/src/next.config.cjs (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/product/index.ts (100%)
 create mode 100644 packages/ordercloud/src/product/use-price.tsx
 rename {framework/ordercloud => packages/ordercloud/src}/product/use-search.tsx (84%)
 rename {framework/ordercloud => packages/ordercloud/src}/provider.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/cart.ts (96%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/category.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/checkout.ts (66%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/customer/address.ts (91%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/customer/card.ts (85%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/node.d.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/types/product.ts (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/utils/product.ts (95%)
 rename {framework/ordercloud => packages/ordercloud/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/ordercloud => packages/ordercloud/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/local => packages/ordercloud/src}/wishlist/use-wishlist.tsx (86%)
 create mode 100644 packages/ordercloud/tsconfig.json
 rename {framework => packages}/saleor/.env.template (100%)
 create mode 100644 packages/saleor/.prettierignore
 create mode 100644 packages/saleor/.prettierrc
 rename {framework => packages}/saleor/README.md (93%)
 rename codegen.json => packages/saleor/codegen.json (59%)
 create mode 100644 packages/saleor/package.json
 rename {framework => packages}/saleor/schema.d.ts (100%)
 rename {framework => packages}/saleor/schema.graphql (100%)
 rename {framework/saleor => packages/saleor/src}/api/cart.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/catalog/products.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/checkout.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/customers/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/customers/login.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/customers/logout.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/customers/signup.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/cart.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/checkout/index.ts (88%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/login.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/logout.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/signup.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/endpoints/wishlist.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/index.ts (96%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-all-pages.ts (88%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-all-product-paths.ts (87%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-all-products.ts (84%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-page.ts (89%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-product.ts (92%)
 rename {framework/saleor => packages/saleor/src}/api/operations/get-site-info.ts (84%)
 rename {framework/saleor => packages/saleor/src}/api/operations/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/operations/login.ts (93%)
 rename {framework/saleor => packages/saleor/src}/api/utils/fetch-all-products.ts (93%)
 rename {framework/saleor => packages/saleor/src}/api/utils/fetch-graphql-api.ts (93%)
 rename {framework/saleor => packages/saleor/src}/api/utils/fetch.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/utils/is-allowed-method.ts (100%)
 rename {framework/saleor => packages/saleor/src}/api/wishlist.ts (100%)
 rename {framework/saleor => packages/saleor/src}/auth/use-login.tsx (82%)
 rename {framework/saleor => packages/saleor/src}/auth/use-logout.tsx (81%)
 rename {framework/saleor => packages/saleor/src}/auth/use-signup.tsx (82%)
 rename {framework/saleor => packages/saleor/src}/cart/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/cart/use-add-item.tsx (79%)
 rename {framework/saleor => packages/saleor/src}/cart/use-cart.tsx (86%)
 rename {framework/saleor => packages/saleor/src}/cart/use-remove-item.tsx (85%)
 rename {framework/saleor => packages/saleor/src}/cart/use-update-item.tsx (89%)
 rename {framework/local => packages/saleor/src}/checkout/use-checkout.tsx (64%)
 rename {framework/saleor => packages/saleor/src}/commerce.config.json (100%)
 rename {framework/saleor => packages/saleor/src}/const.ts (100%)
 create mode 100644 packages/saleor/src/customer/address/use-add-item.tsx
 rename {framework/bigcommerce/customer/address => packages/saleor/src/customer/card}/use-add-item.tsx (63%)
 rename {framework/saleor => packages/saleor/src}/customer/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/customer/use-customer.tsx (73%)
 rename {framework/saleor => packages/saleor/src}/fetcher.ts (89%)
 rename {framework/saleor => packages/saleor/src}/index.tsx (93%)
 rename framework/saleor/next.config.js => packages/saleor/src/next.config.cjs (100%)
 create mode 100644 packages/saleor/src/product/use-price.tsx
 rename {framework/saleor => packages/saleor/src}/product/use-search.tsx (84%)
 rename {framework/saleor => packages/saleor/src}/provider.ts (100%)
 rename {framework/saleor => packages/saleor/src}/types.ts (90%)
 rename {framework/saleor => packages/saleor/src}/types/cart.ts (88%)
 rename {framework/saleor => packages/saleor/src}/utils/checkout-attach.ts (83%)
 rename {framework/saleor => packages/saleor/src}/utils/checkout-create.ts (85%)
 rename {framework/saleor => packages/saleor/src}/utils/checkout-to-cart.ts (91%)
 rename {framework/saleor => packages/saleor/src}/utils/customer-token.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/fragments/checkout-details.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/fragments/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/fragments/product.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/get-categories.ts (81%)
 rename {framework/saleor => packages/saleor/src}/utils/get-checkout-id.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/get-search-variables.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/get-sort-variables.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/get-vendors.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/handle-fetch-response.ts (90%)
 rename {framework/saleor => packages/saleor/src}/utils/handle-login.ts (91%)
 rename {framework/saleor => packages/saleor/src}/utils/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/account-create.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/checkout-attach.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/checkout-create.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/checkout-line-add.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/checkout-line-remove.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/checkout-line-update.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/session-create.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/mutations/session-destroy.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/normalize.ts (97%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/checkout-one.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/collection-many.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/collection-one.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/customer-current.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/customer-one.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/get-all-product-vendors-query.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/get-all-products-paths-query.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/index.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/page-many.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/page-one.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/product-many.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/queries/product-one-by-slug.ts (100%)
 rename {framework/saleor => packages/saleor/src}/utils/throw-user-errors.ts (83%)
 rename {framework/saleor => packages/saleor/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/saleor => packages/saleor/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/saleor => packages/saleor/src}/wishlist/use-wishlist.tsx (90%)
 create mode 100644 packages/saleor/tsconfig.json
 rename {framework => packages}/shopify/.env.template (100%)
 create mode 100644 packages/shopify/.prettierignore
 create mode 100644 packages/shopify/.prettierrc
 rename {framework => packages}/shopify/README.md (98%)
 rename {framework => packages}/shopify/codegen.json (81%)
 create mode 100644 packages/shopify/package.json
 rename {framework => packages}/shopify/schema.d.ts (100%)
 rename {framework => packages}/shopify/schema.graphql (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/cart.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/checkout/get-checkout.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/checkout/index.ts (76%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/login.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/logout.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/signup.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/endpoints/wishlist.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/index.ts (97%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-all-pages.ts (96%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-all-product-paths.ts (95%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-all-products.ts (96%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-page.ts (95%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-product.ts (91%)
 rename {framework/shopify => packages/shopify/src}/api/operations/get-site-info.ts (93%)
 rename {framework/shopify => packages/shopify/src}/api/operations/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/api/operations/login.ts (89%)
 rename {framework/shopify => packages/shopify/src}/api/utils/fetch-graphql-api.ts (94%)
 rename {framework/shopify => packages/shopify/src}/api/utils/fetch.ts (100%)
 rename {framework/shopify => packages/shopify/src}/auth/use-login.tsx (87%)
 rename {framework/shopify => packages/shopify/src}/auth/use-logout.tsx (87%)
 rename {framework/shopify => packages/shopify/src}/auth/use-signup.tsx (83%)
 rename {framework/shopify => packages/shopify/src}/cart/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/cart/use-add-item.tsx (84%)
 rename {framework/shopify => packages/shopify/src}/cart/use-cart.tsx (91%)
 rename {framework/shopify => packages/shopify/src}/cart/use-remove-item.tsx (90%)
 rename {framework/shopify => packages/shopify/src}/cart/use-update-item.tsx (93%)
 create mode 100644 packages/shopify/src/checkout/use-checkout.tsx
 rename {framework/shopify => packages/shopify/src}/commerce.config.json (100%)
 rename {framework/shopify => packages/shopify/src}/const.ts (100%)
 create mode 100644 packages/shopify/src/customer/address/use-add-item.tsx
 create mode 100644 packages/shopify/src/customer/card/use-add-item.tsx
 rename {framework/shopify => packages/shopify/src}/customer/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/customer/use-customer.tsx (85%)
 rename {framework/shopify => packages/shopify/src}/fetcher.ts (91%)
 rename {framework/shopify => packages/shopify/src}/index.tsx (73%)
 rename framework/shopify/next.config.js => packages/shopify/src/next.config.cjs (100%)
 create mode 100644 packages/shopify/src/product/use-price.tsx
 rename {framework/shopify => packages/shopify/src}/product/use-search.tsx (93%)
 rename {framework/shopify => packages/shopify/src}/provider.ts (100%)
 rename {framework/shopify => packages/shopify/src}/types/cart.ts (88%)
 create mode 100644 packages/shopify/src/types/checkout.ts
 create mode 100644 packages/shopify/src/types/common.ts
 create mode 100644 packages/shopify/src/types/customer.ts
 rename {framework/shopify => packages/shopify/src}/types/index.ts (100%)
 create mode 100644 packages/shopify/src/types/login.ts
 create mode 100644 packages/shopify/src/types/logout.ts
 rename {framework/shopify => packages/shopify/src}/types/page.ts (68%)
 create mode 100644 packages/shopify/src/types/product.ts
 create mode 100644 packages/shopify/src/types/signup.ts
 create mode 100644 packages/shopify/src/types/site.ts
 create mode 100644 packages/shopify/src/types/wishlist.ts
 rename {framework/shopify => packages/shopify/src}/utils/checkout-create.ts (92%)
 rename {framework/shopify => packages/shopify/src}/utils/checkout-to-cart.ts (91%)
 create mode 100644 packages/shopify/src/utils/colors.ts
 rename {framework/shopify => packages/shopify/src}/utils/customer-token.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/get-brands.ts (97%)
 rename {framework/shopify => packages/shopify/src}/utils/get-categories.ts (93%)
 rename {framework/shopify => packages/shopify/src}/utils/get-checkout-id.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/get-search-variables.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/get-sort-variables.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/handle-account-activation.ts (84%)
 rename {framework/shopify => packages/shopify/src}/utils/handle-fetch-response.ts (90%)
 rename {framework/shopify => packages/shopify/src}/utils/handle-login.ts (87%)
 rename {framework/shopify => packages/shopify/src}/utils/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/associate-customer-with-checkout.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/checkout-create.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/checkout-line-item-add.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/checkout-line-item-remove.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/checkout-line-item-update.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/customer-access-token-create.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/customer-access-token-delete.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/customer-activate-by-url.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/customer-activate.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/customer-create.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/mutations/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/normalize.ts (98%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-all-collections-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-all-pages-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-all-product-vendors-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-all-products-paths-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-all-products-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-checkout-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-collection-products-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-customer-id-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-customer-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-page-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-product-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/get-site-info-query.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/queries/index.ts (100%)
 rename {framework/shopify => packages/shopify/src}/utils/throw-user-errors.ts (90%)
 rename {framework/shopify => packages/shopify/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/shopify => packages/shopify/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/shopify => packages/shopify/src}/wishlist/use-wishlist.tsx (90%)
 create mode 100644 packages/shopify/tsconfig.json
 rename {framework => packages}/spree/.env.template (100%)
 create mode 100644 packages/spree/.prettierignore
 create mode 100644 packages/spree/.prettierrc
 rename {framework => packages}/spree/README-assets/screenshots.png (100%)
 rename {framework => packages}/spree/README.md (88%)
 create mode 100644 packages/spree/package.json
 rename {framework/spree => packages/spree/src}/api/endpoints/cart/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/catalog/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/checkout/get-checkout.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/checkout/index.ts (61%)
 rename {framework/spree => packages/spree/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/login/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/logout/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/signup/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/endpoints/wishlist/index.tsx (100%)
 rename {framework/spree => packages/spree/src}/api/index.ts (89%)
 rename {framework/spree => packages/spree/src}/api/operations/get-all-pages.ts (94%)
 rename {framework/spree => packages/spree/src}/api/operations/get-all-product-paths.ts (93%)
 rename {framework/spree => packages/spree/src}/api/operations/get-all-products.ts (93%)
 rename {framework/spree => packages/spree/src}/api/operations/get-customer-wishlist.ts (100%)
 rename {framework/spree => packages/spree/src}/api/operations/get-page.ts (94%)
 rename {framework/spree => packages/spree/src}/api/operations/get-product.ts (95%)
 rename {framework/spree => packages/spree/src}/api/operations/get-site-info.ts (96%)
 rename {framework/spree => packages/spree/src}/api/operations/index.ts (100%)
 rename {framework/spree => packages/spree/src}/api/utils/create-api-fetch.ts (97%)
 rename {framework/spree => packages/spree/src}/api/utils/fetch.ts (100%)
 rename {framework/spree => packages/spree/src}/auth/index.ts (100%)
 rename {framework/spree => packages/spree/src}/auth/use-login.tsx (88%)
 rename {framework/spree => packages/spree/src}/auth/use-logout.tsx (65%)
 rename {framework/spree => packages/spree/src}/auth/use-signup.tsx (87%)
 rename {framework/spree => packages/spree/src}/cart/index.ts (100%)
 rename {framework/spree => packages/spree/src}/cart/use-add-item.tsx (80%)
 rename {framework/spree => packages/spree/src}/cart/use-cart.tsx (89%)
 rename {framework/spree => packages/spree/src}/cart/use-remove-item.tsx (74%)
 rename {framework/spree => packages/spree/src}/cart/use-update-item.tsx (68%)
 rename {framework/spree => packages/spree/src}/checkout/use-checkout.tsx (71%)
 rename {framework/spree => packages/spree/src}/commerce.config.json (100%)
 rename {framework/spree => packages/spree/src}/customer/address/use-add-item.tsx (60%)
 rename {framework/spree => packages/spree/src}/customer/card/use-add-item.tsx (62%)
 rename {framework/spree => packages/spree/src}/customer/index.ts (100%)
 rename {framework/spree => packages/spree/src}/customer/use-customer.tsx (82%)
 rename {framework/spree => packages/spree/src}/errors/AccessTokenError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MisconfigurationError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingConfigurationValueError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingLineItemVariantError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingOptionValueError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingPrimaryVariantError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingProductError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingSlugVariableError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/MissingVariantError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/RefreshTokenError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/SpreeResponseContentError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/SpreeSdkMethodFromEndpointPathError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/TokensNotRejectedError.ts (100%)
 rename {framework/spree => packages/spree/src}/errors/UserTokenResponseParseError.ts (100%)
 rename {framework/spree => packages/spree/src}/fetcher.ts (96%)
 rename {framework/spree => packages/spree/src}/index.tsx (93%)
 rename {framework/spree => packages/spree/src}/isomorphic-config.ts (100%)
 rename framework/spree/next.config.js => packages/spree/src/next.config.cjs (100%)
 rename {framework/spree => packages/spree/src}/product/index.ts (100%)
 create mode 100644 packages/spree/src/product/use-price.tsx
 rename {framework/spree => packages/spree/src}/product/use-search.tsx (89%)
 rename {framework/spree => packages/spree/src}/provider.ts (100%)
 rename {framework/spree => packages/spree/src}/types/index.ts (95%)
 rename {framework/spree => packages/spree/src}/utils/convert-spree-error-to-graph-ql-error.ts (95%)
 rename {framework/spree => packages/spree/src}/utils/create-customized-fetch-fetcher.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/create-empty-cart.ts (80%)
 rename {framework/spree => packages/spree/src}/utils/create-get-absolute-image-url.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/expand-options.ts (97%)
 rename {framework/spree => packages/spree/src}/utils/force-isomorphic-config-values.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/get-image-url.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/get-media-gallery.ts (90%)
 rename {framework/spree => packages/spree/src}/utils/get-product-path.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/get-spree-sdk-method-from-endpoint-path.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/handle-token-errors.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/is-json-content-type.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/is-server.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/login.ts (92%)
 rename {framework/spree => packages/spree/src}/utils/normalizations/normalize-cart.ts (98%)
 rename {framework/spree => packages/spree/src}/utils/normalizations/normalize-page.ts (95%)
 rename {framework/spree => packages/spree/src}/utils/normalizations/normalize-product.ts (99%)
 rename {framework/spree => packages/spree/src}/utils/normalizations/normalize-user.ts (84%)
 rename {framework/spree => packages/spree/src}/utils/normalizations/normalize-wishlist.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/pretty-print-spree-sdk-errors.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/require-config.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/sort-option-types.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/tokens/cart-token.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/tokens/ensure-fresh-user-access-token.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/tokens/ensure-itoken.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/tokens/is-logged-in.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/tokens/revoke-user-tokens.ts (89%)
 rename {framework/spree => packages/spree/src}/utils/tokens/user-token-response.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-all-products-taxonomy-id.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-cookie-expire.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-images-option-filter.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-images-quality.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-images-size.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-placeholder-image-url.ts (100%)
 rename {framework/spree => packages/spree/src}/utils/validations/validate-products-prerender-count.ts (100%)
 rename {framework/spree => packages/spree/src}/wishlist/index.ts (100%)
 rename {framework/spree => packages/spree/src}/wishlist/use-add-item.tsx (85%)
 rename {framework/spree => packages/spree/src}/wishlist/use-remove-item.tsx (86%)
 rename {framework/spree => packages/spree/src}/wishlist/use-wishlist.tsx (87%)
 create mode 100644 packages/spree/tsconfig.json
 rename {framework => packages}/swell/.env.template (100%)
 create mode 100644 packages/swell/.prettierignore
 create mode 100644 packages/swell/.prettierrc
 create mode 100644 packages/swell/package.json
 rename {framework => packages}/swell/schema.d.ts (100%)
 rename {framework => packages}/swell/schema.graphql (100%)
 rename {framework/swell => packages/swell/src}/api/cart/index.ts (100%)
 rename {framework/swell => packages/swell/src}/api/catalog/index.ts (100%)
 rename {framework/swell => packages/swell/src}/api/catalog/products.ts (100%)
 rename {framework/swell => packages/swell/src}/api/customer.ts (100%)
 rename {framework/swell => packages/swell/src}/api/customers/index.ts (100%)
 rename {framework/swell => packages/swell/src}/api/customers/logout.ts (100%)
 rename {framework/swell => packages/swell/src}/api/customers/signup.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/cart.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/checkout/index.ts (75%)
 rename {framework/swell => packages/swell/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/login.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/logout.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/signup.ts (100%)
 rename {framework/swell => packages/swell/src}/api/endpoints/wishlist.ts (100%)
 rename {framework/swell => packages/swell/src}/api/index.ts (97%)
 rename {framework/swell => packages/swell/src}/api/operations/get-all-pages.ts (93%)
 rename {framework/swell => packages/swell/src}/api/operations/get-all-product-paths.ts (88%)
 rename {framework/swell => packages/swell/src}/api/operations/get-all-products.ts (89%)
 rename {framework/swell => packages/swell/src}/api/operations/get-page.ts (90%)
 rename {framework/swell => packages/swell/src}/api/operations/get-product.ts (85%)
 rename {framework/swell => packages/swell/src}/api/operations/get-site-info.ts (86%)
 rename {framework/swell => packages/swell/src}/api/operations/login.ts (96%)
 rename {framework/swell => packages/swell/src}/api/utils/fetch-swell-api.ts (100%)
 rename {framework/swell => packages/swell/src}/api/utils/fetch.ts (100%)
 rename {framework/swell => packages/swell/src}/api/utils/is-allowed-method.ts (100%)
 rename {framework/swell => packages/swell/src}/api/wishlist/index.tsx (100%)
 rename {framework/swell => packages/swell/src}/auth/use-login.tsx (88%)
 rename {framework/swell => packages/swell/src}/auth/use-logout.tsx (86%)
 rename {framework/swell => packages/swell/src}/auth/use-signup.tsx (87%)
 rename {framework/swell => packages/swell/src}/cart/index.ts (100%)
 rename {framework/swell => packages/swell/src}/cart/use-add-item.tsx (87%)
 rename {framework/swell => packages/swell/src}/cart/use-cart.tsx (82%)
 rename {framework/swell => packages/swell/src}/cart/use-remove-item.tsx (85%)
 rename {framework/swell => packages/swell/src}/cart/use-update-item.tsx (89%)
 rename {framework/swell => packages/swell/src}/cart/utils/checkout-create.ts (100%)
 rename {framework/swell => packages/swell/src}/cart/utils/checkout-to-cart.ts (87%)
 rename {framework/swell => packages/swell/src}/cart/utils/index.ts (100%)
 create mode 100644 packages/swell/src/checkout/use-checkout.tsx
 rename {framework/swell => packages/swell/src}/commerce.config.json (100%)
 rename {framework/swell => packages/swell/src}/const.ts (100%)
 create mode 100644 packages/swell/src/customer/address/use-add-item.tsx
 create mode 100644 packages/swell/src/customer/card/use-add-item.tsx
 rename {framework/swell => packages/swell/src}/customer/index.ts (100%)
 rename {framework/swell => packages/swell/src}/customer/use-customer.tsx (81%)
 rename {framework/swell => packages/swell/src}/fetcher.ts (85%)
 rename {framework/swell => packages/swell/src}/index.tsx (73%)
 rename framework/swell/next.config.js => packages/swell/src/next.config.cjs (100%)
 rename {framework/swell => packages/swell/src}/product/index.ts (100%)
 create mode 100644 packages/swell/src/product/use-price.tsx
 rename {framework/swell => packages/swell/src}/product/use-search.tsx (91%)
 rename {framework/swell => packages/swell/src}/provider.ts (95%)
 rename {framework/swell => packages/swell/src}/swell.ts (91%)
 rename {framework/swell => packages/swell/src}/types.ts (92%)
 create mode 100644 packages/swell/src/types/cart.ts
 create mode 100644 packages/swell/src/types/checkout.ts
 create mode 100644 packages/swell/src/types/common.ts
 create mode 100644 packages/swell/src/types/customer.ts
 rename {framework/swell => packages/swell/src}/types/index.ts (100%)
 create mode 100644 packages/swell/src/types/login.ts
 create mode 100644 packages/swell/src/types/logout.ts
 create mode 100644 packages/swell/src/types/page.ts
 create mode 100644 packages/swell/src/types/product.ts
 create mode 100644 packages/swell/src/types/signup.ts
 create mode 100644 packages/swell/src/types/site.ts
 create mode 100644 packages/swell/src/types/wishlist.ts
 rename {framework/swell => packages/swell/src}/utils/customer-token.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/get-categories.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/get-checkout-id.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/get-search-variables.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/get-sort-variables.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/get-vendors.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/handle-fetch-response.ts (82%)
 rename {framework/swell => packages/swell/src}/utils/handle-login.ts (92%)
 rename {framework/swell => packages/swell/src}/utils/index.ts (100%)
 rename {framework/swell => packages/swell/src}/utils/normalize.ts (99%)
 rename {framework/swell => packages/swell/src}/utils/storage.ts (100%)
 rename {framework/swell => packages/swell/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/swell => packages/swell/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/swell => packages/swell/src}/wishlist/use-wishlist.tsx (90%)
 create mode 100644 packages/swell/tsconfig.json
 rename {framework => packages}/vendure/.env.template (100%)
 create mode 100644 packages/vendure/.prettierignore
 create mode 100644 packages/vendure/.prettierrc
 rename {framework => packages}/vendure/README.md (95%)
 rename {framework => packages}/vendure/codegen.json (75%)
 create mode 100644 packages/vendure/package.json
 rename {framework => packages}/vendure/schema.d.ts (100%)
 rename {framework => packages}/vendure/schema.graphql (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/cart/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/catalog/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/catalog/products.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/checkout/index.ts (88%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/customer/address.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/customer/card.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/customer/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/login/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/logout/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/signup/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/api/endpoints/wishlist/index.tsx (100%)
 rename {framework/vendure => packages/vendure/src}/api/index.ts (90%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-all-pages.ts (88%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-all-product-paths.ts (78%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-all-products.ts (86%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-customer-wishlist.ts (89%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-page.ts (93%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-product.ts (92%)
 rename {framework/vendure => packages/vendure/src}/api/operations/get-site-info.ts (87%)
 rename {framework/vendure => packages/vendure/src}/api/operations/login.ts (90%)
 rename {framework/vendure => packages/vendure/src}/api/utils/fetch-graphql-api.ts (86%)
 rename {framework/vendure => packages/vendure/src}/api/utils/fetch.ts (100%)
 rename {framework/vendure => packages/vendure/src}/auth/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/auth/use-login.tsx (80%)
 rename {framework/vendure => packages/vendure/src}/auth/use-logout.tsx (81%)
 rename {framework/vendure => packages/vendure/src}/auth/use-signup.tsx (86%)
 rename {framework/vendure => packages/vendure/src}/cart/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/cart/use-add-item.tsx (84%)
 rename {framework/vendure => packages/vendure/src}/cart/use-cart.tsx (86%)
 rename {framework/vendure => packages/vendure/src}/cart/use-remove-item.tsx (83%)
 rename {framework/vendure => packages/vendure/src}/cart/use-update-item.tsx (88%)
 create mode 100644 packages/vendure/src/checkout/use-checkout.tsx
 rename {framework/vendure => packages/vendure/src}/commerce.config.json (100%)
 create mode 100644 packages/vendure/src/customer/address/use-add-item.tsx
 create mode 100644 packages/vendure/src/customer/card/use-add-item.tsx
 rename {framework/vendure => packages/vendure/src}/customer/index.ts (100%)
 rename {framework/vendure => packages/vendure/src}/customer/use-customer.tsx (81%)
 rename {framework/vendure => packages/vendure/src}/fetcher.ts (92%)
 rename {framework/vendure => packages/vendure/src}/index.tsx (72%)
 rename framework/vendure/next.config.js => packages/vendure/src/next.config.cjs (100%)
 rename {framework/vendure => packages/vendure/src}/product/index.ts (100%)
 create mode 100644 packages/vendure/src/product/use-price.tsx
 rename {framework/vendure => packages/vendure/src}/product/use-search.tsx (85%)
 rename {framework/vendure => packages/vendure/src}/provider.ts (100%)
 create mode 100644 packages/vendure/src/types/cart.ts
 create mode 100644 packages/vendure/src/types/checkout.ts
 create mode 100644 packages/vendure/src/types/common.ts
 create mode 100644 packages/vendure/src/types/customer.ts
 rename {framework/vendure => packages/vendure/src}/types/index.ts (100%)
 create mode 100644 packages/vendure/src/types/login.ts
 create mode 100644 packages/vendure/src/types/logout.ts
 create mode 100644 packages/vendure/src/types/page.ts
 create mode 100644 packages/vendure/src/types/product.ts
 create mode 100644 packages/vendure/src/types/signup.ts
 create mode 100644 packages/vendure/src/types/site.ts
 create mode 100644 packages/vendure/src/types/wishlist.ts
 rename {framework/vendure => packages/vendure/src}/utils/array-to-tree.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/fragments/cart-fragment.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/fragments/search-result-fragment.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/add-item-to-order-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/adjust-order-line-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/log-in-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/log-out-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/remove-order-line-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/mutations/sign-up-mutation.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/normalize.ts (90%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/active-customer-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/get-all-product-paths-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/get-all-products-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/get-cart-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/get-collections-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/get-product-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/utils/queries/search-query.ts (100%)
 rename {framework/vendure => packages/vendure/src}/wishlist/use-add-item.tsx (100%)
 rename {framework/vendure => packages/vendure/src}/wishlist/use-remove-item.tsx (100%)
 rename {framework/vendure => packages/vendure/src}/wishlist/use-wishlist.tsx (90%)
 create mode 100644 packages/vendure/tsconfig.json
 rename .env.template => site/.env.template (72%)
 rename .eslintrc => site/.eslintrc (100%)
 create mode 100644 site/.gitignore
 create mode 100644 site/.prettierignore
 create mode 100644 site/.prettierrc
 rename {assets => site/assets}/base.css (100%)
 rename {assets => site/assets}/chrome-bug.css (100%)
 rename {assets => site/assets}/components.css (100%)
 rename {assets => site/assets}/main.css (100%)
 create mode 100644 site/commerce-config.js
 rename commerce.config.json => site/commerce.config.json (100%)
 rename {components => site/components}/auth/ForgotPassword.tsx (100%)
 rename {components => site/components}/auth/LoginView.tsx (100%)
 rename {components => site/components}/auth/SignUpView.tsx (100%)
 rename {components => site/components}/auth/index.ts (100%)
 rename {components => site/components}/cart/CartItem/CartItem.module.css (100%)
 rename {components => site/components}/cart/CartItem/CartItem.tsx (100%)
 rename {components => site/components}/cart/CartItem/index.ts (100%)
 rename {components => site/components}/cart/CartSidebarView/CartSidebarView.module.css (100%)
 rename {components => site/components}/cart/CartSidebarView/CartSidebarView.tsx (100%)
 rename {components => site/components}/cart/CartSidebarView/index.ts (100%)
 rename {components => site/components}/cart/index.ts (100%)
 rename {components => site/components}/checkout/CheckoutSidebarView/CheckoutSidebarView.module.css (100%)
 rename {components => site/components}/checkout/CheckoutSidebarView/CheckoutSidebarView.tsx (100%)
 rename {components => site/components}/checkout/CheckoutSidebarView/index.ts (100%)
 rename {components => site/components}/checkout/PaymentMethodView/PaymentMethodView.module.css (100%)
 rename {components => site/components}/checkout/PaymentMethodView/PaymentMethodView.tsx (100%)
 rename {components => site/components}/checkout/PaymentMethodView/index.ts (100%)
 rename {components => site/components}/checkout/PaymentWidget/PaymentWidget.module.css (100%)
 rename {components => site/components}/checkout/PaymentWidget/PaymentWidget.tsx (100%)
 rename {components => site/components}/checkout/PaymentWidget/index.ts (100%)
 rename {components => site/components}/checkout/ShippingView/ShippingView.module.css (100%)
 rename {components => site/components}/checkout/ShippingView/ShippingView.tsx (100%)
 rename {components => site/components}/checkout/ShippingView/index.ts (100%)
 rename {components => site/components}/checkout/ShippingWidget/ShippingWidget.module.css (100%)
 rename {components => site/components}/checkout/ShippingWidget/ShippingWidget.tsx (100%)
 rename {components => site/components}/checkout/ShippingWidget/index.ts (100%)
 rename {components => site/components}/checkout/context.tsx (100%)
 rename {components => site/components}/common/Avatar/Avatar.tsx (100%)
 rename {components => site/components}/common/Avatar/index.ts (100%)
 rename {components => site/components}/common/FeatureBar/FeatureBar.module.css (100%)
 rename {components => site/components}/common/FeatureBar/FeatureBar.tsx (100%)
 rename {components => site/components}/common/FeatureBar/index.ts (100%)
 rename {components => site/components}/common/Footer/Footer.module.css (100%)
 rename {components => site/components}/common/Footer/Footer.tsx (100%)
 rename {components => site/components}/common/Footer/index.ts (100%)
 rename {components => site/components}/common/Head/Head.tsx (100%)
 rename {components => site/components}/common/Head/index.ts (100%)
 rename {components => site/components}/common/HomeAllProductsGrid/HomeAllProductsGrid.module.css (100%)
 rename {components => site/components}/common/HomeAllProductsGrid/HomeAllProductsGrid.tsx (100%)
 rename {components => site/components}/common/HomeAllProductsGrid/index.ts (100%)
 rename {components => site/components}/common/I18nWidget/I18nWidget.module.css (100%)
 rename {components => site/components}/common/I18nWidget/I18nWidget.tsx (100%)
 rename {components => site/components}/common/I18nWidget/index.ts (100%)
 rename {components => site/components}/common/Layout/Layout.module.css (100%)
 rename {components => site/components}/common/Layout/Layout.tsx (100%)
 rename {components => site/components}/common/Layout/index.ts (100%)
 rename {components => site/components}/common/Navbar/Navbar.module.css (100%)
 rename {components => site/components}/common/Navbar/Navbar.tsx (100%)
 rename {components => site/components}/common/Navbar/NavbarRoot.tsx (100%)
 rename {components => site/components}/common/Navbar/index.ts (100%)
 rename {components => site/components}/common/Searchbar/Searchbar.module.css (100%)
 rename {components => site/components}/common/Searchbar/Searchbar.tsx (100%)
 rename {components => site/components}/common/Searchbar/index.ts (100%)
 rename {components => site/components}/common/SidebarLayout/SidebarLayout.module.css (100%)
 rename {components => site/components}/common/SidebarLayout/SidebarLayout.tsx (100%)
 rename {components => site/components}/common/SidebarLayout/index.ts (100%)
 rename {components => site/components}/common/UserNav/DropdownMenu.module.css (100%)
 rename {components => site/components}/common/UserNav/DropdownMenu.tsx (100%)
 rename {components => site/components}/common/UserNav/MenuSidebarView/MenuSidebarView.module.css (100%)
 rename {components => site/components}/common/UserNav/MenuSidebarView/MenuSidebarView.tsx (100%)
 rename {components => site/components}/common/UserNav/MenuSidebarView/index.ts (100%)
 rename {components => site/components}/common/UserNav/UserNav.module.css (100%)
 rename {components => site/components}/common/UserNav/UserNav.tsx (100%)
 rename {components => site/components}/common/UserNav/index.ts (100%)
 rename {components => site/components}/common/index.ts (100%)
 rename {components => site/components}/icons/ArrowLeft.tsx (100%)
 rename {components => site/components}/icons/ArrowRight.tsx (100%)
 rename {components => site/components}/icons/Bag.tsx (100%)
 rename {components => site/components}/icons/Check.tsx (100%)
 rename {components => site/components}/icons/ChevronDown.tsx (100%)
 rename {components => site/components}/icons/ChevronLeft.tsx (100%)
 rename {components => site/components}/icons/ChevronRight.tsx (100%)
 rename {components => site/components}/icons/ChevronUp.tsx (100%)
 rename {components => site/components}/icons/CreditCard.tsx (100%)
 rename {components => site/components}/icons/Cross.tsx (100%)
 rename {components => site/components}/icons/DoubleChevron.tsx (100%)
 rename {components => site/components}/icons/Github.tsx (100%)
 rename {components => site/components}/icons/Heart.tsx (100%)
 rename {components => site/components}/icons/Info.tsx (100%)
 rename {components => site/components}/icons/MapPin.tsx (100%)
 rename {components => site/components}/icons/Menu.tsx (100%)
 rename {components => site/components}/icons/Minus.tsx (100%)
 rename {components => site/components}/icons/Moon.tsx (100%)
 rename {components => site/components}/icons/Plus.tsx (100%)
 rename {components => site/components}/icons/Star.tsx (100%)
 rename {components => site/components}/icons/Sun.tsx (100%)
 rename {components => site/components}/icons/Trash.tsx (100%)
 rename {components => site/components}/icons/Vercel.tsx (100%)
 rename {components => site/components}/icons/index.ts (100%)
 rename {components => site/components}/product/ProductCard/ProductCard.module.css (100%)
 rename {components => site/components}/product/ProductCard/ProductCard.tsx (100%)
 rename {components => site/components}/product/ProductCard/index.ts (100%)
 rename {components => site/components}/product/ProductOptions/ProductOptions.tsx (100%)
 rename {components => site/components}/product/ProductOptions/index.ts (100%)
 rename {components => site/components}/product/ProductSidebar/ProductSidebar.module.css (100%)
 rename {components => site/components}/product/ProductSidebar/ProductSidebar.tsx (100%)
 rename {components => site/components}/product/ProductSidebar/index.ts (100%)
 rename {components => site/components}/product/ProductSlider/ProductSlider.module.css (100%)
 rename {components => site/components}/product/ProductSlider/ProductSlider.tsx (100%)
 rename {components => site/components}/product/ProductSlider/index.ts (100%)
 rename {components => site/components}/product/ProductSliderControl/ProductSliderControl.module.css (100%)
 rename {components => site/components}/product/ProductSliderControl/ProductSliderControl.tsx (100%)
 rename {components => site/components}/product/ProductSliderControl/index.ts (100%)
 rename {components => site/components}/product/ProductTag/ProductTag.module.css (100%)
 rename {components => site/components}/product/ProductTag/ProductTag.tsx (100%)
 rename {components => site/components}/product/ProductTag/index.ts (100%)
 rename {components => site/components}/product/ProductView/ProductView.module.css (100%)
 rename {components => site/components}/product/ProductView/ProductView.tsx (100%)
 rename {components => site/components}/product/ProductView/index.ts (100%)
 rename {components => site/components}/product/Swatch/Swatch.module.css (100%)
 rename {components => site/components}/product/Swatch/Swatch.tsx (100%)
 rename {components => site/components}/product/Swatch/index.ts (100%)
 rename {components => site/components}/product/helpers.ts (100%)
 rename {components => site/components}/product/index.ts (100%)
 rename {components => site/components}/search.tsx (100%)
 rename {components => site/components}/ui/Button/Button.module.css (100%)
 rename {components => site/components}/ui/Button/Button.tsx (100%)
 rename {components => site/components}/ui/Button/index.ts (100%)
 rename {components => site/components}/ui/Collapse/Collapse.module.css (100%)
 rename {components => site/components}/ui/Collapse/Collapse.tsx (100%)
 rename {components => site/components}/ui/Collapse/index.ts (100%)
 rename {components => site/components}/ui/Container/Container.tsx (100%)
 rename {components => site/components}/ui/Container/index.ts (100%)
 rename {components => site/components}/ui/Grid/Grid.module.css (100%)
 rename {components => site/components}/ui/Grid/Grid.tsx (100%)
 rename {components => site/components}/ui/Grid/index.ts (100%)
 rename {components => site/components}/ui/Hero/Hero.module.css (100%)
 rename {components => site/components}/ui/Hero/Hero.tsx (100%)
 rename {components => site/components}/ui/Hero/index.ts (100%)
 rename {components => site/components}/ui/Input/Input.module.css (100%)
 rename {components => site/components}/ui/Input/Input.tsx (100%)
 rename {components => site/components}/ui/Input/index.ts (100%)
 rename {components => site/components}/ui/Link/Link.tsx (100%)
 rename {components => site/components}/ui/Link/index.ts (100%)
 rename {components => site/components}/ui/LoadingDots/LoadingDots.module.css (100%)
 rename {components => site/components}/ui/LoadingDots/LoadingDots.tsx (100%)
 rename {components => site/components}/ui/LoadingDots/index.ts (100%)
 rename {components => site/components}/ui/Logo/Logo.tsx (100%)
 rename {components => site/components}/ui/Logo/index.ts (100%)
 rename {components => site/components}/ui/Marquee/Marquee.module.css (100%)
 rename {components => site/components}/ui/Marquee/Marquee.tsx (100%)
 rename {components => site/components}/ui/Marquee/index.ts (100%)
 rename {components => site/components}/ui/Modal/Modal.module.css (100%)
 rename {components => site/components}/ui/Modal/Modal.tsx (100%)
 rename {components => site/components}/ui/Modal/index.ts (100%)
 rename {components => site/components}/ui/Quantity/Quantity.module.css (100%)
 rename {components => site/components}/ui/Quantity/Quantity.tsx (100%)
 rename {components => site/components}/ui/Quantity/index.ts (100%)
 rename {components => site/components}/ui/README.md (100%)
 rename {components => site/components}/ui/Rating/Rating.module.css (100%)
 rename {components => site/components}/ui/Rating/Rating.tsx (100%)
 rename {components => site/components}/ui/Rating/index.ts (100%)
 rename {components => site/components}/ui/Sidebar/Sidebar.module.css (100%)
 rename {components => site/components}/ui/Sidebar/Sidebar.tsx (100%)
 rename {components => site/components}/ui/Sidebar/index.ts (100%)
 rename {components => site/components}/ui/Skeleton/Skeleton.module.css (100%)
 rename {components => site/components}/ui/Skeleton/Skeleton.tsx (100%)
 rename {components => site/components}/ui/Skeleton/index.ts (100%)
 rename {components => site/components}/ui/Text/Text.module.css (100%)
 rename {components => site/components}/ui/Text/Text.tsx (100%)
 rename {components => site/components}/ui/Text/index.ts (100%)
 rename {components => site/components}/ui/context.tsx (100%)
 rename {components => site/components}/ui/index.ts (100%)
 rename {components => site/components}/wishlist/WishlistButton/WishlistButton.module.css (100%)
 rename {components => site/components}/wishlist/WishlistButton/WishlistButton.tsx (100%)
 rename {components => site/components}/wishlist/WishlistButton/index.ts (100%)
 rename {components => site/components}/wishlist/WishlistCard/WishlistCard.module.css (100%)
 rename {components => site/components}/wishlist/WishlistCard/WishlistCard.tsx (98%)
 rename {components => site/components}/wishlist/WishlistCard/index.ts (100%)
 rename {components => site/components}/wishlist/index.ts (100%)
 rename {config => site/config}/seo.json (100%)
 rename global.d.ts => site/global.d.ts (100%)
 rename {lib => site/lib}/api/commerce.ts (100%)
 rename {lib => site/lib}/click-outside/click-outside.tsx (100%)
 rename {lib => site/lib}/click-outside/has-parent.js (100%)
 rename {lib => site/lib}/click-outside/index.ts (100%)
 rename {lib => site/lib}/click-outside/is-in-dom.js (100%)
 rename {lib => site/lib}/colors.ts (100%)
 rename {lib => site/lib}/focus-trap.tsx (100%)
 rename {lib => site/lib}/get-slug.ts (100%)
 rename {lib => site/lib}/hooks/useAcceptCookies.ts (100%)
 rename {lib => site/lib}/hooks/useUserAvatar.ts (100%)
 rename {lib => site/lib}/range-map.ts (100%)
 rename {lib => site/lib}/search-props.tsx (100%)
 rename {lib => site/lib}/search.tsx (100%)
 rename {lib => site/lib}/to-pixels.ts (100%)
 rename {lib => site/lib}/usage-warns.ts (100%)
 rename next-env.d.ts => site/next-env.d.ts (100%)
 rename next.config.js => site/next.config.js (77%)
 create mode 100644 site/package.json
 rename {pages => site/pages}/404.tsx (100%)
 rename {pages => site/pages}/[...pages].tsx (100%)
 rename {pages => site/pages}/_app.tsx (100%)
 rename {pages => site/pages}/_document.tsx (100%)
 rename {pages => site/pages}/api/cart.ts (100%)
 rename {pages => site/pages}/api/catalog/products.ts (100%)
 rename {pages => site/pages}/api/checkout.ts (100%)
 rename {pages => site/pages}/api/customer/address.ts (100%)
 rename {pages => site/pages}/api/customer/card.ts (100%)
 rename {pages => site/pages}/api/customer/index.ts (100%)
 rename {pages => site/pages}/api/login.ts (100%)
 rename {pages => site/pages}/api/logout.ts (100%)
 rename {pages => site/pages}/api/signup.ts (100%)
 rename {pages => site/pages}/api/wishlist.ts (100%)
 rename {pages => site/pages}/cart.tsx (100%)
 rename {pages => site/pages}/index.tsx (100%)
 rename {pages => site/pages}/orders.tsx (100%)
 rename {pages => site/pages}/product/[slug].tsx (100%)
 rename {pages => site/pages}/profile.tsx (100%)
 rename {pages => site/pages}/search.tsx (100%)
 rename {pages => site/pages}/search/[category].tsx (100%)
 rename {pages => site/pages}/search/designers/[name].tsx (100%)
 rename {pages => site/pages}/search/designers/[name]/[category].tsx (100%)
 rename {pages => site/pages}/wishlist.tsx (100%)
 rename postcss.config.js => site/postcss.config.js (100%)
 rename {public => site/public}/assets/drop-shirt-0.png (100%)
 rename {public => site/public}/assets/drop-shirt-1.png (100%)
 rename {public => site/public}/assets/drop-shirt-2.png (100%)
 rename {public => site/public}/assets/drop-shirt.png (100%)
 rename {public => site/public}/assets/lightweight-jacket-0.png (100%)
 rename {public => site/public}/assets/lightweight-jacket-1.png (100%)
 rename {public => site/public}/assets/lightweight-jacket-2.png (100%)
 rename {public => site/public}/assets/t-shirt-0.png (100%)
 rename {public => site/public}/assets/t-shirt-1.png (100%)
 rename {public => site/public}/assets/t-shirt-2.png (100%)
 rename {public => site/public}/assets/t-shirt-3.png (100%)
 rename {public => site/public}/assets/t-shirt-4.png (100%)
 rename {public => site/public}/bg-products.svg (100%)
 rename {public => site/public}/card.png (100%)
 rename {public => site/public}/cursor-left.png (100%)
 rename {public => site/public}/cursor-right.png (100%)
 rename {public => site/public}/favicon.ico (100%)
 rename {public => site/public}/flag-en-us.svg (100%)
 rename {public => site/public}/flag-es-ar.svg (100%)
 rename {public => site/public}/flag-es-co.svg (100%)
 rename {public => site/public}/flag-es.svg (100%)
 rename {public => site/public}/icon-144x144.png (100%)
 rename {public => site/public}/icon-192x192.png (100%)
 rename {public => site/public}/icon-512x512.png (100%)
 rename {public => site/public}/icon.png (100%)
 rename {public => site/public}/product-img-placeholder.svg (100%)
 rename {public => site/public}/site.webmanifest (100%)
 rename {public => site/public}/slider-arrows.png (100%)
 rename {public => site/public}/vercel.svg (100%)
 rename tailwind.config.js => site/tailwind.config.js (100%)
 rename tsconfig.json => site/tsconfig.json (57%)
 delete mode 100644 swell-js.d.ts
 create mode 100644 yarn.lock

diff --git a/.gitignore b/.gitignore
index 22f1bf4f3..b7301fe56 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,18 +2,19 @@
 
 # dependencies
 node_modules
-/.pnp
+.pnp
 .pnp.js
 
 # testing
-/coverage
+coverage
 
 # next.js
-.next/
-out/
+.next
+out
 
 # production
-/build
+build
+dist
 
 # misc
 .DS_Store
@@ -34,3 +35,6 @@ yarn-error.log*
 
 # vercel
 .vercel
+
+# Turborepo
+.turbo
diff --git a/.prettierignore b/.prettierignore
index 105738ca9..c5d909d2f 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,3 +1,4 @@
+# Every package defines its prettier config
 node_modules
-.next
-public
\ No newline at end of file
+packages
+site
diff --git a/.prettierrc b/.prettierrc
index 91990a859..e1076edfa 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -2,13 +2,5 @@
   "semi": false,
   "singleQuote": true,
   "tabWidth": 2,
-  "useTabs": false,
-  "overrides": [
-    {
-      "files": ["framework/saleor/**/*"],
-      "options": {
-        "printWidth": 120
-      }
-    }
-  ]
+  "useTabs": false
 }
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 3af4e2d9b..60907f7fd 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,3 +1,8 @@
 {
-  "recommendations": ["esbenp.prettier-vscode", "csstools.postcss", "bradlc.vscode-tailwindcss"]
+  "recommendations": [
+    "esbenp.prettier-vscode",
+    "csstools.postcss",
+    "bradlc.vscode-tailwindcss",
+    "ms-vscode.vscode-typescript-next"
+  ]
 }
diff --git a/README.md b/README.md
index f83d4822f..745f51d09 100644
--- a/README.md
+++ b/README.md
@@ -35,11 +35,10 @@ Next.js Commerce integrates out-of-the-box with BigCommerce, Shopify, Swell, Sal
 
 ## Considerations
 
-- `framework/commerce` contains all types, helpers and functions to be used as base to build a new **provider**.
-- **Providers** live under `framework`'s root folder and they will extend Next.js Commerce types and functionality (`framework/commerce`).
+- `packages/commerce` contains all types, helpers and functions to be used as base to build a new **provider**.
+- **Providers** live under `packages`'s root folder and they will extend Next.js Commerce types and functionality (`packages/commerce`).
 - We have a **Features API** to ensure feature parity between the UI and the Provider. The UI should update accordingly and no extra code should be bundled. All extra configuration for features will live under `features` in `commerce.config.json` and if needed it can also be accessed programatically.
 - Each **provider** should add its corresponding `next.config.js` and `commerce.config.json` adding specific data related to the provider. For example in case of BigCommerce, the images CDN and additional API routes.
-- **Providers don't depend on anything that's specific to the application they're used in**. They only depend on `framework/commerce`, on their own framework folder and on some dependencies included in `package.json`
 
 ## Configuration
 
@@ -55,18 +54,9 @@ NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
 NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN=xxxxxxx.myshopify.com
 ```
 
-And check that the `tsconfig.json` resolves to the chosen provider:
-
-```
-  "@framework": ["framework/shopify"],
-  "@framework/*": ["framework/shopify/*"]
-```
-
-That's it!
-
 ### Features
 
-Every provider defines the features that it supports under `framework/{provider}/commerce.config.json`
+Every provider defines the features that it supports under `packages/{provider}/src/commerce.config.json`
 
 #### Features Available
 
@@ -98,9 +88,7 @@ For example: Turning `cart` off will disable Cart capabilities.
 
 ### How to create a new provider
 
-🔔 New providers are on hold [until we have a new API for commerce](https://github.com/vercel/commerce/pull/252) 🔔
-
-Follow our docs for [Adding a new Commerce Provider](framework/commerce/new-provider.md).
+Follow our docs for [Adding a new Commerce Provider](packages/commerce/new-provider.md).
 
 If you succeeded building a provider, submit a PR with a valid demo and we'll review it asap.
 
@@ -119,7 +107,7 @@ Our commitment to Open Source can be found [here](https://vercel.com/oss).
 
 We're using Github Projects to keep track of issues in progress and todo's. Here is our [Board](https://github.com/vercel/commerce/projects/1)
 
-People actively working on this project: @okbel & @lfades.
+People actively working on this project: @okbel, @lfades, @dominiksipowicz, @gbibeaul.
 
 ## Troubleshoot
 
diff --git a/framework/bigcommerce/product/use-price.tsx b/framework/bigcommerce/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/bigcommerce/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/bigcommerce/types/checkout.ts b/framework/bigcommerce/types/checkout.ts
deleted file mode 100644
index 4e2412ef6..000000000
--- a/framework/bigcommerce/types/checkout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/checkout'
diff --git a/framework/bigcommerce/types/common.ts b/framework/bigcommerce/types/common.ts
deleted file mode 100644
index b52c33a4d..000000000
--- a/framework/bigcommerce/types/common.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/common'
diff --git a/framework/bigcommerce/types/customer.ts b/framework/bigcommerce/types/customer.ts
deleted file mode 100644
index 427bc0b03..000000000
--- a/framework/bigcommerce/types/customer.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as Core from '@commerce/types/customer'
-
-export * from '@commerce/types/customer'
-
-export type CustomerSchema = Core.CustomerSchema
diff --git a/framework/bigcommerce/types/login.ts b/framework/bigcommerce/types/login.ts
deleted file mode 100644
index 24d5077ff..000000000
--- a/framework/bigcommerce/types/login.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as Core from '@commerce/types/login'
-import type { LoginMutationVariables } from '../schema'
-
-export * from '@commerce/types/login'
-
-export type LoginOperation = Core.LoginOperation & {
-  variables: LoginMutationVariables
-}
diff --git a/framework/bigcommerce/types/logout.ts b/framework/bigcommerce/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/bigcommerce/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/bigcommerce/types/product.ts b/framework/bigcommerce/types/product.ts
deleted file mode 100644
index c776d58fa..000000000
--- a/framework/bigcommerce/types/product.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/product'
diff --git a/framework/bigcommerce/types/signup.ts b/framework/bigcommerce/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/bigcommerce/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/commerce/config.js b/framework/commerce/config.js
deleted file mode 100644
index 1a48dc456..000000000
--- a/framework/commerce/config.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * This file is expected to be used in next.config.js only
- */
-
-const path = require('path')
-const fs = require('fs')
-const merge = require('deepmerge')
-const prettier = require('prettier')
-
-const PROVIDERS = [
-  'local',
-  'bigcommerce',
-  'saleor',
-  'shopify',
-  'swell',
-  'vendure',
-  'ordercloud',
-  'kibocommerce',
-  'spree',
-  'commercejs',
-]
-
-function getProviderName() {
-  return (
-    process.env.COMMERCE_PROVIDER ||
-    (process.env.BIGCOMMERCE_STOREFRONT_API_URL
-      ? 'bigcommerce'
-      : process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN
-      ? 'shopify'
-      : process.env.NEXT_PUBLIC_SWELL_STORE_ID
-      ? 'swell'
-      : 'local')
-  )
-}
-
-function withCommerceConfig(nextConfig = {}) {
-  const commerce = nextConfig.commerce || {}
-  const name = commerce.provider || getProviderName()
-
-  if (!name) {
-    throw new Error(
-      `The commerce provider is missing, please add a valid provider name or its environment variables`
-    )
-  }
-  if (!PROVIDERS.includes(name)) {
-    throw new Error(
-      `The commerce provider "${name}" can't be found, please use one of "${PROVIDERS.join(
-        ', '
-      )}"`
-    )
-  }
-
-  const commerceNextConfig = require(path.join('../', name, 'next.config'))
-  const config = merge(nextConfig, commerceNextConfig)
-
-  config.env = config.env || {}
-
-  Object.entries(config.commerce.features).forEach(([k, v]) => {
-    if (v) config.env[`COMMERCE_${k.toUpperCase()}_ENABLED`] = true
-  })
-
-  // Update paths in `tsconfig.json` to point to the selected provider
-  if (config.commerce.updateTSConfig !== false) {
-    const tsconfigPath = path.join(process.cwd(), 'tsconfig.json')
-    const tsconfig = require(tsconfigPath)
-
-    tsconfig.compilerOptions.paths['@framework'] = [`framework/${name}`]
-    tsconfig.compilerOptions.paths['@framework/*'] = [`framework/${name}/*`]
-
-    // When running for production it may be useful to exclude the other providers
-    // from TS checking
-    if (process.env.VERCEL) {
-      const exclude = tsconfig.exclude.filter(
-        (item) => !item.startsWith('framework/')
-      )
-
-      tsconfig.exclude = PROVIDERS.reduce((exclude, current) => {
-        if (current !== name) exclude.push(`framework/${current}`)
-        return exclude
-      }, exclude)
-    }
-
-    fs.writeFileSync(
-      tsconfigPath,
-      prettier.format(JSON.stringify(tsconfig), { parser: 'json' })
-    )
-  }
-
-  return config
-}
-
-module.exports = { withCommerceConfig, getProviderName }
diff --git a/framework/commercejs/product/use-price.tsx b/framework/commercejs/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/commercejs/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/commercejs/types/common.ts b/framework/commercejs/types/common.ts
deleted file mode 100644
index b52c33a4d..000000000
--- a/framework/commercejs/types/common.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/common'
diff --git a/framework/commercejs/types/customer.ts b/framework/commercejs/types/customer.ts
deleted file mode 100644
index 87c9afcc4..000000000
--- a/framework/commercejs/types/customer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/customer'
diff --git a/framework/commercejs/types/logout.ts b/framework/commercejs/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/commercejs/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/commercejs/types/page.ts b/framework/commercejs/types/page.ts
deleted file mode 100644
index 20ec8ea38..000000000
--- a/framework/commercejs/types/page.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/page'
diff --git a/framework/commercejs/types/signup.ts b/framework/commercejs/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/commercejs/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/commercejs/types/wishlist.ts b/framework/commercejs/types/wishlist.ts
deleted file mode 100644
index 8907fbf82..000000000
--- a/framework/commercejs/types/wishlist.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/wishlist'
diff --git a/framework/kibocommerce/checkout/use-checkout.tsx b/framework/kibocommerce/checkout/use-checkout.tsx
deleted file mode 100644
index 8ba12c14a..000000000
--- a/framework/kibocommerce/checkout/use-checkout.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
-
-export default useCheckout as UseCheckout<typeof handler>
-
-export const handler: SWRHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ useData }) =>
-    async (input) => ({}),
-}
\ No newline at end of file
diff --git a/framework/kibocommerce/customer/address/use-add-item.tsx b/framework/kibocommerce/customer/address/use-add-item.tsx
deleted file mode 100644
index 70bd044b2..000000000
--- a/framework/kibocommerce/customer/address/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
\ No newline at end of file
diff --git a/framework/kibocommerce/customer/card/use-add-item.tsx b/framework/kibocommerce/customer/card/use-add-item.tsx
deleted file mode 100644
index d6bd0d77f..000000000
--- a/framework/kibocommerce/customer/card/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
\ No newline at end of file
diff --git a/framework/kibocommerce/product/use-price.tsx b/framework/kibocommerce/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/kibocommerce/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/kibocommerce/types/login.ts b/framework/kibocommerce/types/login.ts
deleted file mode 100644
index 78b246191..000000000
--- a/framework/kibocommerce/types/login.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as Core from '@commerce/types/login'
-import type { CustomerUserAuthInfoInput } from '../schema'
-
-export * from '@commerce/types/login'
-
-export type LoginOperation = Core.LoginOperation & {
-  variables: CustomerUserAuthInfoInput
-}
diff --git a/framework/kibocommerce/types/logout.ts b/framework/kibocommerce/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/kibocommerce/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/kibocommerce/types/signup.ts b/framework/kibocommerce/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/kibocommerce/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/local/product/use-price.tsx b/framework/local/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/local/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/ordercloud/product/use-price.tsx b/framework/ordercloud/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/ordercloud/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/saleor/customer/address/use-add-item.tsx b/framework/saleor/customer/address/use-add-item.tsx
deleted file mode 100644
index ac9dcd5cf..000000000
--- a/framework/saleor/customer/address/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/saleor/customer/card/use-add-item.tsx b/framework/saleor/customer/card/use-add-item.tsx
deleted file mode 100644
index 7e3afa9c5..000000000
--- a/framework/saleor/customer/card/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/saleor/product/use-price.tsx b/framework/saleor/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/saleor/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/shopify/customer/address/use-add-item.tsx b/framework/shopify/customer/address/use-add-item.tsx
deleted file mode 100644
index ac9dcd5cf..000000000
--- a/framework/shopify/customer/address/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/shopify/customer/card/use-add-item.tsx b/framework/shopify/customer/card/use-add-item.tsx
deleted file mode 100644
index 7e3afa9c5..000000000
--- a/framework/shopify/customer/card/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/shopify/product/use-price.tsx b/framework/shopify/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/shopify/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/shopify/types/checkout.ts b/framework/shopify/types/checkout.ts
deleted file mode 100644
index 4e2412ef6..000000000
--- a/framework/shopify/types/checkout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/checkout'
diff --git a/framework/shopify/types/common.ts b/framework/shopify/types/common.ts
deleted file mode 100644
index b52c33a4d..000000000
--- a/framework/shopify/types/common.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/common'
diff --git a/framework/shopify/types/customer.ts b/framework/shopify/types/customer.ts
deleted file mode 100644
index 427bc0b03..000000000
--- a/framework/shopify/types/customer.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as Core from '@commerce/types/customer'
-
-export * from '@commerce/types/customer'
-
-export type CustomerSchema = Core.CustomerSchema
diff --git a/framework/shopify/types/login.ts b/framework/shopify/types/login.ts
deleted file mode 100644
index 964ac89e2..000000000
--- a/framework/shopify/types/login.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as Core from '@commerce/types/login'
-import type { CustomerAccessTokenCreateInput } from '../schema'
-
-export * from '@commerce/types/login'
-
-export type LoginOperation = Core.LoginOperation & {
-  variables: CustomerAccessTokenCreateInput
-}
diff --git a/framework/shopify/types/logout.ts b/framework/shopify/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/shopify/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/shopify/types/product.ts b/framework/shopify/types/product.ts
deleted file mode 100644
index c776d58fa..000000000
--- a/framework/shopify/types/product.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/product'
diff --git a/framework/shopify/types/signup.ts b/framework/shopify/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/shopify/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/shopify/types/site.ts b/framework/shopify/types/site.ts
deleted file mode 100644
index bfef69cf9..000000000
--- a/framework/shopify/types/site.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/site'
diff --git a/framework/shopify/types/wishlist.ts b/framework/shopify/types/wishlist.ts
deleted file mode 100644
index 8907fbf82..000000000
--- a/framework/shopify/types/wishlist.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/wishlist'
diff --git a/framework/spree/product/use-price.tsx b/framework/spree/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/spree/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/swell/checkout/use-checkout.tsx b/framework/swell/checkout/use-checkout.tsx
deleted file mode 100644
index 942f85b83..000000000
--- a/framework/swell/checkout/use-checkout.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
-
-export default useCheckout as UseCheckout<typeof handler>
-
-export const handler: SWRHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ useData }) =>
-    async (input) => ({}),
-}
diff --git a/framework/swell/customer/address/use-add-item.tsx b/framework/swell/customer/address/use-add-item.tsx
deleted file mode 100644
index ac9dcd5cf..000000000
--- a/framework/swell/customer/address/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/swell/customer/card/use-add-item.tsx b/framework/swell/customer/card/use-add-item.tsx
deleted file mode 100644
index 7e3afa9c5..000000000
--- a/framework/swell/customer/card/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/swell/product/use-price.tsx b/framework/swell/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/swell/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/swell/types/cart.ts b/framework/swell/types/cart.ts
deleted file mode 100644
index 6ed5c6c64..000000000
--- a/framework/swell/types/cart.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/cart'
diff --git a/framework/swell/types/checkout.ts b/framework/swell/types/checkout.ts
deleted file mode 100644
index 4e2412ef6..000000000
--- a/framework/swell/types/checkout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/checkout'
diff --git a/framework/swell/types/common.ts b/framework/swell/types/common.ts
deleted file mode 100644
index b52c33a4d..000000000
--- a/framework/swell/types/common.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/common'
diff --git a/framework/swell/types/customer.ts b/framework/swell/types/customer.ts
deleted file mode 100644
index 87c9afcc4..000000000
--- a/framework/swell/types/customer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/customer'
diff --git a/framework/swell/types/login.ts b/framework/swell/types/login.ts
deleted file mode 100644
index ab11a420a..000000000
--- a/framework/swell/types/login.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import * as Core from '@commerce/types/login'
-import { LoginBody, LoginTypes } from '@commerce/types/login'
-
-export * from '@commerce/types/login'
-
-export type LoginHook<T extends LoginTypes = LoginTypes> = {
-  data: null
-  actionInput: LoginBody
-  fetcherInput: LoginBody
-  body: T['body']
-}
diff --git a/framework/swell/types/logout.ts b/framework/swell/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/swell/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/swell/types/page.ts b/framework/swell/types/page.ts
deleted file mode 100644
index 20ec8ea38..000000000
--- a/framework/swell/types/page.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/page'
diff --git a/framework/swell/types/product.ts b/framework/swell/types/product.ts
deleted file mode 100644
index c776d58fa..000000000
--- a/framework/swell/types/product.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/product'
diff --git a/framework/swell/types/signup.ts b/framework/swell/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/swell/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/swell/types/site.ts b/framework/swell/types/site.ts
deleted file mode 100644
index bfef69cf9..000000000
--- a/framework/swell/types/site.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/site'
diff --git a/framework/swell/types/wishlist.ts b/framework/swell/types/wishlist.ts
deleted file mode 100644
index 8907fbf82..000000000
--- a/framework/swell/types/wishlist.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/wishlist'
diff --git a/framework/vendure/checkout/use-checkout.tsx b/framework/vendure/checkout/use-checkout.tsx
deleted file mode 100644
index 942f85b83..000000000
--- a/framework/vendure/checkout/use-checkout.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
-
-export default useCheckout as UseCheckout<typeof handler>
-
-export const handler: SWRHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ useData }) =>
-    async (input) => ({}),
-}
diff --git a/framework/vendure/customer/address/use-add-item.tsx b/framework/vendure/customer/address/use-add-item.tsx
deleted file mode 100644
index ac9dcd5cf..000000000
--- a/framework/vendure/customer/address/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/vendure/customer/card/use-add-item.tsx b/framework/vendure/customer/card/use-add-item.tsx
deleted file mode 100644
index 7e3afa9c5..000000000
--- a/framework/vendure/customer/card/use-add-item.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
-
-export default useAddItem as UseAddItem<typeof handler>
-
-export const handler: MutationHook<any> = {
-  fetchOptions: {
-    query: '',
-  },
-  async fetcher({ input, options, fetch }) {},
-  useHook:
-    ({ fetch }) =>
-    () =>
-    async () => ({}),
-}
diff --git a/framework/vendure/product/use-price.tsx b/framework/vendure/product/use-price.tsx
deleted file mode 100644
index 0174faf5e..000000000
--- a/framework/vendure/product/use-price.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '@commerce/product/use-price'
-export { default } from '@commerce/product/use-price'
diff --git a/framework/vendure/types/cart.ts b/framework/vendure/types/cart.ts
deleted file mode 100644
index 6ed5c6c64..000000000
--- a/framework/vendure/types/cart.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/cart'
diff --git a/framework/vendure/types/checkout.ts b/framework/vendure/types/checkout.ts
deleted file mode 100644
index 4e2412ef6..000000000
--- a/framework/vendure/types/checkout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/checkout'
diff --git a/framework/vendure/types/common.ts b/framework/vendure/types/common.ts
deleted file mode 100644
index b52c33a4d..000000000
--- a/framework/vendure/types/common.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/common'
diff --git a/framework/vendure/types/customer.ts b/framework/vendure/types/customer.ts
deleted file mode 100644
index 87c9afcc4..000000000
--- a/framework/vendure/types/customer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/customer'
diff --git a/framework/vendure/types/login.ts b/framework/vendure/types/login.ts
deleted file mode 100644
index 16bae8f65..000000000
--- a/framework/vendure/types/login.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as Core from '@commerce/types/login'
-import type { LoginMutationVariables } from '../schema'
-import { LoginBody, LoginTypes } from '@commerce/types/login'
-
-export * from '@commerce/types/login'
-
-export type LoginHook<T extends LoginTypes = LoginTypes> = {
-  data: null
-  actionInput: LoginBody
-  fetcherInput: LoginBody
-  body: T['body']
-}
diff --git a/framework/vendure/types/logout.ts b/framework/vendure/types/logout.ts
deleted file mode 100644
index 9f0a466af..000000000
--- a/framework/vendure/types/logout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/logout'
diff --git a/framework/vendure/types/page.ts b/framework/vendure/types/page.ts
deleted file mode 100644
index 20ec8ea38..000000000
--- a/framework/vendure/types/page.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/page'
diff --git a/framework/vendure/types/product.ts b/framework/vendure/types/product.ts
deleted file mode 100644
index c776d58fa..000000000
--- a/framework/vendure/types/product.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/product'
diff --git a/framework/vendure/types/signup.ts b/framework/vendure/types/signup.ts
deleted file mode 100644
index 58543c6f6..000000000
--- a/framework/vendure/types/signup.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/signup'
diff --git a/framework/vendure/types/site.ts b/framework/vendure/types/site.ts
deleted file mode 100644
index bfef69cf9..000000000
--- a/framework/vendure/types/site.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/site'
diff --git a/framework/vendure/types/wishlist.ts b/framework/vendure/types/wishlist.ts
deleted file mode 100644
index 8907fbf82..000000000
--- a/framework/vendure/types/wishlist.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '@commerce/types/wishlist'
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index f6f40b918..000000000
--- a/package-lock.json
+++ /dev/null
@@ -1,17895 +0,0 @@
-{
-  "name": "nextjs-commerce",
-  "version": "1.0.0",
-  "lockfileVersion": 2,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "nextjs-commerce",
-      "version": "1.0.0",
-      "license": "MIT",
-      "dependencies": {
-        "@chec/commerce.js": "^2.8.0",
-        "@react-spring/web": "^9.4.1",
-        "@spree/storefront-api-v2-sdk": "^5.1.1",
-        "@vercel/fetch": "^6.1.1",
-        "autoprefixer": "^10.4.2",
-        "body-scroll-lock": "^4.0.0-beta.0",
-        "classnames": "^2.3.1",
-        "cookie": "^0.4.1",
-        "email-validator": "^2.0.4",
-        "immutability-helper": "^3.1.1",
-        "js-cookie": "^3.0.1",
-        "keen-slider": "^6.6.3",
-        "lodash.debounce": "^4.0.8",
-        "lodash.random": "^3.2.0",
-        "lodash.throttle": "^4.1.1",
-        "next": "^12.0.8",
-        "next-seo": "^4.28.1",
-        "next-themes": "^0.0.15",
-        "postcss": "^8.4.5",
-        "react": "^17.0.2",
-        "react-dom": "^17.0.2",
-        "react-fast-marquee": "^1.3.1",
-        "react-merge-refs": "^1.1.0",
-        "react-use-measure": "^2.1.1",
-        "stripe": "^8.196.0",
-        "swell-js": "^4.0.0-next.0",
-        "swr": "^1.1.2",
-        "tabbable": "^5.2.1",
-        "tailwindcss": "^3.0.13",
-        "uuidv4": "^6.2.12"
-      },
-      "devDependencies": {
-        "@graphql-codegen/cli": "^1.21.5",
-        "@graphql-codegen/schema-ast": "^1.18.3",
-        "@graphql-codegen/typescript": "^1.22.2",
-        "@graphql-codegen/typescript-operations": "^1.18.1",
-        "@next/bundle-analyzer": "^12.0.8",
-        "@types/body-scroll-lock": "^3.1.0",
-        "@types/chec__commerce.js": "^2.8.4",
-        "@types/cookie": "^0.4.1",
-        "@types/js-cookie": "^3.0.1",
-        "@types/lodash.debounce": "^4.0.6",
-        "@types/lodash.random": "^3.2.6",
-        "@types/lodash.throttle": "^4.1.6",
-        "@types/node": "^17.0.8",
-        "@types/react": "^17.0.38",
-        "deepmerge": "^4.2.2",
-        "eslint": "^8.6.0",
-        "eslint-config-next": "^12.0.8",
-        "eslint-config-prettier": "^8.3.0",
-        "graphql": "^15.5.1",
-        "husky": "^7.0.4",
-        "lint-staged": "^12.1.7",
-        "postcss-flexbugs-fixes": "^5.0.2",
-        "postcss-preset-env": "^7.2.3",
-        "prettier": "^2.5.1",
-        "typescript": "4.5.4"
-      },
-      "engines": {
-        "node": ">=14.x"
-      }
-    },
-    "node_modules/@ardatan/aggregate-error": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz",
-      "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@ardatan/aggregate-error/node_modules/tslib": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-      "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-      "dev": true
-    },
-    "node_modules/@babel/code-frame": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
-      "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
-      "dependencies": {
-        "@babel/highlight": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/compat-data": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz",
-      "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/core": {
-      "version": "7.14.6",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
-      "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
-      "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/template": "^7.14.5",
-        "@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"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/babel"
-      }
-    },
-    "node_modules/@babel/core/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
-    "node_modules/@babel/generator": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz",
-      "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==",
-      "dependencies": {
-        "@babel/types": "^7.16.8",
-        "jsesc": "^2.5.1",
-        "source-map": "^0.5.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-annotate-as-pure": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
-      "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-compilation-targets": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
-      "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
-      "dependencies": {
-        "@babel/compat-data": "^7.16.4",
-        "@babel/helper-validator-option": "^7.16.7",
-        "browserslist": "^4.17.5",
-        "semver": "^6.3.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
-    "node_modules/@babel/helper-create-class-features-plugin": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz",
-      "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-member-expression-to-functions": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/@babel/helper-environment-visitor": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
-      "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-function-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
-      "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
-      "dependencies": {
-        "@babel/helper-get-function-arity": "^7.16.7",
-        "@babel/template": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-get-function-arity": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
-      "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-hoist-variables": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
-      "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-member-expression-to-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
-      "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==",
-      "dev": true,
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-module-imports": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
-      "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-module-transforms": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
-      "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
-      "dependencies": {
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-module-imports": "^7.16.7",
-        "@babel/helper-simple-access": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "@babel/template": "^7.16.7",
-        "@babel/traverse": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-optimise-call-expression": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
-      "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==",
-      "dev": true,
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-plugin-utils": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
-      "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-replace-supers": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
-      "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-member-expression-to-functions": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/traverse": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-simple-access": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
-      "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
-      "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/types": "^7.16.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-split-export-declaration": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
-      "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
-      "dependencies": {
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
-      "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-validator-option": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
-      "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helpers": {
-      "version": "7.14.6",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
-      "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
-      "dependencies": {
-        "@babel/template": "^7.14.5",
-        "@babel/traverse": "^7.14.5",
-        "@babel/types": "^7.14.5"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/highlight": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
-      "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
-      "dependencies": {
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "chalk": "^2.0.0",
-        "js-tokens": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dependencies": {
-        "color-convert": "^1.9.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dependencies": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dependencies": {
-        "color-name": "1.1.3"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-    },
-    "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/@babel/highlight/node_modules/supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dependencies": {
-        "has-flag": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/@babel/parser": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz",
-      "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==",
-      "bin": {
-        "parser": "bin/babel-parser.js"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@babel/plugin-proposal-class-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
-      "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-create-class-features-plugin": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz",
-      "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/compat-data": "^7.16.4",
-        "@babel/helper-compilation-targets": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
-        "@babel/plugin-transform-parameters": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-syntax-class-properties": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
-      "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-syntax-flow": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz",
-      "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-syntax-jsx": {
-      "version": "7.14.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz",
-      "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==",
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.14.5"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-syntax-object-rest-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-arrow-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
-      "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
-      "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-block-scoping": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
-      "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-classes": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
-      "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "globals": "^11.1.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-computed-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
-      "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-destructuring": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz",
-      "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-flow-strip-types": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz",
-      "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-flow": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-for-of": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
-      "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-function-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
-      "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-compilation-targets": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
-      "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-member-expression-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
-      "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-modules-commonjs": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
-      "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-module-transforms": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-simple-access": "^7.16.7",
-        "babel-plugin-dynamic-import-node": "^2.3.3"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-object-super": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
-      "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-parameters": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
-      "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-property-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
-      "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-react-display-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz",
-      "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-react-jsx": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
-      "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-module-imports": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-jsx": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/plugin-syntax-jsx": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
-      "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-shorthand-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
-      "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-spread": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
-      "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/plugin-transform-template-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
-      "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@babel/runtime": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
-      "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==",
-      "dependencies": {
-        "regenerator-runtime": "^0.13.4"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/runtime-corejs3": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz",
-      "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==",
-      "dev": true,
-      "dependencies": {
-        "core-js-pure": "^3.20.2",
-        "regenerator-runtime": "^0.13.4"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/template": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
-      "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
-      "dependencies": {
-        "@babel/code-frame": "^7.16.7",
-        "@babel/parser": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/traverse": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz",
-      "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==",
-      "dependencies": {
-        "@babel/code-frame": "^7.16.7",
-        "@babel/generator": "^7.16.8",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-hoist-variables": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "@babel/parser": "^7.16.8",
-        "@babel/types": "^7.16.8",
-        "debug": "^4.1.0",
-        "globals": "^11.1.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/types": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz",
-      "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==",
-      "dependencies": {
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "to-fast-properties": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@chec/commerce.js": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/@chec/commerce.js/-/commerce.js-2.8.0.tgz",
-      "integrity": "sha512-OPBphT/hU33iDp52zzYOqz/oSXLhEuhGVUg2UNvYtmBW4eCNmtsM0dqW0+wu+6K0d6fZojurCBdVQMKb2R7l3g==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.4",
-        "axios": "^0.21.1"
-      }
-    },
-    "node_modules/@chec/commerce.js/node_modules/axios": {
-      "version": "0.21.4",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
-      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-      "dependencies": {
-        "follow-redirects": "^1.14.0"
-      }
-    },
-    "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz",
-      "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==",
-      "dev": true,
-      "dependencies": {
-        "lodash.get": "^4",
-        "make-error": "^1",
-        "ts-node": "^9",
-        "tslib": "^2"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "cosmiconfig": ">=6"
-      }
-    },
-    "node_modules/@eslint/eslintrc": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
-      "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
-      "dev": true,
-      "dependencies": {
-        "ajv": "^6.12.4",
-        "debug": "^4.3.2",
-        "espree": "^9.2.0",
-        "globals": "^13.9.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.2.1",
-        "js-yaml": "^4.1.0",
-        "minimatch": "^3.0.4",
-        "strip-json-comments": "^3.1.1"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/globals": {
-      "version": "13.12.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
-      "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
-      "dev": true,
-      "dependencies": {
-        "type-fest": "^0.20.2"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/type-fest": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@graphql-codegen/cli": {
-      "version": "1.21.8",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-1.21.8.tgz",
-      "integrity": "sha512-sxKUIvT2dGerFyvs6SsQpkHDyOnk+MRwqsnmsF22eAWHUbNLd429PKC71E26egXzT2BhHabUIfMV7xk9mkgWNg==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/core": "1.17.10",
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-tools/apollo-engine-loader": "^6.2.5",
-        "@graphql-tools/code-file-loader": "^6.3.1",
-        "@graphql-tools/git-loader": "^6.2.6",
-        "@graphql-tools/github-loader": "^6.2.5",
-        "@graphql-tools/graphql-file-loader": "^6.2.7",
-        "@graphql-tools/json-file-loader": "^6.2.6",
-        "@graphql-tools/load": "^6.2.8",
-        "@graphql-tools/prisma-loader": "6.3.0",
-        "@graphql-tools/url-loader": "^6.10.1",
-        "@graphql-tools/utils": "^7.9.1",
-        "ansi-escapes": "^4.3.1",
-        "chalk": "^4.1.0",
-        "change-case-all": "1.0.14",
-        "chokidar": "^3.5.2",
-        "common-tags": "^1.8.0",
-        "cosmiconfig": "^7.0.0",
-        "debounce": "^1.2.0",
-        "dependency-graph": "^0.11.0",
-        "detect-indent": "^6.0.0",
-        "glob": "^7.1.6",
-        "graphql-config": "^3.3.0",
-        "inquirer": "^7.3.3",
-        "is-glob": "^4.0.1",
-        "json-to-pretty-yaml": "^1.2.2",
-        "latest-version": "5.1.0",
-        "listr": "^0.14.3",
-        "listr-update-renderer": "^0.5.0",
-        "log-symbols": "^4.0.0",
-        "minimatch": "^3.0.4",
-        "mkdirp": "^1.0.4",
-        "string-env-interpolation": "^1.0.1",
-        "ts-log": "^2.2.3",
-        "tslib": "~2.3.0",
-        "valid-url": "^1.0.9",
-        "wrap-ansi": "^7.0.0",
-        "yaml": "^1.10.0",
-        "yargs": "^17.0.0"
-      },
-      "bin": {
-        "gql-gen": "bin.js",
-        "graphql-code-generator": "bin.js",
-        "graphql-codegen": "bin.js"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/core": {
-      "version": "1.17.10",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-1.17.10.tgz",
-      "integrity": "sha512-RA3umgVDs/RI/+ztHh+H4GfJxrJUfWJQqoAkMfX4qPTVO5qsy3R4vPudE0oP8w+kFbL8dFsRfAAPUZxI4jV/hQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/plugin-helpers": "^1.18.7",
-        "@graphql-tools/merge": "^6.2.14",
-        "@graphql-tools/utils": "^7.9.1",
-        "tslib": "~2.2.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/core/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-codegen/plugin-helpers": {
-      "version": "1.18.8",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz",
-      "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.9.1",
-        "common-tags": "1.8.0",
-        "import-from": "4.0.0",
-        "lodash": "~4.17.0",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/plugin-helpers/node_modules/import-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz",
-      "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=12.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@graphql-codegen/schema-ast": {
-      "version": "1.18.3",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-1.18.3.tgz",
-      "integrity": "sha512-D0uheH039ztSG3mboW5enmyaFwTcevLSR8yNrdN+NEKoQJJoDWsb9P/G6NTdFu5Bb03IvNhIFTpG1ttWtRP/aQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/plugin-helpers": "^1.18.7",
-        "@graphql-tools/utils": "^7.9.1",
-        "tslib": "~2.2.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-codegen/typescript": {
-      "version": "1.23.0",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-1.23.0.tgz",
-      "integrity": "sha512-ZfFgk5mGfuOy4kEpy+dcuvJMphigMfJ4AkiP1qWmWFufDW3Sg2yayTSNmzeFdcXMrWGgfNW2dKtuuTmbmQhS5g==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-codegen/visitor-plugin-common": "1.22.0",
-        "auto-bind": "~4.0.0",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/typescript-operations": {
-      "version": "1.18.4",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-1.18.4.tgz",
-      "integrity": "sha512-bxeRaCCwu2rUXkRj6WwMVazlMignemeUJfDjrK7d4z9o9tyjlrGWnbsjeZI7M17GNCARU9Vkr6XH94wEyooSsA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-codegen/typescript": "^1.23.0",
-        "@graphql-codegen/visitor-plugin-common": "1.22.0",
-        "auto-bind": "~4.0.0",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-codegen/visitor-plugin-common": {
-      "version": "1.22.0",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.22.0.tgz",
-      "integrity": "sha512-2afJGb6d8iuZl9KizYsexPwraEKO1lAvt5eVHNM5Xew4vwz/AUHeqDR2uOeQgVV+27EzjjzSDd47IEdH0dLC2w==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-tools/optimize": "^1.0.1",
-        "@graphql-tools/relay-operation-optimizer": "^6.3.0",
-        "array.prototype.flatmap": "^1.2.4",
-        "auto-bind": "~4.0.0",
-        "change-case-all": "1.0.14",
-        "dependency-graph": "^0.11.0",
-        "graphql-tag": "^2.11.0",
-        "parse-filepath": "^1.0.2",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/apollo-engine-loader": {
-      "version": "6.2.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-6.2.5.tgz",
-      "integrity": "sha512-CE4uef6PyxtSG+7OnLklIr2BZZDgjO89ZXK47EKdY7jQy/BQD/9o+8SxPsgiBc+2NsDJH2I6P/nqoaJMOEat6g==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.0.0",
-        "cross-fetch": "3.0.6",
-        "tslib": "~2.0.1"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/apollo-engine-loader/node_modules/tslib": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-      "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/batch-execute": {
-      "version": "7.1.2",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz",
-      "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.7.0",
-        "dataloader": "2.0.0",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/batch-execute/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/batch-execute/node_modules/value-or-promise": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-      "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@graphql-tools/code-file-loader": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz",
-      "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/graphql-tag-pluck": "^6.5.1",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/code-file-loader/node_modules/tslib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-      "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/delegate": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz",
-      "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==",
-      "dev": true,
-      "dependencies": {
-        "@ardatan/aggregate-error": "0.0.6",
-        "@graphql-tools/batch-execute": "^7.1.2",
-        "@graphql-tools/schema": "^7.1.5",
-        "@graphql-tools/utils": "^7.7.1",
-        "dataloader": "2.0.0",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/schema": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-      "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.1.2",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/delegate/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/delegate/node_modules/value-or-promise": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-      "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@graphql-tools/git-loader": {
-      "version": "6.2.6",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz",
-      "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/graphql-tag-pluck": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/git-loader/node_modules/tslib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-      "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/github-loader": {
-      "version": "6.2.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz",
-      "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/graphql-tag-pluck": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "cross-fetch": "3.0.6",
-        "tslib": "~2.0.1"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/github-loader/node_modules/tslib": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-      "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/graphql-file-loader": {
-      "version": "6.2.7",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz",
-      "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/import": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/graphql-file-loader/node_modules/tslib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-      "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/graphql-tag-pluck": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz",
-      "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==",
-      "dev": true,
-      "dependencies": {
-        "@babel/parser": "7.12.16",
-        "@babel/traverse": "7.12.13",
-        "@babel/types": "7.12.13",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/parser": {
-      "version": "7.12.16",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz",
-      "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==",
-      "dev": true,
-      "bin": {
-        "parser": "bin/babel-parser.js"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/traverse": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz",
-      "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.12.13",
-        "@babel/generator": "^7.12.13",
-        "@babel/helper-function-name": "^7.12.13",
-        "@babel/helper-split-export-declaration": "^7.12.13",
-        "@babel/parser": "^7.12.13",
-        "@babel/types": "^7.12.13",
-        "debug": "^4.1.0",
-        "globals": "^11.1.0",
-        "lodash": "^4.17.19"
-      }
-    },
-    "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/types": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz",
-      "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-validator-identifier": "^7.12.11",
-        "lodash": "^4.17.19",
-        "to-fast-properties": "^2.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/tslib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-      "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/import": {
-      "version": "6.6.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.5.tgz",
-      "integrity": "sha512-w0/cYuhrr2apn+iGoTToCqt65x2NN2iHQyqRNk/Zw1NJ+e8/C3eKVw0jmW4pYQvSocuPxL4UCSI56SdKO7m3+Q==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "8.6.1",
-        "resolve-from": "5.0.0",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/import/node_modules/@graphql-tools/utils": {
-      "version": "8.6.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-      "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/json-file-loader": {
-      "version": "6.2.6",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
-      "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.0.1"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/json-file-loader/node_modules/tslib": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-      "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/load": {
-      "version": "6.2.8",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz",
-      "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/merge": "^6.2.12",
-        "@graphql-tools/utils": "^7.5.0",
-        "globby": "11.0.3",
-        "import-from": "3.0.0",
-        "is-glob": "4.0.1",
-        "p-limit": "3.1.0",
-        "tslib": "~2.2.0",
-        "unixify": "1.0.0",
-        "valid-url": "1.0.9"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/load/node_modules/globby": {
-      "version": "11.0.3",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
-      "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
-      "dev": true,
-      "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"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@graphql-tools/load/node_modules/ignore": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
-      "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 4"
-      }
-    },
-    "node_modules/@graphql-tools/load/node_modules/is-glob": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
-      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
-      "dev": true,
-      "dependencies": {
-        "is-extglob": "^2.1.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/@graphql-tools/load/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/merge": {
-      "version": "6.2.17",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.17.tgz",
-      "integrity": "sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/schema": "^8.0.2",
-        "@graphql-tools/utils": "8.0.2",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.0.2.tgz",
-      "integrity": "sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/optimize": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.1.1.tgz",
-      "integrity": "sha512-y0TEfPyGmJaQjnsTRs/UP7/ZHaB3i68VAsXW4H2doUFKY6rIOUz+ruME/uWsfy/VeTWBNqGX8/m/X7YFEi5OJQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/prisma-loader": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-6.3.0.tgz",
-      "integrity": "sha512-9V3W/kzsFBmUQqOsd96V4a4k7Didz66yh/IK89B1/rrvy9rYj+ULjEqR73x9BYZ+ww9FV8yP8LasWAJwWaqqJQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/url-loader": "^6.8.2",
-        "@graphql-tools/utils": "^7.0.0",
-        "@types/http-proxy-agent": "^2.0.2",
-        "@types/js-yaml": "^4.0.0",
-        "@types/json-stable-stringify": "^1.0.32",
-        "@types/jsonwebtoken": "^8.5.0",
-        "chalk": "^4.1.0",
-        "debug": "^4.3.1",
-        "dotenv": "^8.2.0",
-        "graphql-request": "^3.3.0",
-        "http-proxy-agent": "^4.0.1",
-        "https-proxy-agent": "^5.0.0",
-        "isomorphic-fetch": "^3.0.0",
-        "js-yaml": "^4.0.0",
-        "json-stable-stringify": "^1.0.1",
-        "jsonwebtoken": "^8.5.1",
-        "lodash": "^4.17.20",
-        "replaceall": "^0.1.6",
-        "scuid": "^1.1.0",
-        "tslib": "~2.1.0",
-        "yaml-ast-parser": "^0.0.43"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/prisma-loader/node_modules/tslib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-      "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/relay-operation-optimizer": {
-      "version": "6.4.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.1.tgz",
-      "integrity": "sha512-2b9D5L+31sIBnvmcmIW5tfvNUV+nJFtbHpUyarTRDmFT6EZ2cXo4WZMm9XJcHQD/Z5qvMXfPHxzQ3/JUs4xI+w==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^8.5.1",
-        "relay-compiler": "12.0.0",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": {
-      "version": "8.6.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-      "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/schema": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz",
-      "integrity": "sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/merge": "^8.2.1",
-        "@graphql-tools/utils": "^8.5.1",
-        "tslib": "~2.3.0",
-        "value-or-promise": "1.0.11"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/merge": {
-      "version": "8.2.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz",
-      "integrity": "sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^8.5.1",
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": {
-      "version": "8.6.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-      "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "~2.3.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/url-loader": {
-      "version": "6.10.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz",
-      "integrity": "sha512-DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/delegate": "^7.0.1",
-        "@graphql-tools/utils": "^7.9.0",
-        "@graphql-tools/wrap": "^7.0.4",
-        "@microsoft/fetch-event-source": "2.0.1",
-        "@types/websocket": "1.0.2",
-        "abort-controller": "3.0.0",
-        "cross-fetch": "3.1.4",
-        "extract-files": "9.0.0",
-        "form-data": "4.0.0",
-        "graphql-ws": "^4.4.1",
-        "is-promise": "4.0.0",
-        "isomorphic-ws": "4.0.1",
-        "lodash": "4.17.21",
-        "meros": "1.1.4",
-        "subscriptions-transport-ws": "^0.9.18",
-        "sync-fetch": "0.3.0",
-        "tslib": "~2.2.0",
-        "valid-url": "1.0.9",
-        "ws": "7.4.5"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/url-loader/node_modules/cross-fetch": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
-      "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
-      "dev": true,
-      "dependencies": {
-        "node-fetch": "2.6.1"
-      }
-    },
-    "node_modules/@graphql-tools/url-loader/node_modules/node-fetch": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
-      "dev": true,
-      "engines": {
-        "node": "4.x || >=6.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/url-loader/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/url-loader/node_modules/ws": {
-      "version": "7.4.5",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
-      "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
-      "dev": true,
-      "engines": {
-        "node": ">=8.3.0"
-      },
-      "peerDependencies": {
-        "bufferutil": "^4.0.1",
-        "utf-8-validate": "^5.0.2"
-      },
-      "peerDependenciesMeta": {
-        "bufferutil": {
-          "optional": true
-        },
-        "utf-8-validate": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@graphql-tools/utils": {
-      "version": "7.10.0",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
-      "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
-      "dev": true,
-      "dependencies": {
-        "@ardatan/aggregate-error": "0.0.6",
-        "camel-case": "4.1.2",
-        "tslib": "~2.2.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/utils/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/wrap": {
-      "version": "7.0.8",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz",
-      "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/delegate": "^7.1.5",
-        "@graphql-tools/schema": "^7.1.5",
-        "@graphql-tools/utils": "^7.8.1",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/schema": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-      "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.1.2",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/@graphql-tools/wrap/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/@graphql-tools/wrap/node_modules/value-or-promise": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-      "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@humanwhocodes/config-array": {
-      "version": "0.9.2",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
-      "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
-      "dev": true,
-      "dependencies": {
-        "@humanwhocodes/object-schema": "^1.2.1",
-        "debug": "^4.1.1",
-        "minimatch": "^3.0.4"
-      },
-      "engines": {
-        "node": ">=10.10.0"
-      }
-    },
-    "node_modules/@humanwhocodes/object-schema": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
-      "dev": true
-    },
-    "node_modules/@iarna/toml": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
-      "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
-      "dev": true
-    },
-    "node_modules/@microsoft/fetch-event-source": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
-      "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==",
-      "dev": true
-    },
-    "node_modules/@next/bundle-analyzer": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.8.tgz",
-      "integrity": "sha512-tRwFyAkJA0h+rwt4exq31T59qo4qwp7vPoR3yC8gIpK/E5NAwafyk40aNpk4OWhiQ2IvJMFutukMzY3xl79NXA==",
-      "dev": true,
-      "dependencies": {
-        "webpack-bundle-analyzer": "4.3.0"
-      }
-    },
-    "node_modules/@next/env": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.8.tgz",
-      "integrity": "sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g=="
-    },
-    "node_modules/@next/eslint-plugin-next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.8.tgz",
-      "integrity": "sha512-bf7O0Mvs1h3vIdbbi0hijG+6YG3ED/ebQfmUltrQSgGtHVKGADDoE2qQhwE+mrvxuz9BD8y3mJDOSy0PBLKGBA==",
-      "dev": true,
-      "dependencies": {
-        "glob": "7.1.7"
-      }
-    },
-    "node_modules/@next/react-refresh-utils": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.8.tgz",
-      "integrity": "sha512-Bq4T/aOOFQUkCF9b8k9x+HpjOevu65ZPxsYJOpgEtBuJyvb+sZREtDDLKb/RtjUeLMrWrsGD0aLteyFFtiS8Og==",
-      "peerDependencies": {
-        "react-refresh": "0.8.3",
-        "webpack": "^4 || ^5"
-      },
-      "peerDependenciesMeta": {
-        "webpack": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@next/swc-android-arm64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.8.tgz",
-      "integrity": "sha512-BiXMcOZNnXSIXv+FQvbRgbMb+iYayLX/Sb2MwR0wja+eMs46BY1x/ssXDwUBADP1M8YtrGTlSPHZqUiCU94+Mg==",
-      "cpu": [
-        "arm64"
-      ],
-      "optional": true,
-      "os": [
-        "android"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-darwin-arm64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.8.tgz",
-      "integrity": "sha512-6EGMmvcIwPpwt0/iqLbXDGx6oKHAXzbowyyVXK8cqmIvhoghRFjqfiNGBs+ar6wEBGt68zhwn/77vE3iQWoFJw==",
-      "cpu": [
-        "arm64"
-      ],
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-darwin-x64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.8.tgz",
-      "integrity": "sha512-todxgQOGP/ucz5UH2kKR3XGDdkWmWr0VZAAbzgTbiFm45Ol4ih602k2nNR3xSbza9IqNhxNuUVsMpBgeo19CFQ==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-linux-arm-gnueabihf": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.8.tgz",
-      "integrity": "sha512-KULmdrfI+DJxBuhEyV47MQllB/WpC3P2xbwhHezxL/LkC2nkz5SbV4k432qpx2ebjIRf9SjdQ5Oz1FjD8Urayw==",
-      "cpu": [
-        "arm"
-      ],
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-linux-arm64-gnu": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.8.tgz",
-      "integrity": "sha512-1XO87wgIVPvt5fx5i8CqdhksRdcpqyzCOLW4KrE0f9pUCIT04EbsFiKdmsH9c73aqjNZMnCMXpbV+cn4hN8x1w==",
-      "cpu": [
-        "arm64"
-      ],
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-linux-arm64-musl": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.8.tgz",
-      "integrity": "sha512-NStRZEy/rkk2G18Yhc/Jzi1Q2Dv+zH176oO8479zlDQ5syRfc6AvRHVV4iNRc8Pai58If83r/nOJkwFgGwkKLw==",
-      "cpu": [
-        "arm64"
-      ],
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-linux-x64-gnu": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.8.tgz",
-      "integrity": "sha512-rHxTGtTEDFsdT9/VjewzxE19S7W1NE+aZpm4TwbT1pSNGK9KQxQGcXjqoHMeB+VZCFknzNEoIU/vydbjZMlAuw==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-linux-x64-musl": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.8.tgz",
-      "integrity": "sha512-1F4kuFRQE10GSx7LMSvRmjMXFGpxT30g8rZzq9r/p/WKdErA4WB4uxaKEX0P8AINfuN63i4luKdR+LoacgBhYw==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-win32-arm64-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.8.tgz",
-      "integrity": "sha512-QuRe49jqCV61TysGopC1P0HPqFAMZMWe1nbIQLyOkDLkULmZR8N2eYZq7fwqvZE5YwhMmJA/grwWFVBqSEh5Kg==",
-      "cpu": [
-        "arm64"
-      ],
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-win32-ia32-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.8.tgz",
-      "integrity": "sha512-0RV3/julybJr1IlPCowIWrJJZyAl+sOakJEM15y1NOOsbwTQ5eKZZXSi+7e23TN4wmy5HwNvn2dKzgOEVJ+jbA==",
-      "cpu": [
-        "ia32"
-      ],
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@next/swc-win32-x64-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.8.tgz",
-      "integrity": "sha512-tTga6OFfO2JS+Yt5hdryng259c/tzNgSWkdiU2E+RBHiysAIOta57n4PJ8iPahOSqEqjaToPI76wM+o441GaNQ==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "dependencies": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.walk": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz",
-      "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==",
-      "dependencies": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@polka/url": {
-      "version": "1.0.0-next.15",
-      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz",
-      "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==",
-      "dev": true
-    },
-    "node_modules/@react-spring/animated": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.1.tgz",
-      "integrity": "sha512-uAJkcrSlpg8uSe8zy7eJcDdNpI5QvRXrZUKhn5dlGAPk3psgY5qj6pahzB0k5NZZQ27ls8Z5Nt4VKhGaXPJNDQ==",
-      "dependencies": {
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0  || ^17.0.0"
-      }
-    },
-    "node_modules/@react-spring/core": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.4.1.tgz",
-      "integrity": "sha512-sXQmGg4wNeyoVZ/LdEF01xtzQKZtLIyFDX03hoa0oa9VTgLNTVSbVXD9q2xsH8HtWpY4OFPTi/9Noi93gjnYyg==",
-      "dependencies": {
-        "@react-spring/animated": "~9.4.0",
-        "@react-spring/rafz": "~9.4.0",
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/react-spring/donate"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0  || ^17.0.0"
-      }
-    },
-    "node_modules/@react-spring/rafz": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.4.1.tgz",
-      "integrity": "sha512-R/mNOQ4axraWsL/jwzoaqfeX6RwUODg3WOGweL8zYbHHheRqQV+QwnhGmDATepBZ1H3UUulhXvOqkzWzjnpuQQ=="
-    },
-    "node_modules/@react-spring/shared": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.4.1.tgz",
-      "integrity": "sha512-7atTQOhEQmw5UEYbb5yk7YEaf11AcRF7UISfAmr9FJ2FJD4VUVCn1R4V78omiFiRvnU6qI3GRhkRnIvYM8aAZw==",
-      "dependencies": {
-        "@react-spring/rafz": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0  || ^17.0.0"
-      }
-    },
-    "node_modules/@react-spring/types": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.4.1.tgz",
-      "integrity": "sha512-eZmlFRc+XkY/HJi4RswLkIHH0nKQkqKRHPUqnseffcBuZ5FNXKDUmNnLUpqkrCpl746QCFVQtI5QptLklDATfQ=="
-    },
-    "node_modules/@react-spring/web": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.4.1.tgz",
-      "integrity": "sha512-ajlGJl0Zqa3idhZw0KL5chP8AIn4wPHpDY7WjtWaWjVZSZRSBAeHmfqNLtAGCjazeO/Q6zmt6wdGs8bX8q42rQ==",
-      "dependencies": {
-        "@react-spring/animated": "~9.4.0",
-        "@react-spring/core": "~9.4.0",
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0  || ^17.0.0",
-        "react-dom": "^16.8.0  || ^17.0.0"
-      }
-    },
-    "node_modules/@rushstack/eslint-patch": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
-      "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==",
-      "dev": true
-    },
-    "node_modules/@samverschueren/stream-to-observable": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz",
-      "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==",
-      "dev": true,
-      "dependencies": {
-        "any-observable": "^0.3.0"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "peerDependenciesMeta": {
-        "rxjs": {
-          "optional": true
-        },
-        "zen-observable": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@sindresorhus/is": {
-      "version": "0.14.0",
-      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
-      "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/@spree/storefront-api-v2-sdk": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/@spree/storefront-api-v2-sdk/-/storefront-api-v2-sdk-5.1.1.tgz",
-      "integrity": "sha512-W2fyXbQ5OABXXUgmafgDMy/d8NWiF6q59JupzsiWFWIv/WaTYxcIK8uajZJQJrNmKJtafILEjPy+1AxVKRLUcQ==",
-      "engines": {
-        "node": ">=14.17.0"
-      },
-      "peerDependencies": {
-        "axios": "^0.24.0",
-        "node-fetch": "^2.6.6"
-      },
-      "peerDependenciesMeta": {
-        "axios": {
-          "optional": true
-        },
-        "node-fetch": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@szmarczak/http-timer": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
-      "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
-      "dev": true,
-      "dependencies": {
-        "defer-to-connect": "^1.0.1"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/@tootallnate/once": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
-      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
-      "dev": true,
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/@types/async-retry": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.2.1.tgz",
-      "integrity": "sha512-yMQ6CVgICWtyFNBqJT3zqOc+TnqqEPLo4nKJNPFwcialiylil38Ie6q1ENeFTjvaLOkVim9K5LisHgAKJWidGQ=="
-    },
-    "node_modules/@types/body-scroll-lock": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@types/body-scroll-lock/-/body-scroll-lock-3.1.0.tgz",
-      "integrity": "sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA==",
-      "dev": true
-    },
-    "node_modules/@types/chec__commerce.js": {
-      "version": "2.8.4",
-      "resolved": "https://registry.npmjs.org/@types/chec__commerce.js/-/chec__commerce.js-2.8.4.tgz",
-      "integrity": "sha512-hyR2OXEB3gIRp/ESWOQaFStefBG+C5OdnkxGC1Gmp0ePVzl/wk5FyvaK5NsT1ddNC/y1YsmDAVPe+DArr6/9Jg==",
-      "dev": true,
-      "dependencies": {
-        "@types/chec__commerce.js": "*"
-      }
-    },
-    "node_modules/@types/cookie": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
-      "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
-      "dev": true
-    },
-    "node_modules/@types/http-proxy-agent": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.2.tgz",
-      "integrity": "sha512-2S6IuBRhqUnH1/AUx9k8KWtY3Esg4eqri946MnxTG5HwehF1S5mqLln8fcyMiuQkY72p2gH3W+rIPqp5li0LyQ==",
-      "dev": true,
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@types/js-cookie": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.1.tgz",
-      "integrity": "sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==",
-      "dev": true
-    },
-    "node_modules/@types/js-yaml": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
-      "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
-      "dev": true
-    },
-    "node_modules/@types/json-stable-stringify": {
-      "version": "1.0.33",
-      "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz",
-      "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==",
-      "dev": true
-    },
-    "node_modules/@types/json5": {
-      "version": "0.0.29",
-      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
-      "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
-      "dev": true
-    },
-    "node_modules/@types/jsonwebtoken": {
-      "version": "8.5.7",
-      "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.7.tgz",
-      "integrity": "sha512-CBHN+1unePowgS94ayLE7aVp7AfyhgG/3l2O+AjkhOMY4kAAfVI1OnbbLnOeDMAdTNLP5ZjJ3kdZanRtRQaK3Q==",
-      "dev": true,
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@types/lodash": {
-      "version": "4.14.170",
-      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz",
-      "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==",
-      "dev": true
-    },
-    "node_modules/@types/lodash.debounce": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz",
-      "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==",
-      "dev": true,
-      "dependencies": {
-        "@types/lodash": "*"
-      }
-    },
-    "node_modules/@types/lodash.random": {
-      "version": "3.2.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.6.tgz",
-      "integrity": "sha512-RRr0pKm+3USvG/HTkuRKA8v2EqXu19VXC09j4VL2UQec8Yx8Fn6wYTPGjYdmX4UFd23ykS7SLFkiULS/rv8kTA==",
-      "dev": true,
-      "dependencies": {
-        "@types/lodash": "*"
-      }
-    },
-    "node_modules/@types/lodash.throttle": {
-      "version": "4.1.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.6.tgz",
-      "integrity": "sha512-/UIH96i/sIRYGC60NoY72jGkCJtFN5KVPhEMMMTjol65effe1gPn0tycJqV5tlSwMTzX8FqzB5yAj0rfGHTPNg==",
-      "dev": true,
-      "dependencies": {
-        "@types/lodash": "*"
-      }
-    },
-    "node_modules/@types/lru-cache": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-4.1.1.tgz",
-      "integrity": "sha512-8mNEUG6diOrI6pMqOHrHPDBB1JsrpedeMK9AWGzVCQ7StRRribiT9BRvUmF8aUws9iBbVlgVekOT5Sgzc1MTKw=="
-    },
-    "node_modules/@types/node": {
-      "version": "17.0.8",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
-      "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg=="
-    },
-    "node_modules/@types/node-fetch": {
-      "version": "2.5.12",
-      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
-      "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
-      "peer": true,
-      "dependencies": {
-        "@types/node": "*",
-        "form-data": "^3.0.0"
-      }
-    },
-    "node_modules/@types/node-fetch/node_modules/form-data": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-      "peer": true,
-      "dependencies": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/@types/parse-json": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
-      "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
-    },
-    "node_modules/@types/prop-types": {
-      "version": "15.7.3",
-      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
-      "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==",
-      "dev": true
-    },
-    "node_modules/@types/react": {
-      "version": "17.0.38",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz",
-      "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==",
-      "dev": true,
-      "dependencies": {
-        "@types/prop-types": "*",
-        "@types/scheduler": "*",
-        "csstype": "^3.0.2"
-      }
-    },
-    "node_modules/@types/scheduler": {
-      "version": "0.16.1",
-      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
-      "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==",
-      "dev": true
-    },
-    "node_modules/@types/uuid": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz",
-      "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg=="
-    },
-    "node_modules/@types/websocket": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz",
-      "integrity": "sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==",
-      "dev": true,
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@typescript-eslint/parser": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.1.tgz",
-      "integrity": "sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/scope-manager": "5.9.1",
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/typescript-estree": "5.9.1",
-        "debug": "^4.3.2"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/scope-manager": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz",
-      "integrity": "sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/visitor-keys": "5.9.1"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/types": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.1.tgz",
-      "integrity": "sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==",
-      "dev": true,
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz",
-      "integrity": "sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/visitor-keys": "5.9.1",
-        "debug": "^4.3.2",
-        "globby": "^11.0.4",
-        "is-glob": "^4.0.3",
-        "semver": "^7.3.5",
-        "tsutils": "^3.21.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz",
-      "integrity": "sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "5.9.1",
-        "eslint-visitor-keys": "^3.0.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@vercel/fetch": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch/-/fetch-6.1.1.tgz",
-      "integrity": "sha512-nddCkgpA0aVIqOlzh+qVlzDNcQq0cSnqefM+x6SciGI4GCvVZeaZ7WEowgX8I/HwBAq8Uj5Bdnd+r0+sYsJsig==",
-      "dependencies": {
-        "@types/async-retry": "1.2.1",
-        "@vercel/fetch-cached-dns": "^2.0.2",
-        "@vercel/fetch-retry": "^5.0.2",
-        "agentkeepalive": "3.4.1",
-        "debug": "3.1.0"
-      },
-      "peerDependencies": {
-        "@types/node-fetch": "2",
-        "node-fetch": "2"
-      }
-    },
-    "node_modules/@vercel/fetch-cached-dns": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch-cached-dns/-/fetch-cached-dns-2.0.2.tgz",
-      "integrity": "sha512-gDqKEV8CeY2YmCdZpP1rn3tFK1L07Vw2+HYkCK8zpRHOVGr/sP8yhBsW+C/yqGVj0i9z/rIvqIHe5emvRvxwgw==",
-      "dependencies": {
-        "@types/node-fetch": "2.3.2",
-        "@zeit/dns-cached-resolve": "2.1.2"
-      },
-      "peerDependencies": {
-        "node-fetch": "*"
-      }
-    },
-    "node_modules/@vercel/fetch-cached-dns/node_modules/@types/node-fetch": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.3.2.tgz",
-      "integrity": "sha512-yW0EOebSsQme9yKu09XbdDfle4/SmWZMK4dfteWcSLCYNQQcF+YOv0kIrvm+9pO11/ghA4E6A+RNQqvYj4Nr3A==",
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@vercel/fetch-retry": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch-retry/-/fetch-retry-5.0.3.tgz",
-      "integrity": "sha512-DIIoBY92r+sQ6iHSf5WjKiYvkdsDIMPWKYATlE0KcUAj2RV6SZK9UWpUzBRKsofXqedOqpVjrI0IE6AWL7JRtg==",
-      "dependencies": {
-        "async-retry": "^1.3.1",
-        "debug": "^3.1.0"
-      },
-      "peerDependencies": {
-        "node-fetch": "*"
-      }
-    },
-    "node_modules/@vercel/fetch-retry/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/@vercel/fetch/node_modules/debug": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-      "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-      "dependencies": {
-        "ms": "2.0.0"
-      }
-    },
-    "node_modules/@vercel/fetch/node_modules/ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-    },
-    "node_modules/@zeit/dns-cached-resolve": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@zeit/dns-cached-resolve/-/dns-cached-resolve-2.1.2.tgz",
-      "integrity": "sha512-A/5gbBskKPETTBqHwvlaW1Ri2orO62yqoFoXdxna1SQ7A/lXjpWgpJ1wdY3IQEcz5LydpS4sJ8SzI2gFyyLEhg==",
-      "dependencies": {
-        "@types/async-retry": "1.2.1",
-        "@types/lru-cache": "4.1.1",
-        "@types/node": "10.12.18",
-        "async-retry": "1.2.3",
-        "lru-cache": "5.1.1"
-      }
-    },
-    "node_modules/@zeit/dns-cached-resolve/node_modules/@types/node": {
-      "version": "10.12.18",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
-      "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ=="
-    },
-    "node_modules/@zeit/dns-cached-resolve/node_modules/async-retry": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz",
-      "integrity": "sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==",
-      "dependencies": {
-        "retry": "0.12.0"
-      }
-    },
-    "node_modules/abort-controller": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
-      "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
-      "dev": true,
-      "dependencies": {
-        "event-target-shim": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=6.5"
-      }
-    },
-    "node_modules/acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "dev": true,
-      "peerDependencies": {
-        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
-      }
-    },
-    "node_modules/acorn-node": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
-      "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
-      "dependencies": {
-        "acorn": "^7.0.0",
-        "acorn-walk": "^7.0.0",
-        "xtend": "^4.0.2"
-      }
-    },
-    "node_modules/acorn-walk": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
-      "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/agent-base": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
-      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
-      "dev": true,
-      "dependencies": {
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6.0.0"
-      }
-    },
-    "node_modules/agentkeepalive": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz",
-      "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==",
-      "dependencies": {
-        "humanize-ms": "^1.2.1"
-      },
-      "engines": {
-        "node": ">= 4.0.0"
-      }
-    },
-    "node_modules/aggregate-error": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
-      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
-      "dev": true,
-      "dependencies": {
-        "clean-stack": "^2.0.0",
-        "indent-string": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
-      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dev": true,
-      "dependencies": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/epoberezkin"
-      }
-    },
-    "node_modules/ansi-colors": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-      "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-      "dev": true,
-      "dependencies": {
-        "type-fest": "^0.21.3"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-      }
-    },
-    "node_modules/any-observable": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
-      "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/anymatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
-      "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
-      "dependencies": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/arg": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
-      "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA=="
-    },
-    "node_modules/argparse": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-      "dev": true
-    },
-    "node_modules/aria-query": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
-      "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/runtime": "^7.10.2",
-        "@babel/runtime-corejs3": "^7.10.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      }
-    },
-    "node_modules/array-includes": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
-      "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1",
-        "get-intrinsic": "^1.1.1",
-        "is-string": "^1.0.7"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/array-includes-with-glob": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/array-includes-with-glob/-/array-includes-with-glob-3.1.0.tgz",
-      "integrity": "sha512-/PZEKASyXWmUTkNhuxnmqybv1CmIdY5rp3axLy3Dv6SYfaBb+EgS7Nl991mquHT1N2u0YAnE3IOafVNRM6Y9dw==",
-      "dependencies": {
-        "@babel/runtime": "^7.14.0",
-        "matcher": "^4.0.0"
-      }
-    },
-    "node_modules/array-union": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
-      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/array.prototype.flat": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
-      "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/array.prototype.flatmap": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
-      "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/asap": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
-      "dev": true
-    },
-    "node_modules/ast-types-flow": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
-      "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
-      "dev": true
-    },
-    "node_modules/astral-regex": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
-      "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/async-retry": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
-      "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
-      "dependencies": {
-        "retry": "0.12.0"
-      }
-    },
-    "node_modules/asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
-      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
-    },
-    "node_modules/auto-bind": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz",
-      "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/autoprefixer": {
-      "version": "10.4.2",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz",
-      "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==",
-      "dependencies": {
-        "browserslist": "^4.19.1",
-        "caniuse-lite": "^1.0.30001297",
-        "fraction.js": "^4.1.2",
-        "normalize-range": "^0.1.2",
-        "picocolors": "^1.0.0",
-        "postcss-value-parser": "^4.2.0"
-      },
-      "bin": {
-        "autoprefixer": "bin/autoprefixer"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/axe-core": {
-      "version": "4.3.5",
-      "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz",
-      "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/axios": {
-      "version": "0.24.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
-      "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "follow-redirects": "^1.14.4"
-      }
-    },
-    "node_modules/axobject-query": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
-      "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
-      "dev": true
-    },
-    "node_modules/babel-plugin-dynamic-import-node": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
-      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
-      "dev": true,
-      "dependencies": {
-        "object.assign": "^4.1.0"
-      }
-    },
-    "node_modules/babel-plugin-syntax-trailing-function-commas": {
-      "version": "7.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
-      "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==",
-      "dev": true
-    },
-    "node_modules/babel-preset-fbjs": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
-      "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
-      "dev": true,
-      "dependencies": {
-        "@babel/plugin-proposal-class-properties": "^7.0.0",
-        "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
-        "@babel/plugin-syntax-class-properties": "^7.0.0",
-        "@babel/plugin-syntax-flow": "^7.0.0",
-        "@babel/plugin-syntax-jsx": "^7.0.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
-        "@babel/plugin-transform-arrow-functions": "^7.0.0",
-        "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
-        "@babel/plugin-transform-block-scoping": "^7.0.0",
-        "@babel/plugin-transform-classes": "^7.0.0",
-        "@babel/plugin-transform-computed-properties": "^7.0.0",
-        "@babel/plugin-transform-destructuring": "^7.0.0",
-        "@babel/plugin-transform-flow-strip-types": "^7.0.0",
-        "@babel/plugin-transform-for-of": "^7.0.0",
-        "@babel/plugin-transform-function-name": "^7.0.0",
-        "@babel/plugin-transform-literals": "^7.0.0",
-        "@babel/plugin-transform-member-expression-literals": "^7.0.0",
-        "@babel/plugin-transform-modules-commonjs": "^7.0.0",
-        "@babel/plugin-transform-object-super": "^7.0.0",
-        "@babel/plugin-transform-parameters": "^7.0.0",
-        "@babel/plugin-transform-property-literals": "^7.0.0",
-        "@babel/plugin-transform-react-display-name": "^7.0.0",
-        "@babel/plugin-transform-react-jsx": "^7.0.0",
-        "@babel/plugin-transform-shorthand-properties": "^7.0.0",
-        "@babel/plugin-transform-spread": "^7.0.0",
-        "@babel/plugin-transform-template-literals": "^7.0.0",
-        "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/backo2": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
-      "dev": true
-    },
-    "node_modules/balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
-      "dev": true
-    },
-    "node_modules/base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ]
-    },
-    "node_modules/big.js": {
-      "version": "5.2.2",
-      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
-      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
-      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/body-scroll-lock": {
-      "version": "4.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz",
-      "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ=="
-    },
-    "node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dev": true,
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "dependencies": {
-        "fill-range": "^7.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/browserslist": {
-      "version": "4.19.1",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
-      "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
-      "dependencies": {
-        "caniuse-lite": "^1.0.30001286",
-        "electron-to-chromium": "^1.4.17",
-        "escalade": "^3.1.1",
-        "node-releases": "^2.0.1",
-        "picocolors": "^1.0.0"
-      },
-      "bin": {
-        "browserslist": "cli.js"
-      },
-      "engines": {
-        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/browserslist"
-      }
-    },
-    "node_modules/bser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
-      "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
-      "dev": true,
-      "dependencies": {
-        "node-int64": "^0.4.0"
-      }
-    },
-    "node_modules/buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "dependencies": {
-        "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
-      }
-    },
-    "node_modules/buffer-equal-constant-time": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
-      "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=",
-      "dev": true
-    },
-    "node_modules/buffer-from": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-      "devOptional": true
-    },
-    "node_modules/cacheable-request": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
-      "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
-      "dev": true,
-      "dependencies": {
-        "clone-response": "^1.0.2",
-        "get-stream": "^5.1.0",
-        "http-cache-semantics": "^4.0.0",
-        "keyv": "^3.0.0",
-        "lowercase-keys": "^2.0.0",
-        "normalize-url": "^4.1.0",
-        "responselike": "^1.0.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cacheable-request/node_modules/get-stream": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
-      "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
-      "dev": true,
-      "dependencies": {
-        "pump": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/cacheable-request/node_modules/lowercase-keys": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
-      "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
-      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/camel-case": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
-      "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
-      "dev": true,
-      "dependencies": {
-        "pascal-case": "^3.1.2",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/camelcase": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/camelcase-css": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
-      "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/caniuse-lite": {
-      "version": "1.0.30001299",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz",
-      "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/browserslist"
-      }
-    },
-    "node_modules/capital-case": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
-      "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
-      "dev": true,
-      "dependencies": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/chalk?sponsor=1"
-      }
-    },
-    "node_modules/change-case": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
-      "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
-      "dev": true,
-      "dependencies": {
-        "camel-case": "^4.1.2",
-        "capital-case": "^1.0.4",
-        "constant-case": "^3.0.4",
-        "dot-case": "^3.0.4",
-        "header-case": "^2.0.4",
-        "no-case": "^3.0.4",
-        "param-case": "^3.0.4",
-        "pascal-case": "^3.1.2",
-        "path-case": "^3.0.4",
-        "sentence-case": "^3.0.4",
-        "snake-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/change-case-all": {
-      "version": "1.0.14",
-      "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz",
-      "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==",
-      "dev": true,
-      "dependencies": {
-        "change-case": "^4.1.2",
-        "is-lower-case": "^2.0.2",
-        "is-upper-case": "^2.0.2",
-        "lower-case": "^2.0.2",
-        "lower-case-first": "^2.0.2",
-        "sponge-case": "^1.0.1",
-        "swap-case": "^2.0.2",
-        "title-case": "^3.0.3",
-        "upper-case": "^2.0.2",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "node_modules/chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
-      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
-      "dev": true
-    },
-    "node_modules/chokidar": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
-      "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"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/classnames": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
-      "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
-    },
-    "node_modules/clean-stack": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
-      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/cli-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
-      "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
-      "dev": true,
-      "dependencies": {
-        "restore-cursor": "^3.1.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cli-truncate": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
-      "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
-      "dev": true,
-      "dependencies": {
-        "slice-ansi": "^5.0.0",
-        "string-width": "^5.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/cli-truncate/node_modules/ansi-regex": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
-      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
-      }
-    },
-    "node_modules/cli-truncate/node_modules/string-width": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
-      "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
-      "dev": true,
-      "dependencies": {
-        "eastasianwidth": "^0.2.0",
-        "emoji-regex": "^9.2.2",
-        "strip-ansi": "^7.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/cli-truncate/node_modules/strip-ansi": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
-      "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
-      "dev": true,
-      "dependencies": {
-        "ansi-regex": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
-      }
-    },
-    "node_modules/cli-width": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
-      "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
-      "dev": true,
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/cliui": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
-      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
-      "dev": true,
-      "dependencies": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^7.0.0"
-      }
-    },
-    "node_modules/clone-response": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
-      "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
-      "dev": true,
-      "dependencies": {
-        "mimic-response": "^1.0.0"
-      }
-    },
-    "node_modules/code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "node_modules/colorette": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
-      "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
-    },
-    "node_modules/combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
-      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-      "dependencies": {
-        "delayed-stream": "~1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/commander": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
-      "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
-      "dev": true,
-      "engines": {
-        "node": ">= 12"
-      }
-    },
-    "node_modules/common-tags": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
-      "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-      "dev": true
-    },
-    "node_modules/constant-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
-      "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
-      "dev": true,
-      "dependencies": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case": "^2.0.2"
-      }
-    },
-    "node_modules/convert-source-map": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
-      "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
-      "dependencies": {
-        "safe-buffer": "~5.1.1"
-      }
-    },
-    "node_modules/convert-source-map/node_modules/safe-buffer": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
-    },
-    "node_modules/cookie": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
-      "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/core-js-pure": {
-      "version": "3.20.2",
-      "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz",
-      "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==",
-      "dev": true,
-      "hasInstallScript": true,
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/core-js"
-      }
-    },
-    "node_modules/cosmiconfig": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
-      "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
-      "dependencies": {
-        "@types/parse-json": "^4.0.0",
-        "import-fresh": "^3.2.1",
-        "parse-json": "^5.0.0",
-        "path-type": "^4.0.0",
-        "yaml": "^1.10.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/cosmiconfig-toml-loader": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz",
-      "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==",
-      "dev": true,
-      "dependencies": {
-        "@iarna/toml": "^2.2.5"
-      }
-    },
-    "node_modules/create-require": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
-      "devOptional": true
-    },
-    "node_modules/cross-fetch": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz",
-      "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==",
-      "dev": true,
-      "dependencies": {
-        "node-fetch": "2.6.1"
-      }
-    },
-    "node_modules/cross-fetch/node_modules/node-fetch": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
-      "dev": true,
-      "engines": {
-        "node": "4.x || >=6.0.0"
-      }
-    },
-    "node_modules/cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-      "dev": true,
-      "dependencies": {
-        "path-key": "^3.1.0",
-        "shebang-command": "^2.0.0",
-        "which": "^2.0.1"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/css-blank-pseudo": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz",
-      "integrity": "sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "bin": {
-        "css-blank-pseudo": "dist/cli.cjs"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/css-has-pseudo": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz",
-      "integrity": "sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "bin": {
-        "css-has-pseudo": "dist/cli.cjs"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/css-prefers-color-scheme": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz",
-      "integrity": "sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==",
-      "dev": true,
-      "bin": {
-        "css-prefers-color-scheme": "dist/cli.cjs"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/cssdb": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz",
-      "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==",
-      "dev": true
-    },
-    "node_modules/cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
-      "bin": {
-        "cssesc": "bin/cssesc"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/csstype": {
-      "version": "3.0.8",
-      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
-      "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==",
-      "dev": true
-    },
-    "node_modules/damerau-levenshtein": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
-      "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
-      "dev": true
-    },
-    "node_modules/dataloader": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz",
-      "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==",
-      "dev": true
-    },
-    "node_modules/date-fns": {
-      "version": "1.30.1",
-      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
-      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
-      "dev": true
-    },
-    "node_modules/debounce": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
-      "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
-    },
-    "node_modules/debug": {
-      "version": "4.3.3",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
-      "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/decamelize": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/decompress-response": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
-      "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
-      "dev": true,
-      "dependencies": {
-        "mimic-response": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/deep-extend": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/deep-is": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
-      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-      "dev": true
-    },
-    "node_modules/deepmerge": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
-      "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/defer-to-connect": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
-      "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
-      "dev": true
-    },
-    "node_modules/define-properties": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
-      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
-      "dev": true,
-      "dependencies": {
-        "object-keys": "^1.0.12"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/defined": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
-      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
-    },
-    "node_modules/delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/dependency-graph": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
-      "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6.0"
-      }
-    },
-    "node_modules/detect-indent": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
-      "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/detective": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
-      "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
-      "dependencies": {
-        "acorn-node": "^1.6.1",
-        "defined": "^1.0.0",
-        "minimist": "^1.1.1"
-      },
-      "bin": {
-        "detective": "bin/detective.js"
-      },
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/didyoumean": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
-      "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
-    },
-    "node_modules/diff": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
-      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
-      "devOptional": true,
-      "engines": {
-        "node": ">=0.3.1"
-      }
-    },
-    "node_modules/dir-glob": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
-      "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
-      "dev": true,
-      "dependencies": {
-        "path-type": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/dlv": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
-      "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
-    },
-    "node_modules/doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "dev": true,
-      "dependencies": {
-        "esutils": "^2.0.2"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/dot-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
-      "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
-      "dev": true,
-      "dependencies": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/dotenv": {
-      "version": "8.6.0",
-      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
-      "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/duplexer": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
-      "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
-      "dev": true
-    },
-    "node_modules/duplexer3": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
-      "dev": true
-    },
-    "node_modules/eastasianwidth": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
-      "dev": true
-    },
-    "node_modules/ecdsa-sig-formatter": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
-      "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
-      "dev": true,
-      "dependencies": {
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "node_modules/electron-to-chromium": {
-      "version": "1.4.44",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz",
-      "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw=="
-    },
-    "node_modules/elegant-spinner": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
-      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/email-validator": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz",
-      "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==",
-      "engines": {
-        "node": ">4.0"
-      }
-    },
-    "node_modules/emoji-regex": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
-      "dev": true
-    },
-    "node_modules/emojis-list": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
-      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
-      "engines": {
-        "node": ">= 0.10"
-      }
-    },
-    "node_modules/end-of-stream": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
-      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-      "dev": true,
-      "dependencies": {
-        "once": "^1.4.0"
-      }
-    },
-    "node_modules/enquirer": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
-      "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
-      "dev": true,
-      "dependencies": {
-        "ansi-colors": "^4.1.1"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/error-ex": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
-      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
-      "dependencies": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "node_modules/es-abstract": {
-      "version": "1.19.1",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
-      "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "es-to-primitive": "^1.2.1",
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.1.1",
-        "get-symbol-description": "^1.0.0",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.2",
-        "internal-slot": "^1.0.3",
-        "is-callable": "^1.2.4",
-        "is-negative-zero": "^2.0.1",
-        "is-regex": "^1.1.4",
-        "is-shared-array-buffer": "^1.0.1",
-        "is-string": "^1.0.7",
-        "is-weakref": "^1.0.1",
-        "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.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-      "dev": true,
-      "dependencies": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/escalade": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
-      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/escape-string-regexp": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/eslint": {
-      "version": "8.6.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
-      "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
-      "dev": true,
-      "dependencies": {
-        "@eslint/eslintrc": "^1.0.5",
-        "@humanwhocodes/config-array": "^0.9.2",
-        "ajv": "^6.10.0",
-        "chalk": "^4.0.0",
-        "cross-spawn": "^7.0.2",
-        "debug": "^4.3.2",
-        "doctrine": "^3.0.0",
-        "enquirer": "^2.3.5",
-        "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^7.1.0",
-        "eslint-utils": "^3.0.0",
-        "eslint-visitor-keys": "^3.1.0",
-        "espree": "^9.3.0",
-        "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": "^6.0.1",
-        "globals": "^13.6.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.0.0",
-        "imurmurhash": "^0.1.4",
-        "is-glob": "^4.0.0",
-        "js-yaml": "^4.1.0",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.4.1",
-        "lodash.merge": "^4.6.2",
-        "minimatch": "^3.0.4",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.9.1",
-        "progress": "^2.0.0",
-        "regexpp": "^3.2.0",
-        "semver": "^7.2.1",
-        "strip-ansi": "^6.0.1",
-        "strip-json-comments": "^3.1.0",
-        "text-table": "^0.2.0",
-        "v8-compile-cache": "^2.0.3"
-      },
-      "bin": {
-        "eslint": "bin/eslint.js"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/eslint-config-next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.8.tgz",
-      "integrity": "sha512-H40jvqy/yeku3r9D556ALLaM3ZmS55hj9/MTK59fWbzsqTaYlybSkUmIBG0ZFEnBazr0NnBGwrYA5cnsFYR7RQ==",
-      "dev": true,
-      "dependencies": {
-        "@next/eslint-plugin-next": "12.0.8",
-        "@rushstack/eslint-patch": "^1.0.8",
-        "@typescript-eslint/parser": "^5.0.0",
-        "eslint-import-resolver-node": "^0.3.4",
-        "eslint-import-resolver-typescript": "^2.4.0",
-        "eslint-plugin-import": "^2.25.2",
-        "eslint-plugin-jsx-a11y": "^6.5.1",
-        "eslint-plugin-react": "^7.27.0",
-        "eslint-plugin-react-hooks": "^4.3.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.23.0 || ^8.0.0",
-        "next": ">=10.2.0",
-        "typescript": ">=3.3.1"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/eslint-config-prettier": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
-      "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
-      "dev": true,
-      "bin": {
-        "eslint-config-prettier": "bin/cli.js"
-      },
-      "peerDependencies": {
-        "eslint": ">=7.0.0"
-      }
-    },
-    "node_modules/eslint-import-resolver-node": {
-      "version": "0.3.6",
-      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
-      "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^3.2.7",
-        "resolve": "^1.20.0"
-      }
-    },
-    "node_modules/eslint-import-resolver-node/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dev": true,
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/eslint-import-resolver-typescript": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz",
-      "integrity": "sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^4.1.1",
-        "glob": "^7.1.6",
-        "is-glob": "^4.0.1",
-        "resolve": "^1.17.0",
-        "tsconfig-paths": "^3.9.0"
-      },
-      "engines": {
-        "node": ">=4"
-      },
-      "peerDependencies": {
-        "eslint": "*",
-        "eslint-plugin-import": "*"
-      }
-    },
-    "node_modules/eslint-module-utils": {
-      "version": "2.7.2",
-      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
-      "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^3.2.7",
-        "find-up": "^2.1.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/eslint-module-utils/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dev": true,
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/eslint-plugin-import": {
-      "version": "2.25.4",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
-      "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
-      "dev": true,
-      "dependencies": {
-        "array-includes": "^3.1.4",
-        "array.prototype.flat": "^1.2.5",
-        "debug": "^2.6.9",
-        "doctrine": "^2.1.0",
-        "eslint-import-resolver-node": "^0.3.6",
-        "eslint-module-utils": "^2.7.2",
-        "has": "^1.0.3",
-        "is-core-module": "^2.8.0",
-        "is-glob": "^4.0.3",
-        "minimatch": "^3.0.4",
-        "object.values": "^1.1.5",
-        "resolve": "^1.20.0",
-        "tsconfig-paths": "^3.12.0"
-      },
-      "engines": {
-        "node": ">=4"
-      },
-      "peerDependencies": {
-        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/debug": {
-      "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-      "dev": true,
-      "dependencies": {
-        "ms": "2.0.0"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/doctrine": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-      "dev": true,
-      "dependencies": {
-        "esutils": "^2.0.2"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-      "dev": true
-    },
-    "node_modules/eslint-plugin-jsx-a11y": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz",
-      "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==",
-      "dev": true,
-      "dependencies": {
-        "@babel/runtime": "^7.16.3",
-        "aria-query": "^4.2.2",
-        "array-includes": "^3.1.4",
-        "ast-types-flow": "^0.0.7",
-        "axe-core": "^4.3.5",
-        "axobject-query": "^2.2.0",
-        "damerau-levenshtein": "^1.0.7",
-        "emoji-regex": "^9.2.2",
-        "has": "^1.0.3",
-        "jsx-ast-utils": "^3.2.1",
-        "language-tags": "^1.0.5",
-        "minimatch": "^3.0.4"
-      },
-      "engines": {
-        "node": ">=4.0"
-      },
-      "peerDependencies": {
-        "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
-      }
-    },
-    "node_modules/eslint-plugin-react": {
-      "version": "7.28.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
-      "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
-      "dev": true,
-      "dependencies": {
-        "array-includes": "^3.1.4",
-        "array.prototype.flatmap": "^1.2.5",
-        "doctrine": "^2.1.0",
-        "estraverse": "^5.3.0",
-        "jsx-ast-utils": "^2.4.1 || ^3.0.0",
-        "minimatch": "^3.0.4",
-        "object.entries": "^1.1.5",
-        "object.fromentries": "^2.0.5",
-        "object.hasown": "^1.1.0",
-        "object.values": "^1.1.5",
-        "prop-types": "^15.7.2",
-        "resolve": "^2.0.0-next.3",
-        "semver": "^6.3.0",
-        "string.prototype.matchall": "^4.0.6"
-      },
-      "engines": {
-        "node": ">=4"
-      },
-      "peerDependencies": {
-        "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
-      }
-    },
-    "node_modules/eslint-plugin-react-hooks": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
-      "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "peerDependencies": {
-        "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
-      }
-    },
-    "node_modules/eslint-plugin-react/node_modules/doctrine": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-      "dev": true,
-      "dependencies": {
-        "esutils": "^2.0.2"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/eslint-plugin-react/node_modules/resolve": {
-      "version": "2.0.0-next.3",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
-      "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
-      "dev": true,
-      "dependencies": {
-        "is-core-module": "^2.2.0",
-        "path-parse": "^1.0.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/eslint-plugin-react/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-      "dev": true,
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
-    "node_modules/eslint-scope": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
-      "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
-      "dev": true,
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dev": true,
-      "dependencies": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "engines": {
-        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=5"
-      }
-    },
-    "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
-      "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint-visitor-keys": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
-      "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
-      "dev": true,
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/eslint/node_modules/glob-parent": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-      "dev": true,
-      "dependencies": {
-        "is-glob": "^4.0.3"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/eslint/node_modules/globals": {
-      "version": "13.10.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
-      "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
-      "dev": true,
-      "dependencies": {
-        "type-fest": "^0.20.2"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/eslint/node_modules/type-fest": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/espree": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
-      "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
-      "dev": true,
-      "dependencies": {
-        "acorn": "^8.7.0",
-        "acorn-jsx": "^5.3.1",
-        "eslint-visitor-keys": "^3.1.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/espree/node_modules/acorn": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
-      "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
-      "dev": true,
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/esquery": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
-      "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
-      "dev": true,
-      "dependencies": {
-        "estraverse": "^5.1.0"
-      },
-      "engines": {
-        "node": ">=0.10"
-      }
-    },
-    "node_modules/esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dev": true,
-      "dependencies": {
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/event-target-shim": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
-      "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/eventemitter3": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
-      "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
-      "dev": true
-    },
-    "node_modules/execa": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
-      "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
-      "dev": true,
-      "dependencies": {
-        "cross-spawn": "^7.0.3",
-        "get-stream": "^6.0.0",
-        "human-signals": "^2.1.0",
-        "is-stream": "^2.0.0",
-        "merge-stream": "^2.0.0",
-        "npm-run-path": "^4.0.1",
-        "onetime": "^5.1.2",
-        "signal-exit": "^3.0.3",
-        "strip-final-newline": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sindresorhus/execa?sponsor=1"
-      }
-    },
-    "node_modules/external-editor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
-      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
-      "dev": true,
-      "dependencies": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/extract-files": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
-      "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==",
-      "dev": true,
-      "engines": {
-        "node": "^10.17.0 || ^12.0.0 || >= 13.7.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jaydenseric"
-      }
-    },
-    "node_modules/fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
-      "dev": true
-    },
-    "node_modules/fast-glob": {
-      "version": "3.2.10",
-      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz",
-      "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==",
-      "dependencies": {
-        "@nodelib/fs.stat": "^2.0.2",
-        "@nodelib/fs.walk": "^1.2.3",
-        "glob-parent": "^5.1.2",
-        "merge2": "^1.3.0",
-        "micromatch": "^4.0.4"
-      },
-      "engines": {
-        "node": ">=8.6.0"
-      }
-    },
-    "node_modules/fast-json-stable-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-      "dev": true
-    },
-    "node_modules/fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-      "dev": true
-    },
-    "node_modules/fastq": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
-      "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
-      "dependencies": {
-        "reusify": "^1.0.4"
-      }
-    },
-    "node_modules/fb-watchman": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
-      "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
-      "dev": true,
-      "dependencies": {
-        "bser": "2.1.1"
-      }
-    },
-    "node_modules/fbjs": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz",
-      "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==",
-      "dev": true,
-      "dependencies": {
-        "cross-fetch": "^3.0.4",
-        "fbjs-css-vars": "^1.0.0",
-        "loose-envify": "^1.0.0",
-        "object-assign": "^4.1.0",
-        "promise": "^7.1.1",
-        "setimmediate": "^1.0.5",
-        "ua-parser-js": "^0.7.30"
-      }
-    },
-    "node_modules/fbjs-css-vars": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
-      "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==",
-      "dev": true
-    },
-    "node_modules/figures": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
-      "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
-      "dev": true,
-      "dependencies": {
-        "escape-string-regexp": "^1.0.5"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/figures/node_modules/escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/file-entry-cache": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-      "dev": true,
-      "dependencies": {
-        "flat-cache": "^3.0.4"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      }
-    },
-    "node_modules/fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "dependencies": {
-        "to-regex-range": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/find-up": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
-      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-      "dev": true,
-      "dependencies": {
-        "locate-path": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/flat-cache": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-      "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
-      "dev": true,
-      "dependencies": {
-        "flatted": "^3.1.0",
-        "rimraf": "^3.0.2"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      }
-    },
-    "node_modules/flatted": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
-      "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==",
-      "dev": true
-    },
-    "node_modules/follow-redirects": {
-      "version": "1.14.7",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
-      "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
-      "funding": [
-        {
-          "type": "individual",
-          "url": "https://github.com/sponsors/RubenVerborgh"
-        }
-      ],
-      "engines": {
-        "node": ">=4.0"
-      },
-      "peerDependenciesMeta": {
-        "debug": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/form-data": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
-      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
-      "dev": true,
-      "dependencies": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/fraction.js": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz",
-      "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==",
-      "engines": {
-        "node": "*"
-      },
-      "funding": {
-        "type": "patreon",
-        "url": "https://www.patreon.com/infusion"
-      }
-    },
-    "node_modules/fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "node_modules/fsevents": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-      "hasInstallScript": true,
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
-      }
-    },
-    "node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-    },
-    "node_modules/functional-red-black-tree": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
-      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
-      "dev": true
-    },
-    "node_modules/gensync": {
-      "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
-      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-      "dev": true,
-      "engines": {
-        "node": "6.* || 8.* || >= 10.*"
-      }
-    },
-    "node_modules/get-intrinsic": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
-      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.1"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/get-stream": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
-      "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/get-symbol-description": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
-      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "get-intrinsic": "^1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/glob": {
-      "version": "7.1.7",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
-      "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
-      "dev": true,
-      "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"
-      },
-      "engines": {
-        "node": "*"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/globals": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
-      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/globby": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-      "dev": true,
-      "dependencies": {
-        "array-union": "^2.1.0",
-        "dir-glob": "^3.0.1",
-        "fast-glob": "^3.2.9",
-        "ignore": "^5.2.0",
-        "merge2": "^1.4.1",
-        "slash": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/globby/node_modules/ignore": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
-      "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 4"
-      }
-    },
-    "node_modules/got": {
-      "version": "9.6.0",
-      "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
-      "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
-      "dev": true,
-      "dependencies": {
-        "@sindresorhus/is": "^0.14.0",
-        "@szmarczak/http-timer": "^1.1.2",
-        "cacheable-request": "^6.0.0",
-        "decompress-response": "^3.3.0",
-        "duplexer3": "^0.1.4",
-        "get-stream": "^4.1.0",
-        "lowercase-keys": "^1.0.1",
-        "mimic-response": "^1.0.1",
-        "p-cancelable": "^1.0.0",
-        "to-readable-stream": "^1.0.0",
-        "url-parse-lax": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/got/node_modules/get-stream": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-      "dev": true,
-      "dependencies": {
-        "pump": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/graphql": {
-      "version": "15.8.0",
-      "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
-      "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
-      "dev": true,
-      "engines": {
-        "node": ">= 10.x"
-      }
-    },
-    "node_modules/graphql-config": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.4.1.tgz",
-      "integrity": "sha512-g9WyK4JZl1Ko++FSyE5Ir2g66njfxGzrDDhBOwnkoWf/t3TnnZG6BBkWP+pkqVJ5pqMJGPKHNrbew8jRxStjhw==",
-      "dev": true,
-      "dependencies": {
-        "@endemolshinegroup/cosmiconfig-typescript-loader": "3.0.2",
-        "@graphql-tools/graphql-file-loader": "^6.0.0",
-        "@graphql-tools/json-file-loader": "^6.0.0",
-        "@graphql-tools/load": "^6.0.0",
-        "@graphql-tools/merge": "6.0.0 - 6.2.14",
-        "@graphql-tools/url-loader": "^6.0.0",
-        "@graphql-tools/utils": "^7.0.0",
-        "cosmiconfig": "7.0.0",
-        "cosmiconfig-toml-loader": "1.0.0",
-        "minimatch": "3.0.4",
-        "string-env-interpolation": "1.0.1"
-      },
-      "engines": {
-        "node": ">= 10.0.0"
-      },
-      "peerDependencies": {
-        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/graphql-config/node_modules/@graphql-tools/merge": {
-      "version": "6.2.14",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz",
-      "integrity": "sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/schema": "^7.0.0",
-        "@graphql-tools/utils": "^7.7.0",
-        "tslib": "~2.2.0"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/graphql-config/node_modules/@graphql-tools/schema": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-      "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-      "dev": true,
-      "dependencies": {
-        "@graphql-tools/utils": "^7.1.2",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "peerDependencies": {
-        "graphql": "^14.0.0 || ^15.0.0"
-      }
-    },
-    "node_modules/graphql-config/node_modules/cosmiconfig": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
-      "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
-      "dev": true,
-      "dependencies": {
-        "@types/parse-json": "^4.0.0",
-        "import-fresh": "^3.2.1",
-        "parse-json": "^5.0.0",
-        "path-type": "^4.0.0",
-        "yaml": "^1.10.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/graphql-config/node_modules/tslib": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-      "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-      "dev": true
-    },
-    "node_modules/graphql-config/node_modules/value-or-promise": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-      "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/graphql-request": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz",
-      "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==",
-      "dev": true,
-      "dependencies": {
-        "cross-fetch": "^3.0.6",
-        "extract-files": "^9.0.0",
-        "form-data": "^3.0.0"
-      },
-      "peerDependencies": {
-        "graphql": "14 - 16"
-      }
-    },
-    "node_modules/graphql-request/node_modules/form-data": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-      "dev": true,
-      "dependencies": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/graphql-tag": {
-      "version": "2.12.6",
-      "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
-      "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "peerDependencies": {
-        "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
-      }
-    },
-    "node_modules/graphql-ws": {
-      "version": "4.9.0",
-      "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz",
-      "integrity": "sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "peerDependencies": {
-        "graphql": ">=0.11 <=15"
-      }
-    },
-    "node_modules/gzip-size": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
-      "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
-      "dev": true,
-      "dependencies": {
-        "duplexer": "^0.1.2"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-      "dependencies": {
-        "function-bind": "^1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.4.0"
-      }
-    },
-    "node_modules/has-ansi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
-      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-      "dev": true,
-      "dependencies": {
-        "ansi-regex": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/has-ansi/node_modules/ansi-regex": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/has-bigints": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
-      "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
-      "dev": true,
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/has-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
-      "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/has-tostringtag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
-      "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
-      "dev": true,
-      "dependencies": {
-        "has-symbols": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/header-case": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
-      "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
-      "dev": true,
-      "dependencies": {
-        "capital-case": "^1.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/http-cache-semantics": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
-      "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
-      "dev": true
-    },
-    "node_modules/http-proxy-agent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
-      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
-      "dev": true,
-      "dependencies": {
-        "@tootallnate/once": "1",
-        "agent-base": "6",
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/https-proxy-agent": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
-      "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
-      "dev": true,
-      "dependencies": {
-        "agent-base": "6",
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/human-signals": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
-      "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
-      "dev": true,
-      "engines": {
-        "node": ">=10.17.0"
-      }
-    },
-    "node_modules/humanize-ms": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
-      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
-      "dependencies": {
-        "ms": "^2.0.0"
-      }
-    },
-    "node_modules/husky": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz",
-      "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==",
-      "dev": true,
-      "bin": {
-        "husky": "lib/bin.js"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/typicode"
-      }
-    },
-    "node_modules/iconv-lite": {
-      "version": "0.4.24",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-      "dev": true,
-      "dependencies": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ]
-    },
-    "node_modules/ignore": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
-      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 4"
-      }
-    },
-    "node_modules/immutability-helper": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz",
-      "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ=="
-    },
-    "node_modules/immutable": {
-      "version": "3.7.6",
-      "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz",
-      "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/import-cwd": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
-      "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
-      "dependencies": {
-        "import-from": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/import-fresh": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-      "dependencies": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/import-fresh/node_modules/resolve-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/import-from": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
-      "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
-      "dependencies": {
-        "resolve-from": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.19"
-      }
-    },
-    "node_modules/indent-string": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
-      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "dev": true,
-      "dependencies": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "node_modules/inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-    },
-    "node_modules/ini": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
-      "dev": true
-    },
-    "node_modules/inquirer": {
-      "version": "7.3.3",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
-      "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
-      "dev": true,
-      "dependencies": {
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.1.0",
-        "cli-cursor": "^3.1.0",
-        "cli-width": "^3.0.0",
-        "external-editor": "^3.0.3",
-        "figures": "^3.0.0",
-        "lodash": "^4.17.19",
-        "mute-stream": "0.0.8",
-        "run-async": "^2.4.0",
-        "rxjs": "^6.6.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0",
-        "through": "^2.3.6"
-      },
-      "engines": {
-        "node": ">=8.0.0"
-      }
-    },
-    "node_modules/internal-slot": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
-      "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
-      "dev": true,
-      "dependencies": {
-        "get-intrinsic": "^1.1.0",
-        "has": "^1.0.3",
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/invariant": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
-      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
-      "dev": true,
-      "dependencies": {
-        "loose-envify": "^1.0.0"
-      }
-    },
-    "node_modules/is-absolute": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
-      "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
-      "dev": true,
-      "dependencies": {
-        "is-relative": "^1.0.0",
-        "is-windows": "^1.0.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
-    },
-    "node_modules/is-bigint": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
-      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
-      "dev": true,
-      "dependencies": {
-        "has-bigints": "^1.0.1"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dependencies": {
-        "binary-extensions": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-boolean-object": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
-      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-callable": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
-      "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-core-module": {
-      "version": "2.8.1",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
-      "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
-      "dependencies": {
-        "has": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-date-object": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
-      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-fullwidth-code-point": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-glob": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
-      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "dependencies": {
-        "is-extglob": "^2.1.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-lower-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz",
-      "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/is-negative-zero": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
-    "node_modules/is-number-object": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
-      "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-observable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
-      "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
-      "dev": true,
-      "dependencies": {
-        "symbol-observable": "^1.1.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/is-promise": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
-      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
-      "dev": true
-    },
-    "node_modules/is-regex": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
-      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-relative": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
-      "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
-      "dev": true,
-      "dependencies": {
-        "is-unc-path": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-shared-array-buffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
-      "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
-      "dev": true,
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
-      "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-string": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
-      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-symbol": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
-      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
-      "dev": true,
-      "dependencies": {
-        "has-symbols": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-unc-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
-      "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
-      "dev": true,
-      "dependencies": {
-        "unc-path-regex": "^0.1.2"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-unicode-supported": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
-      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/is-upper-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz",
-      "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/is-weakref": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
-      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/is-windows": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
-      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "node_modules/isomorphic-fetch": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz",
-      "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==",
-      "dependencies": {
-        "node-fetch": "^2.6.1",
-        "whatwg-fetch": "^3.4.1"
-      }
-    },
-    "node_modules/isomorphic-ws": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
-      "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
-      "dev": true,
-      "peerDependencies": {
-        "ws": "*"
-      }
-    },
-    "node_modules/iterall": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
-      "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
-      "dev": true
-    },
-    "node_modules/jest-worker": {
-      "version": "27.0.0-next.5",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz",
-      "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==",
-      "dependencies": {
-        "@types/node": "*",
-        "merge-stream": "^2.0.0",
-        "supports-color": "^8.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-worker/node_modules/supports-color": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/supports-color?sponsor=1"
-      }
-    },
-    "node_modules/js-cookie": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
-      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-    },
-    "node_modules/js-yaml": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dev": true,
-      "dependencies": {
-        "argparse": "^2.0.1"
-      },
-      "bin": {
-        "js-yaml": "bin/js-yaml.js"
-      }
-    },
-    "node_modules/jsesc": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-      "bin": {
-        "jsesc": "bin/jsesc"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/json-buffer": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
-      "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
-      "dev": true
-    },
-    "node_modules/json-parse-even-better-errors": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
-      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
-    },
-    "node_modules/json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true
-    },
-    "node_modules/json-stable-stringify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
-      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-      "dev": true,
-      "dependencies": {
-        "jsonify": "~0.0.0"
-      }
-    },
-    "node_modules/json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
-      "dev": true
-    },
-    "node_modules/json-to-pretty-yaml": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz",
-      "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=",
-      "dev": true,
-      "dependencies": {
-        "remedial": "^1.0.7",
-        "remove-trailing-spaces": "^1.0.6"
-      },
-      "engines": {
-        "node": ">= 0.2.0"
-      }
-    },
-    "node_modules/json5": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
-      "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
-      "dependencies": {
-        "minimist": "^1.2.5"
-      },
-      "bin": {
-        "json5": "lib/cli.js"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/jsonify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-      "dev": true,
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/jsonwebtoken": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
-      "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
-      "dev": true,
-      "dependencies": {
-        "jws": "^3.2.2",
-        "lodash.includes": "^4.3.0",
-        "lodash.isboolean": "^3.0.3",
-        "lodash.isinteger": "^4.0.4",
-        "lodash.isnumber": "^3.0.3",
-        "lodash.isplainobject": "^4.0.6",
-        "lodash.isstring": "^4.0.1",
-        "lodash.once": "^4.0.0",
-        "ms": "^2.1.1",
-        "semver": "^5.6.0"
-      },
-      "engines": {
-        "node": ">=4",
-        "npm": ">=1.4.28"
-      }
-    },
-    "node_modules/jsonwebtoken/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "dev": true,
-      "bin": {
-        "semver": "bin/semver"
-      }
-    },
-    "node_modules/jsx-ast-utils": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
-      "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
-      "dev": true,
-      "dependencies": {
-        "array-includes": "^3.1.3",
-        "object.assign": "^4.1.2"
-      },
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/jwa": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
-      "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
-      "dev": true,
-      "dependencies": {
-        "buffer-equal-constant-time": "1.0.1",
-        "ecdsa-sig-formatter": "1.0.11",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "node_modules/jws": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
-      "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
-      "dev": true,
-      "dependencies": {
-        "jwa": "^1.4.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "node_modules/keen-slider": {
-      "version": "6.6.3",
-      "resolved": "https://registry.npmjs.org/keen-slider/-/keen-slider-6.6.3.tgz",
-      "integrity": "sha512-IDJh3CNeiCY/0N/ht+4/TUUD0plS064ijO8AcQ2sJXS07PhJOnv7kNUVsQdNh+t8Vmmy3sJ+sHNubSGdrEcMlQ=="
-    },
-    "node_modules/keyv": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
-      "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
-      "dev": true,
-      "dependencies": {
-        "json-buffer": "3.0.0"
-      }
-    },
-    "node_modules/language-subtag-registry": {
-      "version": "0.3.21",
-      "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
-      "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
-      "dev": true
-    },
-    "node_modules/language-tags": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
-      "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
-      "dev": true,
-      "dependencies": {
-        "language-subtag-registry": "~0.3.2"
-      }
-    },
-    "node_modules/latest-version": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
-      "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
-      "dev": true,
-      "dependencies": {
-        "package-json": "^6.3.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "dev": true,
-      "dependencies": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/lilconfig": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz",
-      "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/lines-and-columns": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
-      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
-    },
-    "node_modules/lint-staged": {
-      "version": "12.1.7",
-      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.7.tgz",
-      "integrity": "sha512-bltv/ejiLWtowExpjU+s5z8j1Byjg9AlmaAjMmqNbIicY69u6sYIwXGg0dCn0TlkrrY2CphtHIXAkbZ+1VoWQQ==",
-      "dev": true,
-      "dependencies": {
-        "cli-truncate": "^3.1.0",
-        "colorette": "^2.0.16",
-        "commander": "^8.3.0",
-        "debug": "^4.3.3",
-        "execa": "^5.1.1",
-        "lilconfig": "2.0.4",
-        "listr2": "^3.13.5",
-        "micromatch": "^4.0.4",
-        "normalize-path": "^3.0.0",
-        "object-inspect": "^1.11.1",
-        "string-argv": "^0.3.1",
-        "supports-color": "^9.2.1",
-        "yaml": "^1.10.2"
-      },
-      "bin": {
-        "lint-staged": "bin/lint-staged.js"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/lint-staged"
-      }
-    },
-    "node_modules/lint-staged/node_modules/colorette": {
-      "version": "2.0.16",
-      "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
-      "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
-      "dev": true
-    },
-    "node_modules/lint-staged/node_modules/supports-color": {
-      "version": "9.2.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
-      "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/supports-color?sponsor=1"
-      }
-    },
-    "node_modules/listr": {
-      "version": "0.14.3",
-      "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
-      "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
-      "dev": true,
-      "dependencies": {
-        "@samverschueren/stream-to-observable": "^0.3.0",
-        "is-observable": "^1.1.0",
-        "is-promise": "^2.1.0",
-        "is-stream": "^1.1.0",
-        "listr-silent-renderer": "^1.1.1",
-        "listr-update-renderer": "^0.5.0",
-        "listr-verbose-renderer": "^0.5.0",
-        "p-map": "^2.0.0",
-        "rxjs": "^6.3.3"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/listr-silent-renderer": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
-      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-update-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
-      "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
-      "dev": true,
-      "dependencies": {
-        "chalk": "^1.1.3",
-        "cli-truncate": "^0.2.1",
-        "elegant-spinner": "^1.0.1",
-        "figures": "^1.7.0",
-        "indent-string": "^3.0.0",
-        "log-symbols": "^1.0.2",
-        "log-update": "^2.3.0",
-        "strip-ansi": "^3.0.1"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "peerDependencies": {
-        "listr": "^0.14.2"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/ansi-regex": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/ansi-styles": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/chalk": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-      "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^2.2.1",
-        "escape-string-regexp": "^1.0.2",
-        "has-ansi": "^2.0.0",
-        "strip-ansi": "^3.0.0",
-        "supports-color": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/cli-truncate": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
-      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
-      "dev": true,
-      "dependencies": {
-        "slice-ansi": "0.0.4",
-        "string-width": "^1.0.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/figures": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-      "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-      "dev": true,
-      "dependencies": {
-        "escape-string-regexp": "^1.0.5",
-        "object-assign": "^4.1.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/indent-string": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
-      "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/is-fullwidth-code-point": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-      "dev": true,
-      "dependencies": {
-        "number-is-nan": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/log-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
-      "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-      "dev": true,
-      "dependencies": {
-        "chalk": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/slice-ansi": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
-      "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/string-width": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-      "dev": true,
-      "dependencies": {
-        "code-point-at": "^1.0.0",
-        "is-fullwidth-code-point": "^1.0.0",
-        "strip-ansi": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/strip-ansi": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-      "dev": true,
-      "dependencies": {
-        "ansi-regex": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr-update-renderer/node_modules/supports-color": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-      "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/listr-verbose-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
-      "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
-      "dev": true,
-      "dependencies": {
-        "chalk": "^2.4.1",
-        "cli-cursor": "^2.1.0",
-        "date-fns": "^1.27.2",
-        "figures": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dev": true,
-      "dependencies": {
-        "color-convert": "^1.9.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/cli-cursor": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-      "dev": true,
-      "dependencies": {
-        "restore-cursor": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dev": true,
-      "dependencies": {
-        "color-name": "1.1.3"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
-    },
-    "node_modules/listr-verbose-renderer/node_modules/escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/figures": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
-      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-      "dev": true,
-      "dependencies": {
-        "escape-string-regexp": "^1.0.5"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/mimic-fn": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/onetime": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-      "dev": true,
-      "dependencies": {
-        "mimic-fn": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/restore-cursor": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-      "dev": true,
-      "dependencies": {
-        "onetime": "^2.0.0",
-        "signal-exit": "^3.0.2"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr-verbose-renderer/node_modules/supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dev": true,
-      "dependencies": {
-        "has-flag": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/listr/node_modules/is-promise": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
-      "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
-      "dev": true
-    },
-    "node_modules/listr/node_modules/is-stream": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/listr2": {
-      "version": "3.14.0",
-      "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
-      "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
-      "dev": true,
-      "dependencies": {
-        "cli-truncate": "^2.1.0",
-        "colorette": "^2.0.16",
-        "log-update": "^4.0.0",
-        "p-map": "^4.0.0",
-        "rfdc": "^1.3.0",
-        "rxjs": "^7.5.1",
-        "through": "^2.3.8",
-        "wrap-ansi": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "enquirer": ">= 2.3.0 < 3"
-      },
-      "peerDependenciesMeta": {
-        "enquirer": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/listr2/node_modules/cli-truncate": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
-      "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
-      "dev": true,
-      "dependencies": {
-        "slice-ansi": "^3.0.0",
-        "string-width": "^4.2.0"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/listr2/node_modules/colorette": {
-      "version": "2.0.16",
-      "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
-      "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
-      "dev": true
-    },
-    "node_modules/listr2/node_modules/log-update": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
-      "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
-      "dev": true,
-      "dependencies": {
-        "ansi-escapes": "^4.3.0",
-        "cli-cursor": "^3.1.0",
-        "slice-ansi": "^4.0.0",
-        "wrap-ansi": "^6.2.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/listr2/node_modules/log-update/node_modules/slice-ansi": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
-      "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "astral-regex": "^2.0.0",
-        "is-fullwidth-code-point": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
-      }
-    },
-    "node_modules/listr2/node_modules/log-update/node_modules/wrap-ansi": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/listr2/node_modules/p-map": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
-      "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
-      "dev": true,
-      "dependencies": {
-        "aggregate-error": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/listr2/node_modules/rxjs": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz",
-      "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.1.0"
-      }
-    },
-    "node_modules/listr2/node_modules/slice-ansi": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
-      "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "astral-regex": "^2.0.0",
-        "is-fullwidth-code-point": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/loader-utils": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
-      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
-      "dependencies": {
-        "big.js": "^5.2.2",
-        "emojis-list": "^2.0.0",
-        "json5": "^1.0.1"
-      },
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/loader-utils/node_modules/json5": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-      "dependencies": {
-        "minimist": "^1.2.0"
-      },
-      "bin": {
-        "json5": "lib/cli.js"
-      }
-    },
-    "node_modules/locate-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
-      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-      "dev": true,
-      "dependencies": {
-        "p-locate": "^2.0.0",
-        "path-exists": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
-    },
-    "node_modules/lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
-    },
-    "node_modules/lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
-    },
-    "node_modules/lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
-    },
-    "node_modules/lodash.get": {
-      "version": "4.4.2",
-      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
-      "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
-      "dev": true
-    },
-    "node_modules/lodash.includes": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
-      "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
-    },
-    "node_modules/lodash.isboolean": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
-      "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=",
-      "dev": true
-    },
-    "node_modules/lodash.isdate": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-4.0.1.tgz",
-      "integrity": "sha1-NaVDZzuddhEN5BFLMsxXcEin82Y="
-    },
-    "node_modules/lodash.isinteger": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
-      "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=",
-      "dev": true
-    },
-    "node_modules/lodash.isnumber": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
-      "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=",
-      "dev": true
-    },
-    "node_modules/lodash.isplainobject": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
-      "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
-    },
-    "node_modules/lodash.isstring": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
-      "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
-      "dev": true
-    },
-    "node_modules/lodash.merge": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
-      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
-      "dev": true
-    },
-    "node_modules/lodash.once": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
-      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
-      "dev": true
-    },
-    "node_modules/lodash.random": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.random/-/lodash.random-3.2.0.tgz",
-      "integrity": "sha1-luJOdjMzGZEw0sni/Vf5FwPMJi0="
-    },
-    "node_modules/lodash.snakecase": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
-      "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
-    },
-    "node_modules/lodash.throttle": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
-      "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
-    },
-    "node_modules/lodash.uniq": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
-      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
-    },
-    "node_modules/log-symbols": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
-      "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
-      "dev": true,
-      "dependencies": {
-        "chalk": "^4.1.0",
-        "is-unicode-supported": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/log-update": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
-      "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
-      "dev": true,
-      "dependencies": {
-        "ansi-escapes": "^3.0.0",
-        "cli-cursor": "^2.0.0",
-        "wrap-ansi": "^3.0.1"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/ansi-escapes": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
-      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/ansi-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/cli-cursor": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-      "dev": true,
-      "dependencies": {
-        "restore-cursor": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/is-fullwidth-code-point": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/mimic-fn": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/onetime": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-      "dev": true,
-      "dependencies": {
-        "mimic-fn": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/restore-cursor": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-      "dev": true,
-      "dependencies": {
-        "onetime": "^2.0.0",
-        "signal-exit": "^3.0.2"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/string-width": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-      "dev": true,
-      "dependencies": {
-        "is-fullwidth-code-point": "^2.0.0",
-        "strip-ansi": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/strip-ansi": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-      "dev": true,
-      "dependencies": {
-        "ansi-regex": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/log-update/node_modules/wrap-ansi": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
-      "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
-      "dev": true,
-      "dependencies": {
-        "string-width": "^2.1.1",
-        "strip-ansi": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/loose-envify": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
-      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-      "dependencies": {
-        "js-tokens": "^3.0.0 || ^4.0.0"
-      },
-      "bin": {
-        "loose-envify": "cli.js"
-      }
-    },
-    "node_modules/lower-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
-      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/lower-case-first": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz",
-      "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-      "dependencies": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "node_modules/make-error": {
-      "version": "1.3.6",
-      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
-      "devOptional": true
-    },
-    "node_modules/map-cache": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
-      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/matcher": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz",
-      "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==",
-      "dependencies": {
-        "escape-string-regexp": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/merge-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
-      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
-    },
-    "node_modules/merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/meros": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz",
-      "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "peerDependencies": {
-        "@types/node": ">=12"
-      },
-      "peerDependenciesMeta": {
-        "@types/node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/micromatch": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
-      "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
-      "dependencies": {
-        "braces": "^3.0.1",
-        "picomatch": "^2.2.3"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/mime": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
-      "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
-      "dev": true,
-      "bin": {
-        "mime": "cli.js"
-      },
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/mime-db": {
-      "version": "1.48.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
-      "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/mime-types": {
-      "version": "2.1.31",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
-      "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
-      "dependencies": {
-        "mime-db": "1.48.0"
-      },
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/mimic-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/mimic-response": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
-      "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-      "dev": true,
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/minimist": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
-    },
-    "node_modules/mkdirp": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
-      "dev": true,
-      "bin": {
-        "mkdirp": "bin/cmd.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
-    "node_modules/mute-stream": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
-      "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
-      "dev": true
-    },
-    "node_modules/nanoid": {
-      "version": "3.1.32",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.32.tgz",
-      "integrity": "sha512-F8mf7R3iT9bvThBoW4tGXhXFHCctyCiUUPrWF8WaTqa3h96d9QybkSeba43XVOOE3oiLfkVDe4bT8MeGmkrTxw==",
-      "bin": {
-        "nanoid": "bin/nanoid.cjs"
-      },
-      "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-      }
-    },
-    "node_modules/natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
-      "dev": true
-    },
-    "node_modules/next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/next/-/next-12.0.8.tgz",
-      "integrity": "sha512-g5c1Kuh1F8tSXJn2rVvzYBzqe9EXaR6+rY3/KrQ7y0D9FueRLfHI35wM0DRadDcPSc3+vncspfhYH3jnYE/KjA==",
-      "dependencies": {
-        "@next/env": "12.0.8",
-        "@next/react-refresh-utils": "12.0.8",
-        "caniuse-lite": "^1.0.30001283",
-        "jest-worker": "27.0.0-next.5",
-        "node-fetch": "2.6.1",
-        "postcss": "8.2.15",
-        "react-is": "17.0.2",
-        "react-refresh": "0.8.3",
-        "stream-browserify": "3.0.0",
-        "styled-jsx": "5.0.0-beta.6",
-        "use-subscription": "1.5.1"
-      },
-      "bin": {
-        "next": "dist/bin/next"
-      },
-      "engines": {
-        "node": ">=12.22.0"
-      },
-      "optionalDependencies": {
-        "@next/swc-android-arm64": "12.0.8",
-        "@next/swc-darwin-arm64": "12.0.8",
-        "@next/swc-darwin-x64": "12.0.8",
-        "@next/swc-linux-arm-gnueabihf": "12.0.8",
-        "@next/swc-linux-arm64-gnu": "12.0.8",
-        "@next/swc-linux-arm64-musl": "12.0.8",
-        "@next/swc-linux-x64-gnu": "12.0.8",
-        "@next/swc-linux-x64-musl": "12.0.8",
-        "@next/swc-win32-arm64-msvc": "12.0.8",
-        "@next/swc-win32-ia32-msvc": "12.0.8",
-        "@next/swc-win32-x64-msvc": "12.0.8"
-      },
-      "peerDependencies": {
-        "fibers": ">= 3.1.0",
-        "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0",
-        "react": "^17.0.2 || ^18.0.0-0",
-        "react-dom": "^17.0.2 || ^18.0.0-0",
-        "sass": "^1.3.0"
-      },
-      "peerDependenciesMeta": {
-        "fibers": {
-          "optional": true
-        },
-        "node-sass": {
-          "optional": true
-        },
-        "sass": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/next-seo": {
-      "version": "4.28.1",
-      "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.28.1.tgz",
-      "integrity": "sha512-WZgwdM+UhpNF3A37zFllzmPhnOVJ9vYeYlc0n3Z/kYfz/QQgy8NEdncNNggS9dU4JD8xriaCcyknhy5OsrFsJw==",
-      "peerDependencies": {
-        "next": "^8.1.1-canary.54 || >=9.0.0",
-        "react": ">=16.0.0",
-        "react-dom": ">=16.0.0"
-      }
-    },
-    "node_modules/next-themes": {
-      "version": "0.0.15",
-      "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.0.15.tgz",
-      "integrity": "sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==",
-      "peerDependencies": {
-        "next": "*",
-        "react": "*",
-        "react-dom": "*"
-      }
-    },
-    "node_modules/next/node_modules/node-fetch": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
-      "engines": {
-        "node": "4.x || >=6.0.0"
-      }
-    },
-    "node_modules/next/node_modules/postcss": {
-      "version": "8.2.15",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
-      "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
-      "dependencies": {
-        "colorette": "^1.2.2",
-        "nanoid": "^3.1.23",
-        "source-map": "^0.6.1"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      }
-    },
-    "node_modules/next/node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/no-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
-      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
-      "dev": true,
-      "dependencies": {
-        "lower-case": "^2.0.2",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/node-fetch": {
-      "version": "2.6.6",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
-      "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
-      "dependencies": {
-        "whatwg-url": "^5.0.0"
-      },
-      "engines": {
-        "node": "4.x || >=6.0.0"
-      }
-    },
-    "node_modules/node-int64": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
-      "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
-      "dev": true
-    },
-    "node_modules/node-releases": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
-      "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA=="
-    },
-    "node_modules/normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/normalize-url": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
-      "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/npm-run-path": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
-      "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
-      "dev": true,
-      "dependencies": {
-        "path-key": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/nullthrows": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
-      "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
-      "dev": true
-    },
-    "node_modules/number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/object-hash": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
-      "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/object-inspect": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
-      "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/object-keys-normalizer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/object-keys-normalizer/-/object-keys-normalizer-1.0.1.tgz",
-      "integrity": "sha1-2xeNu6Xkx7GLQIN8jvgzZe6TSOc=",
-      "dependencies": {
-        "lodash.camelcase": "^4.3.0",
-        "lodash.snakecase": "^4.1.1"
-      }
-    },
-    "node_modules/object-merge-advanced": {
-      "version": "12.0.3",
-      "resolved": "https://registry.npmjs.org/object-merge-advanced/-/object-merge-advanced-12.0.3.tgz",
-      "integrity": "sha512-xQIf2Vup1rpKiHr2tQca5jyNYgT4O0kNxOfAp3ZNonm2hS+5yaJgI0Czdk/QMy52bcRwQKX3uc3H8XtAiiYfVA==",
-      "dependencies": {
-        "@babel/runtime": "^7.12.13",
-        "array-includes-with-glob": "^3.0.6",
-        "lodash.clonedeep": "^4.5.0",
-        "lodash.includes": "^4.3.0",
-        "lodash.isdate": "^4.0.1",
-        "lodash.isplainobject": "^4.0.6",
-        "lodash.uniq": "^4.5.0",
-        "util-nonempty": "^3.0.6"
-      }
-    },
-    "node_modules/object.assign": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
-      "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "has-symbols": "^1.0.1",
-        "object-keys": "^1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/object.entries": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
-      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/object.fromentries": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
-      "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/object.hasown": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
-      "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
-      "dev": true,
-      "dependencies": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/object.values": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
-      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "dev": true,
-      "dependencies": {
-        "wrappy": "1"
-      }
-    },
-    "node_modules/onetime": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
-      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-      "dev": true,
-      "dependencies": {
-        "mimic-fn": "^2.1.0"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/opener": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
-      "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
-      "dev": true,
-      "bin": {
-        "opener": "bin/opener-bin.js"
-      }
-    },
-    "node_modules/optionator": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
-      "dev": true,
-      "dependencies": {
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0",
-        "word-wrap": "^1.2.3"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/p-cancelable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
-      "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/p-limit": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
-      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-      "dev": true,
-      "dependencies": {
-        "yocto-queue": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/p-locate": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
-      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-      "dev": true,
-      "dependencies": {
-        "p-limit": "^1.1.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/p-locate/node_modules/p-limit": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
-      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
-      "dev": true,
-      "dependencies": {
-        "p-try": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/p-locate/node_modules/p-try": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
-      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/p-map": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
-      "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/package-json": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
-      "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
-      "dev": true,
-      "dependencies": {
-        "got": "^9.6.0",
-        "registry-auth-token": "^4.0.0",
-        "registry-url": "^5.0.0",
-        "semver": "^6.2.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/package-json/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-      "dev": true,
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
-    "node_modules/param-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
-      "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
-      "dev": true,
-      "dependencies": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "dependencies": {
-        "callsites": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/parse-filepath": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
-      "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
-      "dev": true,
-      "dependencies": {
-        "is-absolute": "^1.0.0",
-        "map-cache": "^0.2.0",
-        "path-root": "^0.1.1"
-      },
-      "engines": {
-        "node": ">=0.8"
-      }
-    },
-    "node_modules/parse-json": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
-      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
-      "dependencies": {
-        "@babel/code-frame": "^7.0.0",
-        "error-ex": "^1.3.1",
-        "json-parse-even-better-errors": "^2.3.0",
-        "lines-and-columns": "^1.1.6"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/pascal-case": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
-      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
-      "dev": true,
-      "dependencies": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/path-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
-      "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
-      "dev": true,
-      "dependencies": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/path-exists": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/path-key": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
-      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-    },
-    "node_modules/path-root": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
-      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
-      "dev": true,
-      "dependencies": {
-        "path-root-regex": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/path-root-regex": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
-      "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/path-type": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
-      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/picocolors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-    },
-    "node_modules/picomatch": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
-      "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/postcss": {
-      "version": "8.4.5",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
-      "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
-      "dependencies": {
-        "nanoid": "^3.1.30",
-        "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.1"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      }
-    },
-    "node_modules/postcss-attribute-case-insensitive": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz",
-      "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.2"
-      },
-      "peerDependencies": {
-        "postcss": "^8.0.2"
-      }
-    },
-    "node_modules/postcss-color-functional-notation": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz",
-      "integrity": "sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-color-hex-alpha": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz",
-      "integrity": "sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-color-rebeccapurple": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz",
-      "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-custom-media": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz",
-      "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==",
-      "dev": true,
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-custom-properties": {
-      "version": "12.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.2.tgz",
-      "integrity": "sha512-Zvd+k66PHBYYPiXtdjNVx2l54Y9kQC7K1eUHzBND97RW/ayNxfaPOW+9NL3r0nsVbX1asPLdkDj585Wg0NBJCA==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-custom-selectors": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz",
-      "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.4"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.2"
-      }
-    },
-    "node_modules/postcss-dir-pseudo-class": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz",
-      "integrity": "sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-double-position-gradients": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz",
-      "integrity": "sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-env-function": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.4.tgz",
-      "integrity": "sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-flexbugs-fixes": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
-      "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8.1.4"
-      }
-    },
-    "node_modules/postcss-focus-visible": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz",
-      "integrity": "sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-focus-within": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz",
-      "integrity": "sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-font-variant": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
-      "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-gap-properties": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz",
-      "integrity": "sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==",
-      "dev": true,
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-image-set-function": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz",
-      "integrity": "sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-initial": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
-      "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8.0.0"
-      }
-    },
-    "node_modules/postcss-js": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
-      "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
-      "dependencies": {
-        "camelcase-css": "^2.0.1"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >= 16"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3.3"
-      }
-    },
-    "node_modules/postcss-lab-function": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz",
-      "integrity": "sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-load-config": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz",
-      "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==",
-      "dependencies": {
-        "import-cwd": "^3.0.0",
-        "lilconfig": "^2.0.3",
-        "yaml": "^1.10.2"
-      },
-      "engines": {
-        "node": ">= 10"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      },
-      "peerDependencies": {
-        "ts-node": ">=9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "ts-node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/postcss-logical": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.3.tgz",
-      "integrity": "sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==",
-      "dev": true,
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-media-minmax": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
-      "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-nested": {
-      "version": "5.0.6",
-      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
-      "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.6"
-      },
-      "engines": {
-        "node": ">=12.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      },
-      "peerDependencies": {
-        "postcss": "^8.2.14"
-      }
-    },
-    "node_modules/postcss-nesting": {
-      "version": "10.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz",
-      "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-overflow-shorthand": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz",
-      "integrity": "sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==",
-      "dev": true,
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-page-break": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
-      "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8"
-      }
-    },
-    "node_modules/postcss-place": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.3.tgz",
-      "integrity": "sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ==",
-      "dev": true,
-      "dependencies": {
-        "postcss-value-parser": "^4.2.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-preset-env": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz",
-      "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==",
-      "dev": true,
-      "dependencies": {
-        "autoprefixer": "^10.4.2",
-        "browserslist": "^4.19.1",
-        "caniuse-lite": "^1.0.30001299",
-        "css-blank-pseudo": "^3.0.2",
-        "css-has-pseudo": "^3.0.3",
-        "css-prefers-color-scheme": "^6.0.2",
-        "cssdb": "^5.0.0",
-        "postcss-attribute-case-insensitive": "^5.0.0",
-        "postcss-color-functional-notation": "^4.2.1",
-        "postcss-color-hex-alpha": "^8.0.2",
-        "postcss-color-rebeccapurple": "^7.0.2",
-        "postcss-custom-media": "^8.0.0",
-        "postcss-custom-properties": "^12.1.2",
-        "postcss-custom-selectors": "^6.0.0",
-        "postcss-dir-pseudo-class": "^6.0.3",
-        "postcss-double-position-gradients": "^3.0.4",
-        "postcss-env-function": "^4.0.4",
-        "postcss-focus-visible": "^6.0.3",
-        "postcss-focus-within": "^5.0.3",
-        "postcss-font-variant": "^5.0.0",
-        "postcss-gap-properties": "^3.0.2",
-        "postcss-image-set-function": "^4.0.4",
-        "postcss-initial": "^4.0.1",
-        "postcss-lab-function": "^4.0.3",
-        "postcss-logical": "^5.0.3",
-        "postcss-media-minmax": "^5.0.0",
-        "postcss-nesting": "^10.1.2",
-        "postcss-overflow-shorthand": "^3.0.2",
-        "postcss-page-break": "^3.0.4",
-        "postcss-place": "^7.0.3",
-        "postcss-pseudo-class-any-link": "^7.0.2",
-        "postcss-replace-overflow-wrap": "^4.0.0",
-        "postcss-selector-not": "^5.0.0"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.4"
-      }
-    },
-    "node_modules/postcss-pseudo-class-any-link": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz",
-      "integrity": "sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA==",
-      "dev": true,
-      "dependencies": {
-        "postcss-selector-parser": "^6.0.8"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >=16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.3"
-      }
-    },
-    "node_modules/postcss-replace-overflow-wrap": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
-      "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8.0.3"
-      }
-    },
-    "node_modules/postcss-selector-not": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz",
-      "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==",
-      "dev": true,
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-selector-parser": {
-      "version": "6.0.8",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz",
-      "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==",
-      "dependencies": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
-    },
-    "node_modules/prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/prepend-http": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
-      "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/prettier": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
-      "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
-      "dev": true,
-      "bin": {
-        "prettier": "bin-prettier.js"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/progress": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
-      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
-      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
-      "dev": true,
-      "dependencies": {
-        "asap": "~2.0.3"
-      }
-    },
-    "node_modules/prop-types": {
-      "version": "15.8.1",
-      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
-      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
-      "dev": true,
-      "dependencies": {
-        "loose-envify": "^1.4.0",
-        "object-assign": "^4.1.1",
-        "react-is": "^16.13.1"
-      }
-    },
-    "node_modules/prop-types/node_modules/react-is": {
-      "version": "16.13.1",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
-      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
-      "dev": true
-    },
-    "node_modules/pump": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-      "dev": true,
-      "dependencies": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "node_modules/punycode": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/qs": {
-      "version": "6.10.1",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
-      "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
-      "dependencies": {
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">=0.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ]
-    },
-    "node_modules/quick-lru": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
-      "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/rc": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "dev": true,
-      "dependencies": {
-        "deep-extend": "^0.6.0",
-        "ini": "~1.3.0",
-        "minimist": "^1.2.0",
-        "strip-json-comments": "~2.0.1"
-      },
-      "bin": {
-        "rc": "cli.js"
-      }
-    },
-    "node_modules/rc/node_modules/strip-json-comments": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
-      "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
-      "dependencies": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-dom": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
-      "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
-      "dependencies": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1",
-        "scheduler": "^0.20.2"
-      },
-      "peerDependencies": {
-        "react": "17.0.2"
-      }
-    },
-    "node_modules/react-fast-marquee": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.3.1.tgz",
-      "integrity": "sha512-JUlQMU+IVVNKV+D4BRfRaNEaBj+VyHcI0uupBKyeFhkSY2GBkKw7oGvpNdCkPtKd8Q3H0M5eY7PyUj7AdmKCRA==",
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0",
-        "react-dom": "^16.8.0 || ^17.0.0"
-      }
-    },
-    "node_modules/react-is": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
-      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
-    },
-    "node_modules/react-merge-refs": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
-      "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==",
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/gregberge"
-      }
-    },
-    "node_modules/react-refresh": {
-      "version": "0.8.3",
-      "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
-      "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-use-measure": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
-      "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
-      "dependencies": {
-        "debounce": "^1.2.1"
-      },
-      "peerDependencies": {
-        "react": ">=16.13",
-        "react-dom": ">=16.13"
-      }
-    },
-    "node_modules/readable-stream": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-      "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-      "dependencies": {
-        "inherits": "^2.0.3",
-        "string_decoder": "^1.1.1",
-        "util-deprecate": "^1.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
-    "node_modules/regenerator-runtime": {
-      "version": "0.13.7",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
-      "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
-    },
-    "node_modules/regexp.prototype.flags": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
-      "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/regexpp": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
-      "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      }
-    },
-    "node_modules/registry-auth-token": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
-      "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
-      "dev": true,
-      "dependencies": {
-        "rc": "^1.2.8"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/registry-url": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
-      "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
-      "dev": true,
-      "dependencies": {
-        "rc": "^1.2.8"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-12.0.0.tgz",
-      "integrity": "sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/core": "^7.14.0",
-        "@babel/generator": "^7.14.0",
-        "@babel/parser": "^7.14.0",
-        "@babel/runtime": "^7.0.0",
-        "@babel/traverse": "^7.14.0",
-        "@babel/types": "^7.0.0",
-        "babel-preset-fbjs": "^3.4.0",
-        "chalk": "^4.0.0",
-        "fb-watchman": "^2.0.0",
-        "fbjs": "^3.0.0",
-        "glob": "^7.1.1",
-        "immutable": "~3.7.6",
-        "invariant": "^2.2.4",
-        "nullthrows": "^1.1.1",
-        "relay-runtime": "12.0.0",
-        "signedsource": "^1.0.0",
-        "yargs": "^15.3.1"
-      },
-      "bin": {
-        "relay-compiler": "bin/relay-compiler"
-      },
-      "peerDependencies": {
-        "graphql": "^15.0.0"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/cliui": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-      "dev": true,
-      "dependencies": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^6.2.0"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/find-up": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-      "dev": true,
-      "dependencies": {
-        "locate-path": "^5.0.0",
-        "path-exists": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/locate-path": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-      "dev": true,
-      "dependencies": {
-        "p-locate": "^4.1.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/p-limit": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-      "dev": true,
-      "dependencies": {
-        "p-try": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/p-locate": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-      "dev": true,
-      "dependencies": {
-        "p-limit": "^2.2.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/path-exists": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/wrap-ansi": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/y18n": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
-      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
-      "dev": true
-    },
-    "node_modules/relay-compiler/node_modules/yargs": {
-      "version": "15.4.1",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
-      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
-      "dev": true,
-      "dependencies": {
-        "cliui": "^6.0.0",
-        "decamelize": "^1.2.0",
-        "find-up": "^4.1.0",
-        "get-caller-file": "^2.0.1",
-        "require-directory": "^2.1.1",
-        "require-main-filename": "^2.0.0",
-        "set-blocking": "^2.0.0",
-        "string-width": "^4.2.0",
-        "which-module": "^2.0.0",
-        "y18n": "^4.0.0",
-        "yargs-parser": "^18.1.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/relay-compiler/node_modules/yargs-parser": {
-      "version": "18.1.3",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
-      "dev": true,
-      "dependencies": {
-        "camelcase": "^5.0.0",
-        "decamelize": "^1.2.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/relay-runtime": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz",
-      "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==",
-      "dev": true,
-      "dependencies": {
-        "@babel/runtime": "^7.0.0",
-        "fbjs": "^3.0.0",
-        "invariant": "^2.2.4"
-      }
-    },
-    "node_modules/remedial": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz",
-      "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==",
-      "dev": true,
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "node_modules/remove-trailing-spaces": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz",
-      "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==",
-      "dev": true
-    },
-    "node_modules/replaceall": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz",
-      "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8.x"
-      }
-    },
-    "node_modules/require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/require-main-filename": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
-      "dev": true
-    },
-    "node_modules/resolve": {
-      "version": "1.21.0",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
-      "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
-      "dependencies": {
-        "is-core-module": "^2.8.0",
-        "path-parse": "^1.0.7",
-        "supports-preserve-symlinks-flag": "^1.0.0"
-      },
-      "bin": {
-        "resolve": "bin/resolve"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/resolve-from": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/responselike": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
-      "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
-      "dev": true,
-      "dependencies": {
-        "lowercase-keys": "^1.0.0"
-      }
-    },
-    "node_modules/restore-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
-      "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
-      "dev": true,
-      "dependencies": {
-        "onetime": "^5.1.0",
-        "signal-exit": "^3.0.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/retry": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
-      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
-      "engines": {
-        "node": ">= 4"
-      }
-    },
-    "node_modules/reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-      "engines": {
-        "iojs": ">=1.0.0",
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/rfdc": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
-      "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
-      "dev": true
-    },
-    "node_modules/rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "dev": true,
-      "dependencies": {
-        "glob": "^7.1.3"
-      },
-      "bin": {
-        "rimraf": "bin.js"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
-      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
-    "node_modules/run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "dependencies": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
-    "node_modules/rxjs": {
-      "version": "6.6.7",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
-      "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^1.9.0"
-      },
-      "engines": {
-        "npm": ">=2.0.0"
-      }
-    },
-    "node_modules/rxjs/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-      "dev": true
-    },
-    "node_modules/safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ]
-    },
-    "node_modules/safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "node_modules/scheduler": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
-      "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
-      "dependencies": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
-      }
-    },
-    "node_modules/scuid": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz",
-      "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==",
-      "dev": true
-    },
-    "node_modules/semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/semver/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/semver/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/sentence-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
-      "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
-      "dev": true,
-      "dependencies": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "node_modules/set-blocking": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "node_modules/setimmediate": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
-    },
-    "node_modules/shebang-command": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
-      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-      "dev": true,
-      "dependencies": {
-        "shebang-regex": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/shebang-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
-      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/side-channel": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
-      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
-      "dependencies": {
-        "call-bind": "^1.0.0",
-        "get-intrinsic": "^1.0.2",
-        "object-inspect": "^1.9.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/signal-exit": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
-      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
-      "dev": true
-    },
-    "node_modules/signedsource": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz",
-      "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=",
-      "dev": true
-    },
-    "node_modules/sirv": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
-      "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==",
-      "dev": true,
-      "dependencies": {
-        "@polka/url": "^1.0.0-next.15",
-        "mime": "^2.3.1",
-        "totalist": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/slash": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
-      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/slice-ansi": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
-      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^6.0.0",
-        "is-fullwidth-code-point": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
-      }
-    },
-    "node_modules/slice-ansi/node_modules/ansi-styles": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
-      "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-      }
-    },
-    "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
-      "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/snake-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
-      "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
-      "dev": true,
-      "dependencies": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/source-map": {
-      "version": "0.5.7",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-js": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
-      "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-support": {
-      "version": "0.5.19",
-      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
-      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
-      "devOptional": true,
-      "dependencies": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.0"
-      }
-    },
-    "node_modules/source-map-support/node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "devOptional": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/sponge-case": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz",
-      "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/stream-browserify": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
-      "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
-      "dependencies": {
-        "inherits": "~2.0.4",
-        "readable-stream": "^3.5.0"
-      }
-    },
-    "node_modules/string_decoder": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-      "dependencies": {
-        "safe-buffer": "~5.2.0"
-      }
-    },
-    "node_modules/string-argv": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
-      "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.6.19"
-      }
-    },
-    "node_modules/string-env-interpolation": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz",
-      "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==",
-      "dev": true
-    },
-    "node_modules/string-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
-      "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
-    },
-    "node_modules/string-width": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
-      "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
-      "dev": true,
-      "dependencies": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/string-width/node_modules/emoji-regex": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-      "dev": true
-    },
-    "node_modules/string.prototype.matchall": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
-      "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1",
-        "get-intrinsic": "^1.1.1",
-        "has-symbols": "^1.0.2",
-        "internal-slot": "^1.0.3",
-        "regexp.prototype.flags": "^1.3.1",
-        "side-channel": "^1.0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/string.prototype.trimend": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
-      "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/string.prototype.trimstart": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
-      "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dev": true,
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/strip-final-newline": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
-      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/stripe": {
-      "version": "8.196.0",
-      "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.196.0.tgz",
-      "integrity": "sha512-y9vIgPJUdfUJACUyf+Uji57bQTFBZluVW7Ia63Jp7QNwgp/kdoNKgLX0u0njNwRBmJpKX+BxLFJBHw+VRUYrMQ==",
-      "dependencies": {
-        "@types/node": ">=8.1.0",
-        "qs": "^6.6.0"
-      },
-      "engines": {
-        "node": "^8.1 || >=10.*"
-      }
-    },
-    "node_modules/styled-jsx": {
-      "version": "5.0.0-beta.6",
-      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0-beta.6.tgz",
-      "integrity": "sha512-b1cM7Xyp2r1lsNpvoZ6wmTI8qxD0557vH2feHakNU8LMkzfJDgTQMul6O7sSYY0GxQ73pKEN69hCDp71w6Q0nA==",
-      "dependencies": {
-        "@babel/plugin-syntax-jsx": "7.14.5",
-        "@babel/types": "7.15.0",
-        "convert-source-map": "1.7.0",
-        "loader-utils": "1.2.3",
-        "source-map": "0.7.3",
-        "string-hash": "1.1.3",
-        "stylis": "3.5.4",
-        "stylis-rule-sheet": "0.0.10"
-      },
-      "engines": {
-        "node": ">= 12.0.0"
-      },
-      "peerDependencies": {
-        "react": ">= 16.8.0 || 17.x.x || 18.x.x"
-      },
-      "peerDependenciesMeta": {
-        "@babel/core": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/styled-jsx/node_modules/@babel/types": {
-      "version": "7.15.0",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
-      "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
-      "dependencies": {
-        "@babel/helper-validator-identifier": "^7.14.9",
-        "to-fast-properties": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/styled-jsx/node_modules/convert-source-map": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
-      "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
-      "dependencies": {
-        "safe-buffer": "~5.1.1"
-      }
-    },
-    "node_modules/styled-jsx/node_modules/safe-buffer": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
-    },
-    "node_modules/styled-jsx/node_modules/source-map": {
-      "version": "0.7.3",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
-      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/stylis": {
-      "version": "3.5.4",
-      "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
-      "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
-    },
-    "node_modules/stylis-rule-sheet": {
-      "version": "0.0.10",
-      "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
-      "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
-      "peerDependencies": {
-        "stylis": "^3.5.0"
-      }
-    },
-    "node_modules/subscriptions-transport-ws": {
-      "version": "0.9.19",
-      "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
-      "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
-      "dev": true,
-      "dependencies": {
-        "backo2": "^1.0.2",
-        "eventemitter3": "^3.1.0",
-        "iterall": "^1.2.1",
-        "symbol-observable": "^1.0.4",
-        "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
-      },
-      "peerDependencies": {
-        "graphql": ">=0.10.0"
-      }
-    },
-    "node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/supports-preserve-symlinks-flag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/swap-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz",
-      "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/swell-js": {
-      "version": "4.0.0-next.0",
-      "resolved": "https://registry.npmjs.org/swell-js/-/swell-js-4.0.0-next.0.tgz",
-      "integrity": "sha512-OQ1FLft3ruKpQw5P0TiCzs/X2Ma95+Qz+I2Xzs4KC6v+zVaFVUGNs80dQdtjfInisWoFC7iFZF2AITgellVGAg==",
-      "dependencies": {
-        "@babel/runtime": "7.4.5",
-        "deepmerge": "4.2.2",
-        "isomorphic-fetch": "3.0.0",
-        "lodash": "4.17.21",
-        "object-keys-normalizer": "1.0.1",
-        "object-merge-advanced": "12.0.3",
-        "qs": "6.7.0"
-      }
-    },
-    "node_modules/swell-js/node_modules/@babel/runtime": {
-      "version": "7.4.5",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
-      "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
-      "dependencies": {
-        "regenerator-runtime": "^0.13.2"
-      }
-    },
-    "node_modules/swell-js/node_modules/qs": {
-      "version": "6.7.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
-      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
-    "node_modules/swr": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/swr/-/swr-1.1.2.tgz",
-      "integrity": "sha512-UsM0eo5T+kRPyWFZtWRx2XR5qzohs/LS4lDC0GCyLpCYFmsfTk28UCVDbOE9+KtoXY4FnwHYiF+ZYEU3hnJ1lQ==",
-      "peerDependencies": {
-        "react": "^16.11.0 || ^17.0.0 || ^18.0.0"
-      }
-    },
-    "node_modules/symbol-observable": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
-      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/sync-fetch": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz",
-      "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==",
-      "dev": true,
-      "dependencies": {
-        "buffer": "^5.7.0",
-        "node-fetch": "^2.6.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/tabbable": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz",
-      "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ=="
-    },
-    "node_modules/tailwindcss": {
-      "version": "3.0.13",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.13.tgz",
-      "integrity": "sha512-raRPGFwQSGXn/3h0ttHND9jyPYfqk/ur2NXtlQuK25+ZnrCjlH1s1j4/oPswHGMoZzGNykUVycZ/LcROanUE0A==",
-      "dependencies": {
-        "arg": "^5.0.1",
-        "chalk": "^4.1.2",
-        "chokidar": "^3.5.2",
-        "color-name": "^1.1.4",
-        "cosmiconfig": "^7.0.1",
-        "detective": "^5.2.0",
-        "didyoumean": "^1.2.2",
-        "dlv": "^1.1.3",
-        "fast-glob": "^3.2.7",
-        "glob-parent": "^6.0.2",
-        "is-glob": "^4.0.3",
-        "normalize-path": "^3.0.0",
-        "object-hash": "^2.2.0",
-        "postcss-js": "^4.0.0",
-        "postcss-load-config": "^3.1.0",
-        "postcss-nested": "5.0.6",
-        "postcss-selector-parser": "^6.0.8",
-        "postcss-value-parser": "^4.2.0",
-        "quick-lru": "^5.1.1",
-        "resolve": "^1.21.0"
-      },
-      "bin": {
-        "tailwind": "lib/cli.js",
-        "tailwindcss": "lib/cli.js"
-      },
-      "engines": {
-        "node": ">=12.13.0"
-      },
-      "peerDependencies": {
-        "autoprefixer": "^10.0.2",
-        "postcss": "^8.0.9"
-      }
-    },
-    "node_modules/tailwindcss/node_modules/glob-parent": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-      "dependencies": {
-        "is-glob": "^4.0.3"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
-      "dev": true
-    },
-    "node_modules/through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-      "dev": true
-    },
-    "node_modules/title-case": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz",
-      "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/tmp": {
-      "version": "0.0.33",
-      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-      "dev": true,
-      "dependencies": {
-        "os-tmpdir": "~1.0.2"
-      },
-      "engines": {
-        "node": ">=0.6.0"
-      }
-    },
-    "node_modules/to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/to-readable-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
-      "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dependencies": {
-        "is-number": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8.0"
-      }
-    },
-    "node_modules/totalist": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
-      "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/tr46": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
-      "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
-    },
-    "node_modules/ts-log": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.4.tgz",
-      "integrity": "sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==",
-      "dev": true
-    },
-    "node_modules/ts-node": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
-      "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
-      "devOptional": true,
-      "dependencies": {
-        "arg": "^4.1.0",
-        "create-require": "^1.1.0",
-        "diff": "^4.0.1",
-        "make-error": "^1.1.1",
-        "source-map-support": "^0.5.17",
-        "yn": "3.1.1"
-      },
-      "bin": {
-        "ts-node": "dist/bin.js",
-        "ts-node-script": "dist/bin-script.js",
-        "ts-node-transpile-only": "dist/bin-transpile.js",
-        "ts-script": "dist/bin-script-deprecated.js"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "typescript": ">=2.7"
-      }
-    },
-    "node_modules/ts-node/node_modules/arg": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-      "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
-      "devOptional": true
-    },
-    "node_modules/tsconfig-paths": {
-      "version": "3.12.0",
-      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
-      "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
-      "dev": true,
-      "dependencies": {
-        "@types/json5": "^0.0.29",
-        "json5": "^1.0.1",
-        "minimist": "^1.2.0",
-        "strip-bom": "^3.0.0"
-      }
-    },
-    "node_modules/tsconfig-paths/node_modules/json5": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-      "dev": true,
-      "dependencies": {
-        "minimist": "^1.2.0"
-      },
-      "bin": {
-        "json5": "lib/cli.js"
-      }
-    },
-    "node_modules/tslib": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
-      "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
-      "dev": true
-    },
-    "node_modules/tsutils": {
-      "version": "3.21.0",
-      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^1.8.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      },
-      "peerDependencies": {
-        "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
-      }
-    },
-    "node_modules/tsutils/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-      "dev": true
-    },
-    "node_modules/type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-      "dev": true,
-      "dependencies": {
-        "prelude-ls": "^1.2.1"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/type-fest": {
-      "version": "0.21.3",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
-      "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/typescript": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
-      "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
-      "devOptional": true,
-      "bin": {
-        "tsc": "bin/tsc",
-        "tsserver": "bin/tsserver"
-      },
-      "engines": {
-        "node": ">=4.2.0"
-      }
-    },
-    "node_modules/ua-parser-js": {
-      "version": "0.7.31",
-      "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
-      "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/ua-parser-js"
-        },
-        {
-          "type": "paypal",
-          "url": "https://paypal.me/faisalman"
-        }
-      ],
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/unbox-primitive": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
-      "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has-bigints": "^1.0.1",
-        "has-symbols": "^1.0.2",
-        "which-boxed-primitive": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/unc-path-regex": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
-      "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/unixify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
-      "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
-      "dev": true,
-      "dependencies": {
-        "normalize-path": "^2.1.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/unixify/node_modules/normalize-path": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-      "dev": true,
-      "dependencies": {
-        "remove-trailing-separator": "^1.0.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/upper-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
-      "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/upper-case-first": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
-      "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
-      "dev": true,
-      "dependencies": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "node_modules/uri-js": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
-      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "dev": true,
-      "dependencies": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "node_modules/url-parse-lax": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
-      "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
-      "dev": true,
-      "dependencies": {
-        "prepend-http": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/use-subscription": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
-      "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
-      "dependencies": {
-        "object-assign": "^4.1.1"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0"
-      }
-    },
-    "node_modules/util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
-    },
-    "node_modules/util-nonempty": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/util-nonempty/-/util-nonempty-3.1.0.tgz",
-      "integrity": "sha512-OSZlWoCL74Go83Qw/aeZgSmFZnp9d06bF77b1eAOKipkPWhvxjRYB2nmKiGspoVjkJJEJimzxAgBFUQiUV/oZQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.14.0",
-        "lodash.isplainobject": "^4.0.6"
-      }
-    },
-    "node_modules/uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
-      "bin": {
-        "uuid": "dist/bin/uuid"
-      }
-    },
-    "node_modules/uuidv4": {
-      "version": "6.2.12",
-      "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.12.tgz",
-      "integrity": "sha512-UnN4ThIYWhv3ZUE8UwDnnCvh4JafCNu+sQkxmLyjCVwK3rjLfkg3DYiEv6oCMDIAIVEDP4INg4kX/C5hKaRzZA==",
-      "dependencies": {
-        "@types/uuid": "8.3.1",
-        "uuid": "8.3.2"
-      }
-    },
-    "node_modules/v8-compile-cache": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
-      "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
-      "dev": true
-    },
-    "node_modules/valid-url": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
-      "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=",
-      "dev": true
-    },
-    "node_modules/value-or-promise": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz",
-      "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/webidl-conversions": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
-      "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
-    },
-    "node_modules/webpack-bundle-analyzer": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz",
-      "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==",
-      "dev": true,
-      "dependencies": {
-        "acorn": "^8.0.4",
-        "acorn-walk": "^8.0.0",
-        "chalk": "^4.1.0",
-        "commander": "^6.2.0",
-        "gzip-size": "^6.0.0",
-        "lodash": "^4.17.20",
-        "opener": "^1.5.2",
-        "sirv": "^1.0.7",
-        "ws": "^7.3.1"
-      },
-      "bin": {
-        "webpack-bundle-analyzer": "lib/bin/analyzer.js"
-      },
-      "engines": {
-        "node": ">= 10.13.0"
-      }
-    },
-    "node_modules/webpack-bundle-analyzer/node_modules/acorn": {
-      "version": "8.4.0",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz",
-      "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==",
-      "dev": true,
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz",
-      "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/webpack-bundle-analyzer/node_modules/commander": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
-      "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/whatwg-fetch": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
-      "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
-    },
-    "node_modules/whatwg-url": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
-      "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
-      "dependencies": {
-        "tr46": "~0.0.3",
-        "webidl-conversions": "^3.0.0"
-      }
-    },
-    "node_modules/which": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
-      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-      "dev": true,
-      "dependencies": {
-        "isexe": "^2.0.0"
-      },
-      "bin": {
-        "node-which": "bin/node-which"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/which-boxed-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
-      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
-      "dev": true,
-      "dependencies": {
-        "is-bigint": "^1.0.1",
-        "is-boolean-object": "^1.1.0",
-        "is-number-object": "^1.0.4",
-        "is-string": "^1.0.5",
-        "is-symbol": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-      "dev": true
-    },
-    "node_modules/word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/wrap-ansi": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-      "dev": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-      }
-    },
-    "node_modules/wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "node_modules/ws": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
-      "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
-      "dev": true,
-      "engines": {
-        "node": ">=8.3.0"
-      },
-      "peerDependencies": {
-        "bufferutil": "^4.0.1",
-        "utf-8-validate": "^5.0.2"
-      },
-      "peerDependenciesMeta": {
-        "bufferutil": {
-          "optional": true
-        },
-        "utf-8-validate": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
-      "engines": {
-        "node": ">=0.4"
-      }
-    },
-    "node_modules/y18n": {
-      "version": "5.0.8",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
-      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-    },
-    "node_modules/yaml": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
-      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/yaml-ast-parser": {
-      "version": "0.0.43",
-      "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz",
-      "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==",
-      "dev": true
-    },
-    "node_modules/yargs": {
-      "version": "17.3.1",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz",
-      "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==",
-      "dev": true,
-      "dependencies": {
-        "cliui": "^7.0.2",
-        "escalade": "^3.1.1",
-        "get-caller-file": "^2.0.5",
-        "require-directory": "^2.1.1",
-        "string-width": "^4.2.3",
-        "y18n": "^5.0.5",
-        "yargs-parser": "^21.0.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/yargs-parser": {
-      "version": "21.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz",
-      "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/yargs/node_modules/emoji-regex": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-      "dev": true
-    },
-    "node_modules/yargs/node_modules/string-width": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-      "dev": true,
-      "dependencies": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/yn": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
-      "devOptional": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/yocto-queue": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
-      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    }
-  },
-  "dependencies": {
-    "@ardatan/aggregate-error": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz",
-      "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "~2.0.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-          "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-          "dev": true
-        }
-      }
-    },
-    "@babel/code-frame": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
-      "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
-      "requires": {
-        "@babel/highlight": "^7.16.7"
-      }
-    },
-    "@babel/compat-data": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz",
-      "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q=="
-    },
-    "@babel/core": {
-      "version": "7.14.6",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
-      "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
-      "requires": {
-        "@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/template": "^7.14.5",
-        "@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"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-        }
-      }
-    },
-    "@babel/generator": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz",
-      "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==",
-      "requires": {
-        "@babel/types": "^7.16.8",
-        "jsesc": "^2.5.1",
-        "source-map": "^0.5.0"
-      }
-    },
-    "@babel/helper-annotate-as-pure": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
-      "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-compilation-targets": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
-      "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
-      "requires": {
-        "@babel/compat-data": "^7.16.4",
-        "@babel/helper-validator-option": "^7.16.7",
-        "browserslist": "^4.17.5",
-        "semver": "^6.3.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-        }
-      }
-    },
-    "@babel/helper-create-class-features-plugin": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz",
-      "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-member-expression-to-functions": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7"
-      }
-    },
-    "@babel/helper-environment-visitor": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
-      "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-function-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
-      "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
-      "requires": {
-        "@babel/helper-get-function-arity": "^7.16.7",
-        "@babel/template": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-get-function-arity": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
-      "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-hoist-variables": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
-      "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-member-expression-to-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
-      "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-module-imports": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
-      "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-module-transforms": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
-      "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
-      "requires": {
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-module-imports": "^7.16.7",
-        "@babel/helper-simple-access": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "@babel/template": "^7.16.7",
-        "@babel/traverse": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-optimise-call-expression": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
-      "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-plugin-utils": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
-      "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA=="
-    },
-    "@babel/helper-replace-supers": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
-      "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-member-expression-to-functions": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/traverse": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-simple-access": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
-      "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-skip-transparent-expression-wrappers": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
-      "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.16.0"
-      }
-    },
-    "@babel/helper-split-export-declaration": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
-      "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
-      "requires": {
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/helper-validator-identifier": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
-      "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
-    },
-    "@babel/helper-validator-option": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
-      "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ=="
-    },
-    "@babel/helpers": {
-      "version": "7.14.6",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
-      "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
-      "requires": {
-        "@babel/template": "^7.14.5",
-        "@babel/traverse": "^7.14.5",
-        "@babel/types": "^7.14.5"
-      }
-    },
-    "@babel/highlight": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
-      "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "chalk": "^2.0.0",
-        "js-tokens": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-          "requires": {
-            "color-convert": "^1.9.0"
-          }
-        },
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "color-convert": {
-          "version": "1.9.3",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-          "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-          "requires": {
-            "color-name": "1.1.3"
-          }
-        },
-        "color-name": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-        },
-        "escape-string-regexp": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "@babel/parser": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz",
-      "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw=="
-    },
-    "@babel/plugin-proposal-class-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
-      "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz",
-      "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.16.4",
-        "@babel/helper-compilation-targets": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
-        "@babel/plugin-transform-parameters": "^7.16.7"
-      }
-    },
-    "@babel/plugin-syntax-class-properties": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
-      "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-flow": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz",
-      "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-syntax-jsx": {
-      "version": "7.14.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz",
-      "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==",
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.14.5"
-      }
-    },
-    "@babel/plugin-syntax-object-rest-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-transform-arrow-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
-      "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
-      "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-block-scoping": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
-      "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-classes": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
-      "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-optimise-call-expression": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "globals": "^11.1.0"
-      }
-    },
-    "@babel/plugin-transform-computed-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
-      "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-destructuring": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz",
-      "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-flow-strip-types": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz",
-      "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-flow": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-for-of": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
-      "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-function-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
-      "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-compilation-targets": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
-      "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-member-expression-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
-      "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
-      "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-simple-access": "^7.16.7",
-        "babel-plugin-dynamic-import-node": "^2.3.3"
-      }
-    },
-    "@babel/plugin-transform-object-super": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
-      "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-replace-supers": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-parameters": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
-      "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-property-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
-      "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-react-display-name": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz",
-      "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-react-jsx": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
-      "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.16.7",
-        "@babel/helper-module-imports": "^7.16.7",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/plugin-syntax-jsx": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      },
-      "dependencies": {
-        "@babel/plugin-syntax-jsx": {
-          "version": "7.16.7",
-          "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
-          "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-plugin-utils": "^7.16.7"
-          }
-        }
-      }
-    },
-    "@babel/plugin-transform-shorthand-properties": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
-      "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/plugin-transform-spread": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
-      "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
-      }
-    },
-    "@babel/plugin-transform-template-literals": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
-      "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.16.7"
-      }
-    },
-    "@babel/runtime": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
-      "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==",
-      "requires": {
-        "regenerator-runtime": "^0.13.4"
-      }
-    },
-    "@babel/runtime-corejs3": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz",
-      "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==",
-      "dev": true,
-      "requires": {
-        "core-js-pure": "^3.20.2",
-        "regenerator-runtime": "^0.13.4"
-      }
-    },
-    "@babel/template": {
-      "version": "7.16.7",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
-      "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
-      "requires": {
-        "@babel/code-frame": "^7.16.7",
-        "@babel/parser": "^7.16.7",
-        "@babel/types": "^7.16.7"
-      }
-    },
-    "@babel/traverse": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz",
-      "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==",
-      "requires": {
-        "@babel/code-frame": "^7.16.7",
-        "@babel/generator": "^7.16.8",
-        "@babel/helper-environment-visitor": "^7.16.7",
-        "@babel/helper-function-name": "^7.16.7",
-        "@babel/helper-hoist-variables": "^7.16.7",
-        "@babel/helper-split-export-declaration": "^7.16.7",
-        "@babel/parser": "^7.16.8",
-        "@babel/types": "^7.16.8",
-        "debug": "^4.1.0",
-        "globals": "^11.1.0"
-      }
-    },
-    "@babel/types": {
-      "version": "7.16.8",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz",
-      "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==",
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.16.7",
-        "to-fast-properties": "^2.0.0"
-      }
-    },
-    "@chec/commerce.js": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/@chec/commerce.js/-/commerce.js-2.8.0.tgz",
-      "integrity": "sha512-OPBphT/hU33iDp52zzYOqz/oSXLhEuhGVUg2UNvYtmBW4eCNmtsM0dqW0+wu+6K0d6fZojurCBdVQMKb2R7l3g==",
-      "requires": {
-        "@babel/runtime": "^7.7.4",
-        "axios": "^0.21.1"
-      },
-      "dependencies": {
-        "axios": {
-          "version": "0.21.4",
-          "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
-          "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-          "requires": {
-            "follow-redirects": "^1.14.0"
-          }
-        }
-      }
-    },
-    "@endemolshinegroup/cosmiconfig-typescript-loader": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz",
-      "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==",
-      "dev": true,
-      "requires": {
-        "lodash.get": "^4",
-        "make-error": "^1",
-        "ts-node": "^9",
-        "tslib": "^2"
-      }
-    },
-    "@eslint/eslintrc": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
-      "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.12.4",
-        "debug": "^4.3.2",
-        "espree": "^9.2.0",
-        "globals": "^13.9.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.2.1",
-        "js-yaml": "^4.1.0",
-        "minimatch": "^3.0.4",
-        "strip-json-comments": "^3.1.1"
-      },
-      "dependencies": {
-        "globals": {
-          "version": "13.12.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
-          "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
-          "dev": true,
-          "requires": {
-            "type-fest": "^0.20.2"
-          }
-        },
-        "type-fest": {
-          "version": "0.20.2",
-          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-          "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-codegen/cli": {
-      "version": "1.21.8",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-1.21.8.tgz",
-      "integrity": "sha512-sxKUIvT2dGerFyvs6SsQpkHDyOnk+MRwqsnmsF22eAWHUbNLd429PKC71E26egXzT2BhHabUIfMV7xk9mkgWNg==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/core": "1.17.10",
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-tools/apollo-engine-loader": "^6.2.5",
-        "@graphql-tools/code-file-loader": "^6.3.1",
-        "@graphql-tools/git-loader": "^6.2.6",
-        "@graphql-tools/github-loader": "^6.2.5",
-        "@graphql-tools/graphql-file-loader": "^6.2.7",
-        "@graphql-tools/json-file-loader": "^6.2.6",
-        "@graphql-tools/load": "^6.2.8",
-        "@graphql-tools/prisma-loader": "6.3.0",
-        "@graphql-tools/url-loader": "^6.10.1",
-        "@graphql-tools/utils": "^7.9.1",
-        "ansi-escapes": "^4.3.1",
-        "chalk": "^4.1.0",
-        "change-case-all": "1.0.14",
-        "chokidar": "^3.5.2",
-        "common-tags": "^1.8.0",
-        "cosmiconfig": "^7.0.0",
-        "debounce": "^1.2.0",
-        "dependency-graph": "^0.11.0",
-        "detect-indent": "^6.0.0",
-        "glob": "^7.1.6",
-        "graphql-config": "^3.3.0",
-        "inquirer": "^7.3.3",
-        "is-glob": "^4.0.1",
-        "json-to-pretty-yaml": "^1.2.2",
-        "latest-version": "5.1.0",
-        "listr": "^0.14.3",
-        "listr-update-renderer": "^0.5.0",
-        "log-symbols": "^4.0.0",
-        "minimatch": "^3.0.4",
-        "mkdirp": "^1.0.4",
-        "string-env-interpolation": "^1.0.1",
-        "ts-log": "^2.2.3",
-        "tslib": "~2.3.0",
-        "valid-url": "^1.0.9",
-        "wrap-ansi": "^7.0.0",
-        "yaml": "^1.10.0",
-        "yargs": "^17.0.0"
-      }
-    },
-    "@graphql-codegen/core": {
-      "version": "1.17.10",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-1.17.10.tgz",
-      "integrity": "sha512-RA3umgVDs/RI/+ztHh+H4GfJxrJUfWJQqoAkMfX4qPTVO5qsy3R4vPudE0oP8w+kFbL8dFsRfAAPUZxI4jV/hQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/plugin-helpers": "^1.18.7",
-        "@graphql-tools/merge": "^6.2.14",
-        "@graphql-tools/utils": "^7.9.1",
-        "tslib": "~2.2.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-codegen/plugin-helpers": {
-      "version": "1.18.8",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz",
-      "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "^7.9.1",
-        "common-tags": "1.8.0",
-        "import-from": "4.0.0",
-        "lodash": "~4.17.0",
-        "tslib": "~2.3.0"
-      },
-      "dependencies": {
-        "import-from": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz",
-          "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-codegen/schema-ast": {
-      "version": "1.18.3",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-1.18.3.tgz",
-      "integrity": "sha512-D0uheH039ztSG3mboW5enmyaFwTcevLSR8yNrdN+NEKoQJJoDWsb9P/G6NTdFu5Bb03IvNhIFTpG1ttWtRP/aQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/plugin-helpers": "^1.18.7",
-        "@graphql-tools/utils": "^7.9.1",
-        "tslib": "~2.2.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-codegen/typescript": {
-      "version": "1.23.0",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-1.23.0.tgz",
-      "integrity": "sha512-ZfFgk5mGfuOy4kEpy+dcuvJMphigMfJ4AkiP1qWmWFufDW3Sg2yayTSNmzeFdcXMrWGgfNW2dKtuuTmbmQhS5g==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-codegen/visitor-plugin-common": "1.22.0",
-        "auto-bind": "~4.0.0",
-        "tslib": "~2.3.0"
-      }
-    },
-    "@graphql-codegen/typescript-operations": {
-      "version": "1.18.4",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-1.18.4.tgz",
-      "integrity": "sha512-bxeRaCCwu2rUXkRj6WwMVazlMignemeUJfDjrK7d4z9o9tyjlrGWnbsjeZI7M17GNCARU9Vkr6XH94wEyooSsA==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-codegen/typescript": "^1.23.0",
-        "@graphql-codegen/visitor-plugin-common": "1.22.0",
-        "auto-bind": "~4.0.0",
-        "tslib": "~2.3.0"
-      }
-    },
-    "@graphql-codegen/visitor-plugin-common": {
-      "version": "1.22.0",
-      "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.22.0.tgz",
-      "integrity": "sha512-2afJGb6d8iuZl9KizYsexPwraEKO1lAvt5eVHNM5Xew4vwz/AUHeqDR2uOeQgVV+27EzjjzSDd47IEdH0dLC2w==",
-      "dev": true,
-      "requires": {
-        "@graphql-codegen/plugin-helpers": "^1.18.8",
-        "@graphql-tools/optimize": "^1.0.1",
-        "@graphql-tools/relay-operation-optimizer": "^6.3.0",
-        "array.prototype.flatmap": "^1.2.4",
-        "auto-bind": "~4.0.0",
-        "change-case-all": "1.0.14",
-        "dependency-graph": "^0.11.0",
-        "graphql-tag": "^2.11.0",
-        "parse-filepath": "^1.0.2",
-        "tslib": "~2.3.0"
-      }
-    },
-    "@graphql-tools/apollo-engine-loader": {
-      "version": "6.2.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-6.2.5.tgz",
-      "integrity": "sha512-CE4uef6PyxtSG+7OnLklIr2BZZDgjO89ZXK47EKdY7jQy/BQD/9o+8SxPsgiBc+2NsDJH2I6P/nqoaJMOEat6g==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "^7.0.0",
-        "cross-fetch": "3.0.6",
-        "tslib": "~2.0.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-          "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/batch-execute": {
-      "version": "7.1.2",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz",
-      "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "^7.7.0",
-        "dataloader": "2.0.0",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        },
-        "value-or-promise": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-          "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/code-file-loader": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz",
-      "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/graphql-tag-pluck": "^6.5.1",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/delegate": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz",
-      "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==",
-      "dev": true,
-      "requires": {
-        "@ardatan/aggregate-error": "0.0.6",
-        "@graphql-tools/batch-execute": "^7.1.2",
-        "@graphql-tools/schema": "^7.1.5",
-        "@graphql-tools/utils": "^7.7.1",
-        "dataloader": "2.0.0",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "dependencies": {
-        "@graphql-tools/schema": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-          "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-          "dev": true,
-          "requires": {
-            "@graphql-tools/utils": "^7.1.2",
-            "tslib": "~2.2.0",
-            "value-or-promise": "1.0.6"
-          }
-        },
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        },
-        "value-or-promise": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-          "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/git-loader": {
-      "version": "6.2.6",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz",
-      "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/graphql-tag-pluck": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/github-loader": {
-      "version": "6.2.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz",
-      "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/graphql-tag-pluck": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "cross-fetch": "3.0.6",
-        "tslib": "~2.0.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-          "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/graphql-file-loader": {
-      "version": "6.2.7",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz",
-      "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/import": "^6.2.6",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/graphql-tag-pluck": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz",
-      "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==",
-      "dev": true,
-      "requires": {
-        "@babel/parser": "7.12.16",
-        "@babel/traverse": "7.12.13",
-        "@babel/types": "7.12.13",
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.1.0"
-      },
-      "dependencies": {
-        "@babel/parser": {
-          "version": "7.12.16",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz",
-          "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==",
-          "dev": true
-        },
-        "@babel/traverse": {
-          "version": "7.12.13",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz",
-          "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.12.13",
-            "@babel/generator": "^7.12.13",
-            "@babel/helper-function-name": "^7.12.13",
-            "@babel/helper-split-export-declaration": "^7.12.13",
-            "@babel/parser": "^7.12.13",
-            "@babel/types": "^7.12.13",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.19"
-          }
-        },
-        "@babel/types": {
-          "version": "7.12.13",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz",
-          "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.12.11",
-            "lodash": "^4.17.19",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "tslib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/import": {
-      "version": "6.6.5",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.5.tgz",
-      "integrity": "sha512-w0/cYuhrr2apn+iGoTToCqt65x2NN2iHQyqRNk/Zw1NJ+e8/C3eKVw0jmW4pYQvSocuPxL4UCSI56SdKO7m3+Q==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "8.6.1",
-        "resolve-from": "5.0.0",
-        "tslib": "~2.3.0"
-      },
-      "dependencies": {
-        "@graphql-tools/utils": {
-          "version": "8.6.1",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-          "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-          "dev": true,
-          "requires": {
-            "tslib": "~2.3.0"
-          }
-        }
-      }
-    },
-    "@graphql-tools/json-file-loader": {
-      "version": "6.2.6",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
-      "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "^7.0.0",
-        "tslib": "~2.0.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-          "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/load": {
-      "version": "6.2.8",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz",
-      "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/merge": "^6.2.12",
-        "@graphql-tools/utils": "^7.5.0",
-        "globby": "11.0.3",
-        "import-from": "3.0.0",
-        "is-glob": "4.0.1",
-        "p-limit": "3.1.0",
-        "tslib": "~2.2.0",
-        "unixify": "1.0.0",
-        "valid-url": "1.0.9"
-      },
-      "dependencies": {
-        "globby": {
-          "version": "11.0.3",
-          "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
-          "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
-          "dev": true,
-          "requires": {
-            "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"
-          }
-        },
-        "ignore": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
-          "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
-          "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/merge": {
-      "version": "6.2.17",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.17.tgz",
-      "integrity": "sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/schema": "^8.0.2",
-        "@graphql-tools/utils": "8.0.2",
-        "tslib": "~2.3.0"
-      },
-      "dependencies": {
-        "@graphql-tools/utils": {
-          "version": "8.0.2",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.0.2.tgz",
-          "integrity": "sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==",
-          "dev": true,
-          "requires": {
-            "tslib": "~2.3.0"
-          }
-        }
-      }
-    },
-    "@graphql-tools/optimize": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.1.1.tgz",
-      "integrity": "sha512-y0TEfPyGmJaQjnsTRs/UP7/ZHaB3i68VAsXW4H2doUFKY6rIOUz+ruME/uWsfy/VeTWBNqGX8/m/X7YFEi5OJQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "~2.3.0"
-      }
-    },
-    "@graphql-tools/prisma-loader": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-6.3.0.tgz",
-      "integrity": "sha512-9V3W/kzsFBmUQqOsd96V4a4k7Didz66yh/IK89B1/rrvy9rYj+ULjEqR73x9BYZ+ww9FV8yP8LasWAJwWaqqJQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/url-loader": "^6.8.2",
-        "@graphql-tools/utils": "^7.0.0",
-        "@types/http-proxy-agent": "^2.0.2",
-        "@types/js-yaml": "^4.0.0",
-        "@types/json-stable-stringify": "^1.0.32",
-        "@types/jsonwebtoken": "^8.5.0",
-        "chalk": "^4.1.0",
-        "debug": "^4.3.1",
-        "dotenv": "^8.2.0",
-        "graphql-request": "^3.3.0",
-        "http-proxy-agent": "^4.0.1",
-        "https-proxy-agent": "^5.0.0",
-        "isomorphic-fetch": "^3.0.0",
-        "js-yaml": "^4.0.0",
-        "json-stable-stringify": "^1.0.1",
-        "jsonwebtoken": "^8.5.1",
-        "lodash": "^4.17.20",
-        "replaceall": "^0.1.6",
-        "scuid": "^1.1.0",
-        "tslib": "~2.1.0",
-        "yaml-ast-parser": "^0.0.43"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
-          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/relay-operation-optimizer": {
-      "version": "6.4.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.1.tgz",
-      "integrity": "sha512-2b9D5L+31sIBnvmcmIW5tfvNUV+nJFtbHpUyarTRDmFT6EZ2cXo4WZMm9XJcHQD/Z5qvMXfPHxzQ3/JUs4xI+w==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/utils": "^8.5.1",
-        "relay-compiler": "12.0.0",
-        "tslib": "~2.3.0"
-      },
-      "dependencies": {
-        "@graphql-tools/utils": {
-          "version": "8.6.1",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-          "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-          "dev": true,
-          "requires": {
-            "tslib": "~2.3.0"
-          }
-        }
-      }
-    },
-    "@graphql-tools/schema": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz",
-      "integrity": "sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/merge": "^8.2.1",
-        "@graphql-tools/utils": "^8.5.1",
-        "tslib": "~2.3.0",
-        "value-or-promise": "1.0.11"
-      },
-      "dependencies": {
-        "@graphql-tools/merge": {
-          "version": "8.2.1",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz",
-          "integrity": "sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA==",
-          "dev": true,
-          "requires": {
-            "@graphql-tools/utils": "^8.5.1",
-            "tslib": "~2.3.0"
-          }
-        },
-        "@graphql-tools/utils": {
-          "version": "8.6.1",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz",
-          "integrity": "sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==",
-          "dev": true,
-          "requires": {
-            "tslib": "~2.3.0"
-          }
-        }
-      }
-    },
-    "@graphql-tools/url-loader": {
-      "version": "6.10.1",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz",
-      "integrity": "sha512-DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/delegate": "^7.0.1",
-        "@graphql-tools/utils": "^7.9.0",
-        "@graphql-tools/wrap": "^7.0.4",
-        "@microsoft/fetch-event-source": "2.0.1",
-        "@types/websocket": "1.0.2",
-        "abort-controller": "3.0.0",
-        "cross-fetch": "3.1.4",
-        "extract-files": "9.0.0",
-        "form-data": "4.0.0",
-        "graphql-ws": "^4.4.1",
-        "is-promise": "4.0.0",
-        "isomorphic-ws": "4.0.1",
-        "lodash": "4.17.21",
-        "meros": "1.1.4",
-        "subscriptions-transport-ws": "^0.9.18",
-        "sync-fetch": "0.3.0",
-        "tslib": "~2.2.0",
-        "valid-url": "1.0.9",
-        "ws": "7.4.5"
-      },
-      "dependencies": {
-        "cross-fetch": {
-          "version": "3.1.4",
-          "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
-          "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
-          "dev": true,
-          "requires": {
-            "node-fetch": "2.6.1"
-          }
-        },
-        "node-fetch": {
-          "version": "2.6.1",
-          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-          "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
-          "dev": true
-        },
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        },
-        "ws": {
-          "version": "7.4.5",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
-          "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
-          "dev": true,
-          "requires": {}
-        }
-      }
-    },
-    "@graphql-tools/utils": {
-      "version": "7.10.0",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
-      "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
-      "dev": true,
-      "requires": {
-        "@ardatan/aggregate-error": "0.0.6",
-        "camel-case": "4.1.2",
-        "tslib": "~2.2.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        }
-      }
-    },
-    "@graphql-tools/wrap": {
-      "version": "7.0.8",
-      "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz",
-      "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==",
-      "dev": true,
-      "requires": {
-        "@graphql-tools/delegate": "^7.1.5",
-        "@graphql-tools/schema": "^7.1.5",
-        "@graphql-tools/utils": "^7.8.1",
-        "tslib": "~2.2.0",
-        "value-or-promise": "1.0.6"
-      },
-      "dependencies": {
-        "@graphql-tools/schema": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-          "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-          "dev": true,
-          "requires": {
-            "@graphql-tools/utils": "^7.1.2",
-            "tslib": "~2.2.0",
-            "value-or-promise": "1.0.6"
-          }
-        },
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        },
-        "value-or-promise": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-          "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-          "dev": true
-        }
-      }
-    },
-    "@humanwhocodes/config-array": {
-      "version": "0.9.2",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
-      "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
-      "dev": true,
-      "requires": {
-        "@humanwhocodes/object-schema": "^1.2.1",
-        "debug": "^4.1.1",
-        "minimatch": "^3.0.4"
-      }
-    },
-    "@humanwhocodes/object-schema": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
-      "dev": true
-    },
-    "@iarna/toml": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
-      "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
-      "dev": true
-    },
-    "@microsoft/fetch-event-source": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
-      "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==",
-      "dev": true
-    },
-    "@next/bundle-analyzer": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.8.tgz",
-      "integrity": "sha512-tRwFyAkJA0h+rwt4exq31T59qo4qwp7vPoR3yC8gIpK/E5NAwafyk40aNpk4OWhiQ2IvJMFutukMzY3xl79NXA==",
-      "dev": true,
-      "requires": {
-        "webpack-bundle-analyzer": "4.3.0"
-      }
-    },
-    "@next/env": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.8.tgz",
-      "integrity": "sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g=="
-    },
-    "@next/eslint-plugin-next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.8.tgz",
-      "integrity": "sha512-bf7O0Mvs1h3vIdbbi0hijG+6YG3ED/ebQfmUltrQSgGtHVKGADDoE2qQhwE+mrvxuz9BD8y3mJDOSy0PBLKGBA==",
-      "dev": true,
-      "requires": {
-        "glob": "7.1.7"
-      }
-    },
-    "@next/react-refresh-utils": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.8.tgz",
-      "integrity": "sha512-Bq4T/aOOFQUkCF9b8k9x+HpjOevu65ZPxsYJOpgEtBuJyvb+sZREtDDLKb/RtjUeLMrWrsGD0aLteyFFtiS8Og==",
-      "requires": {}
-    },
-    "@next/swc-android-arm64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.8.tgz",
-      "integrity": "sha512-BiXMcOZNnXSIXv+FQvbRgbMb+iYayLX/Sb2MwR0wja+eMs46BY1x/ssXDwUBADP1M8YtrGTlSPHZqUiCU94+Mg==",
-      "optional": true
-    },
-    "@next/swc-darwin-arm64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.8.tgz",
-      "integrity": "sha512-6EGMmvcIwPpwt0/iqLbXDGx6oKHAXzbowyyVXK8cqmIvhoghRFjqfiNGBs+ar6wEBGt68zhwn/77vE3iQWoFJw==",
-      "optional": true
-    },
-    "@next/swc-darwin-x64": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.8.tgz",
-      "integrity": "sha512-todxgQOGP/ucz5UH2kKR3XGDdkWmWr0VZAAbzgTbiFm45Ol4ih602k2nNR3xSbza9IqNhxNuUVsMpBgeo19CFQ==",
-      "optional": true
-    },
-    "@next/swc-linux-arm-gnueabihf": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.8.tgz",
-      "integrity": "sha512-KULmdrfI+DJxBuhEyV47MQllB/WpC3P2xbwhHezxL/LkC2nkz5SbV4k432qpx2ebjIRf9SjdQ5Oz1FjD8Urayw==",
-      "optional": true
-    },
-    "@next/swc-linux-arm64-gnu": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.8.tgz",
-      "integrity": "sha512-1XO87wgIVPvt5fx5i8CqdhksRdcpqyzCOLW4KrE0f9pUCIT04EbsFiKdmsH9c73aqjNZMnCMXpbV+cn4hN8x1w==",
-      "optional": true
-    },
-    "@next/swc-linux-arm64-musl": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.8.tgz",
-      "integrity": "sha512-NStRZEy/rkk2G18Yhc/Jzi1Q2Dv+zH176oO8479zlDQ5syRfc6AvRHVV4iNRc8Pai58If83r/nOJkwFgGwkKLw==",
-      "optional": true
-    },
-    "@next/swc-linux-x64-gnu": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.8.tgz",
-      "integrity": "sha512-rHxTGtTEDFsdT9/VjewzxE19S7W1NE+aZpm4TwbT1pSNGK9KQxQGcXjqoHMeB+VZCFknzNEoIU/vydbjZMlAuw==",
-      "optional": true
-    },
-    "@next/swc-linux-x64-musl": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.8.tgz",
-      "integrity": "sha512-1F4kuFRQE10GSx7LMSvRmjMXFGpxT30g8rZzq9r/p/WKdErA4WB4uxaKEX0P8AINfuN63i4luKdR+LoacgBhYw==",
-      "optional": true
-    },
-    "@next/swc-win32-arm64-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.8.tgz",
-      "integrity": "sha512-QuRe49jqCV61TysGopC1P0HPqFAMZMWe1nbIQLyOkDLkULmZR8N2eYZq7fwqvZE5YwhMmJA/grwWFVBqSEh5Kg==",
-      "optional": true
-    },
-    "@next/swc-win32-ia32-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.8.tgz",
-      "integrity": "sha512-0RV3/julybJr1IlPCowIWrJJZyAl+sOakJEM15y1NOOsbwTQ5eKZZXSi+7e23TN4wmy5HwNvn2dKzgOEVJ+jbA==",
-      "optional": true
-    },
-    "@next/swc-win32-x64-msvc": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.8.tgz",
-      "integrity": "sha512-tTga6OFfO2JS+Yt5hdryng259c/tzNgSWkdiU2E+RBHiysAIOta57n4PJ8iPahOSqEqjaToPI76wM+o441GaNQ==",
-      "optional": true
-    },
-    "@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "requires": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      }
-    },
-    "@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
-    },
-    "@nodelib/fs.walk": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz",
-      "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==",
-      "requires": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      }
-    },
-    "@polka/url": {
-      "version": "1.0.0-next.15",
-      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz",
-      "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==",
-      "dev": true
-    },
-    "@react-spring/animated": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.1.tgz",
-      "integrity": "sha512-uAJkcrSlpg8uSe8zy7eJcDdNpI5QvRXrZUKhn5dlGAPk3psgY5qj6pahzB0k5NZZQ27ls8Z5Nt4VKhGaXPJNDQ==",
-      "requires": {
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      }
-    },
-    "@react-spring/core": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.4.1.tgz",
-      "integrity": "sha512-sXQmGg4wNeyoVZ/LdEF01xtzQKZtLIyFDX03hoa0oa9VTgLNTVSbVXD9q2xsH8HtWpY4OFPTi/9Noi93gjnYyg==",
-      "requires": {
-        "@react-spring/animated": "~9.4.0",
-        "@react-spring/rafz": "~9.4.0",
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      }
-    },
-    "@react-spring/rafz": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.4.1.tgz",
-      "integrity": "sha512-R/mNOQ4axraWsL/jwzoaqfeX6RwUODg3WOGweL8zYbHHheRqQV+QwnhGmDATepBZ1H3UUulhXvOqkzWzjnpuQQ=="
-    },
-    "@react-spring/shared": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.4.1.tgz",
-      "integrity": "sha512-7atTQOhEQmw5UEYbb5yk7YEaf11AcRF7UISfAmr9FJ2FJD4VUVCn1R4V78omiFiRvnU6qI3GRhkRnIvYM8aAZw==",
-      "requires": {
-        "@react-spring/rafz": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      }
-    },
-    "@react-spring/types": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.4.1.tgz",
-      "integrity": "sha512-eZmlFRc+XkY/HJi4RswLkIHH0nKQkqKRHPUqnseffcBuZ5FNXKDUmNnLUpqkrCpl746QCFVQtI5QptLklDATfQ=="
-    },
-    "@react-spring/web": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.4.1.tgz",
-      "integrity": "sha512-ajlGJl0Zqa3idhZw0KL5chP8AIn4wPHpDY7WjtWaWjVZSZRSBAeHmfqNLtAGCjazeO/Q6zmt6wdGs8bX8q42rQ==",
-      "requires": {
-        "@react-spring/animated": "~9.4.0",
-        "@react-spring/core": "~9.4.0",
-        "@react-spring/shared": "~9.4.0",
-        "@react-spring/types": "~9.4.0"
-      }
-    },
-    "@rushstack/eslint-patch": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
-      "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==",
-      "dev": true
-    },
-    "@samverschueren/stream-to-observable": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz",
-      "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==",
-      "dev": true,
-      "requires": {
-        "any-observable": "^0.3.0"
-      }
-    },
-    "@sindresorhus/is": {
-      "version": "0.14.0",
-      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
-      "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
-      "dev": true
-    },
-    "@spree/storefront-api-v2-sdk": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/@spree/storefront-api-v2-sdk/-/storefront-api-v2-sdk-5.1.1.tgz",
-      "integrity": "sha512-W2fyXbQ5OABXXUgmafgDMy/d8NWiF6q59JupzsiWFWIv/WaTYxcIK8uajZJQJrNmKJtafILEjPy+1AxVKRLUcQ==",
-      "requires": {}
-    },
-    "@szmarczak/http-timer": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
-      "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
-      "dev": true,
-      "requires": {
-        "defer-to-connect": "^1.0.1"
-      }
-    },
-    "@tootallnate/once": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
-      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
-      "dev": true
-    },
-    "@types/async-retry": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.2.1.tgz",
-      "integrity": "sha512-yMQ6CVgICWtyFNBqJT3zqOc+TnqqEPLo4nKJNPFwcialiylil38Ie6q1ENeFTjvaLOkVim9K5LisHgAKJWidGQ=="
-    },
-    "@types/body-scroll-lock": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@types/body-scroll-lock/-/body-scroll-lock-3.1.0.tgz",
-      "integrity": "sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA==",
-      "dev": true
-    },
-    "@types/chec__commerce.js": {
-      "version": "2.8.4",
-      "resolved": "https://registry.npmjs.org/@types/chec__commerce.js/-/chec__commerce.js-2.8.4.tgz",
-      "integrity": "sha512-hyR2OXEB3gIRp/ESWOQaFStefBG+C5OdnkxGC1Gmp0ePVzl/wk5FyvaK5NsT1ddNC/y1YsmDAVPe+DArr6/9Jg==",
-      "dev": true,
-      "requires": {
-        "@types/chec__commerce.js": "*"
-      }
-    },
-    "@types/cookie": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
-      "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
-      "dev": true
-    },
-    "@types/http-proxy-agent": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.2.tgz",
-      "integrity": "sha512-2S6IuBRhqUnH1/AUx9k8KWtY3Esg4eqri946MnxTG5HwehF1S5mqLln8fcyMiuQkY72p2gH3W+rIPqp5li0LyQ==",
-      "dev": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/js-cookie": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.1.tgz",
-      "integrity": "sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==",
-      "dev": true
-    },
-    "@types/js-yaml": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
-      "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
-      "dev": true
-    },
-    "@types/json-stable-stringify": {
-      "version": "1.0.33",
-      "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz",
-      "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==",
-      "dev": true
-    },
-    "@types/json5": {
-      "version": "0.0.29",
-      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
-      "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
-      "dev": true
-    },
-    "@types/jsonwebtoken": {
-      "version": "8.5.7",
-      "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.7.tgz",
-      "integrity": "sha512-CBHN+1unePowgS94ayLE7aVp7AfyhgG/3l2O+AjkhOMY4kAAfVI1OnbbLnOeDMAdTNLP5ZjJ3kdZanRtRQaK3Q==",
-      "dev": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/lodash": {
-      "version": "4.14.170",
-      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz",
-      "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==",
-      "dev": true
-    },
-    "@types/lodash.debounce": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz",
-      "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==",
-      "dev": true,
-      "requires": {
-        "@types/lodash": "*"
-      }
-    },
-    "@types/lodash.random": {
-      "version": "3.2.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.6.tgz",
-      "integrity": "sha512-RRr0pKm+3USvG/HTkuRKA8v2EqXu19VXC09j4VL2UQec8Yx8Fn6wYTPGjYdmX4UFd23ykS7SLFkiULS/rv8kTA==",
-      "dev": true,
-      "requires": {
-        "@types/lodash": "*"
-      }
-    },
-    "@types/lodash.throttle": {
-      "version": "4.1.6",
-      "resolved": "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.6.tgz",
-      "integrity": "sha512-/UIH96i/sIRYGC60NoY72jGkCJtFN5KVPhEMMMTjol65effe1gPn0tycJqV5tlSwMTzX8FqzB5yAj0rfGHTPNg==",
-      "dev": true,
-      "requires": {
-        "@types/lodash": "*"
-      }
-    },
-    "@types/lru-cache": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-4.1.1.tgz",
-      "integrity": "sha512-8mNEUG6diOrI6pMqOHrHPDBB1JsrpedeMK9AWGzVCQ7StRRribiT9BRvUmF8aUws9iBbVlgVekOT5Sgzc1MTKw=="
-    },
-    "@types/node": {
-      "version": "17.0.8",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
-      "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg=="
-    },
-    "@types/node-fetch": {
-      "version": "2.5.12",
-      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
-      "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
-      "peer": true,
-      "requires": {
-        "@types/node": "*",
-        "form-data": "^3.0.0"
-      },
-      "dependencies": {
-        "form-data": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-          "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-          "peer": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.8",
-            "mime-types": "^2.1.12"
-          }
-        }
-      }
-    },
-    "@types/parse-json": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
-      "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
-    },
-    "@types/prop-types": {
-      "version": "15.7.3",
-      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
-      "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==",
-      "dev": true
-    },
-    "@types/react": {
-      "version": "17.0.38",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz",
-      "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==",
-      "dev": true,
-      "requires": {
-        "@types/prop-types": "*",
-        "@types/scheduler": "*",
-        "csstype": "^3.0.2"
-      }
-    },
-    "@types/scheduler": {
-      "version": "0.16.1",
-      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
-      "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==",
-      "dev": true
-    },
-    "@types/uuid": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz",
-      "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg=="
-    },
-    "@types/websocket": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz",
-      "integrity": "sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==",
-      "dev": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@typescript-eslint/parser": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.1.tgz",
-      "integrity": "sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/scope-manager": "5.9.1",
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/typescript-estree": "5.9.1",
-        "debug": "^4.3.2"
-      }
-    },
-    "@typescript-eslint/scope-manager": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz",
-      "integrity": "sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/visitor-keys": "5.9.1"
-      }
-    },
-    "@typescript-eslint/types": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.1.tgz",
-      "integrity": "sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==",
-      "dev": true
-    },
-    "@typescript-eslint/typescript-estree": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz",
-      "integrity": "sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "5.9.1",
-        "@typescript-eslint/visitor-keys": "5.9.1",
-        "debug": "^4.3.2",
-        "globby": "^11.0.4",
-        "is-glob": "^4.0.3",
-        "semver": "^7.3.5",
-        "tsutils": "^3.21.0"
-      }
-    },
-    "@typescript-eslint/visitor-keys": {
-      "version": "5.9.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz",
-      "integrity": "sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "5.9.1",
-        "eslint-visitor-keys": "^3.0.0"
-      }
-    },
-    "@vercel/fetch": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch/-/fetch-6.1.1.tgz",
-      "integrity": "sha512-nddCkgpA0aVIqOlzh+qVlzDNcQq0cSnqefM+x6SciGI4GCvVZeaZ7WEowgX8I/HwBAq8Uj5Bdnd+r0+sYsJsig==",
-      "requires": {
-        "@types/async-retry": "1.2.1",
-        "@vercel/fetch-cached-dns": "^2.0.2",
-        "@vercel/fetch-retry": "^5.0.2",
-        "agentkeepalive": "3.4.1",
-        "debug": "3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
-    },
-    "@vercel/fetch-cached-dns": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch-cached-dns/-/fetch-cached-dns-2.0.2.tgz",
-      "integrity": "sha512-gDqKEV8CeY2YmCdZpP1rn3tFK1L07Vw2+HYkCK8zpRHOVGr/sP8yhBsW+C/yqGVj0i9z/rIvqIHe5emvRvxwgw==",
-      "requires": {
-        "@types/node-fetch": "2.3.2",
-        "@zeit/dns-cached-resolve": "2.1.2"
-      },
-      "dependencies": {
-        "@types/node-fetch": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.3.2.tgz",
-          "integrity": "sha512-yW0EOebSsQme9yKu09XbdDfle4/SmWZMK4dfteWcSLCYNQQcF+YOv0kIrvm+9pO11/ghA4E6A+RNQqvYj4Nr3A==",
-          "requires": {
-            "@types/node": "*"
-          }
-        }
-      }
-    },
-    "@vercel/fetch-retry": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/@vercel/fetch-retry/-/fetch-retry-5.0.3.tgz",
-      "integrity": "sha512-DIIoBY92r+sQ6iHSf5WjKiYvkdsDIMPWKYATlE0KcUAj2RV6SZK9UWpUzBRKsofXqedOqpVjrI0IE6AWL7JRtg==",
-      "requires": {
-        "async-retry": "^1.3.1",
-        "debug": "^3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "@zeit/dns-cached-resolve": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@zeit/dns-cached-resolve/-/dns-cached-resolve-2.1.2.tgz",
-      "integrity": "sha512-A/5gbBskKPETTBqHwvlaW1Ri2orO62yqoFoXdxna1SQ7A/lXjpWgpJ1wdY3IQEcz5LydpS4sJ8SzI2gFyyLEhg==",
-      "requires": {
-        "@types/async-retry": "1.2.1",
-        "@types/lru-cache": "4.1.1",
-        "@types/node": "10.12.18",
-        "async-retry": "1.2.3",
-        "lru-cache": "5.1.1"
-      },
-      "dependencies": {
-        "@types/node": {
-          "version": "10.12.18",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
-          "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ=="
-        },
-        "async-retry": {
-          "version": "1.2.3",
-          "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz",
-          "integrity": "sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==",
-          "requires": {
-            "retry": "0.12.0"
-          }
-        }
-      }
-    },
-    "abort-controller": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
-      "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
-      "dev": true,
-      "requires": {
-        "event-target-shim": "^5.0.0"
-      }
-    },
-    "acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
-    },
-    "acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "acorn-node": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
-      "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
-      "requires": {
-        "acorn": "^7.0.0",
-        "acorn-walk": "^7.0.0",
-        "xtend": "^4.0.2"
-      }
-    },
-    "acorn-walk": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
-      "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
-    },
-    "agent-base": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
-      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
-      "dev": true,
-      "requires": {
-        "debug": "4"
-      }
-    },
-    "agentkeepalive": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz",
-      "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==",
-      "requires": {
-        "humanize-ms": "^1.2.1"
-      }
-    },
-    "aggregate-error": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
-      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
-      "dev": true,
-      "requires": {
-        "clean-stack": "^2.0.0",
-        "indent-string": "^4.0.0"
-      }
-    },
-    "ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
-      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dev": true,
-      "requires": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "ansi-colors": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-      "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
-      "dev": true
-    },
-    "ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-      "dev": true,
-      "requires": {
-        "type-fest": "^0.21.3"
-      }
-    },
-    "ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "dev": true
-    },
-    "ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "requires": {
-        "color-convert": "^2.0.1"
-      }
-    },
-    "any-observable": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
-      "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
-      "dev": true
-    },
-    "anymatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
-      "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
-      "requires": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      }
-    },
-    "arg": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
-      "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA=="
-    },
-    "argparse": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-      "dev": true
-    },
-    "aria-query": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
-      "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
-      "dev": true,
-      "requires": {
-        "@babel/runtime": "^7.10.2",
-        "@babel/runtime-corejs3": "^7.10.2"
-      }
-    },
-    "array-includes": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
-      "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1",
-        "get-intrinsic": "^1.1.1",
-        "is-string": "^1.0.7"
-      }
-    },
-    "array-includes-with-glob": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/array-includes-with-glob/-/array-includes-with-glob-3.1.0.tgz",
-      "integrity": "sha512-/PZEKASyXWmUTkNhuxnmqybv1CmIdY5rp3axLy3Dv6SYfaBb+EgS7Nl991mquHT1N2u0YAnE3IOafVNRM6Y9dw==",
-      "requires": {
-        "@babel/runtime": "^7.14.0",
-        "matcher": "^4.0.0"
-      }
-    },
-    "array-union": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
-      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-      "dev": true
-    },
-    "array.prototype.flat": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
-      "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.0"
-      }
-    },
-    "array.prototype.flatmap": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
-      "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.0"
-      }
-    },
-    "asap": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
-      "dev": true
-    },
-    "ast-types-flow": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
-      "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
-      "dev": true
-    },
-    "astral-regex": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
-      "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
-      "dev": true
-    },
-    "async-retry": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
-      "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
-      "requires": {
-        "retry": "0.12.0"
-      }
-    },
-    "asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
-      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
-    },
-    "auto-bind": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz",
-      "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==",
-      "dev": true
-    },
-    "autoprefixer": {
-      "version": "10.4.2",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz",
-      "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==",
-      "requires": {
-        "browserslist": "^4.19.1",
-        "caniuse-lite": "^1.0.30001297",
-        "fraction.js": "^4.1.2",
-        "normalize-range": "^0.1.2",
-        "picocolors": "^1.0.0",
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "axe-core": {
-      "version": "4.3.5",
-      "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz",
-      "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==",
-      "dev": true
-    },
-    "axios": {
-      "version": "0.24.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
-      "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
-      "optional": true,
-      "peer": true,
-      "requires": {
-        "follow-redirects": "^1.14.4"
-      }
-    },
-    "axobject-query": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
-      "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
-      "dev": true
-    },
-    "babel-plugin-dynamic-import-node": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
-      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
-      "dev": true,
-      "requires": {
-        "object.assign": "^4.1.0"
-      }
-    },
-    "babel-plugin-syntax-trailing-function-commas": {
-      "version": "7.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
-      "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==",
-      "dev": true
-    },
-    "babel-preset-fbjs": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
-      "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-proposal-class-properties": "^7.0.0",
-        "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
-        "@babel/plugin-syntax-class-properties": "^7.0.0",
-        "@babel/plugin-syntax-flow": "^7.0.0",
-        "@babel/plugin-syntax-jsx": "^7.0.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
-        "@babel/plugin-transform-arrow-functions": "^7.0.0",
-        "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
-        "@babel/plugin-transform-block-scoping": "^7.0.0",
-        "@babel/plugin-transform-classes": "^7.0.0",
-        "@babel/plugin-transform-computed-properties": "^7.0.0",
-        "@babel/plugin-transform-destructuring": "^7.0.0",
-        "@babel/plugin-transform-flow-strip-types": "^7.0.0",
-        "@babel/plugin-transform-for-of": "^7.0.0",
-        "@babel/plugin-transform-function-name": "^7.0.0",
-        "@babel/plugin-transform-literals": "^7.0.0",
-        "@babel/plugin-transform-member-expression-literals": "^7.0.0",
-        "@babel/plugin-transform-modules-commonjs": "^7.0.0",
-        "@babel/plugin-transform-object-super": "^7.0.0",
-        "@babel/plugin-transform-parameters": "^7.0.0",
-        "@babel/plugin-transform-property-literals": "^7.0.0",
-        "@babel/plugin-transform-react-display-name": "^7.0.0",
-        "@babel/plugin-transform-react-jsx": "^7.0.0",
-        "@babel/plugin-transform-shorthand-properties": "^7.0.0",
-        "@babel/plugin-transform-spread": "^7.0.0",
-        "@babel/plugin-transform-template-literals": "^7.0.0",
-        "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
-      }
-    },
-    "backo2": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
-      "dev": true
-    },
-    "balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
-      "dev": true
-    },
-    "base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-      "dev": true
-    },
-    "big.js": {
-      "version": "5.2.2",
-      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
-      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
-    },
-    "binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
-      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
-    },
-    "body-scroll-lock": {
-      "version": "4.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz",
-      "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ=="
-    },
-    "brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dev": true,
-      "requires": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "requires": {
-        "fill-range": "^7.0.1"
-      }
-    },
-    "browserslist": {
-      "version": "4.19.1",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
-      "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
-      "requires": {
-        "caniuse-lite": "^1.0.30001286",
-        "electron-to-chromium": "^1.4.17",
-        "escalade": "^3.1.1",
-        "node-releases": "^2.0.1",
-        "picocolors": "^1.0.0"
-      }
-    },
-    "bser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
-      "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
-      "dev": true,
-      "requires": {
-        "node-int64": "^0.4.0"
-      }
-    },
-    "buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "dev": true,
-      "requires": {
-        "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
-      }
-    },
-    "buffer-equal-constant-time": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
-      "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=",
-      "dev": true
-    },
-    "buffer-from": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-      "devOptional": true
-    },
-    "cacheable-request": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
-      "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
-      "dev": true,
-      "requires": {
-        "clone-response": "^1.0.2",
-        "get-stream": "^5.1.0",
-        "http-cache-semantics": "^4.0.0",
-        "keyv": "^3.0.0",
-        "lowercase-keys": "^2.0.0",
-        "normalize-url": "^4.1.0",
-        "responselike": "^1.0.2"
-      },
-      "dependencies": {
-        "get-stream": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
-          "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "lowercase-keys": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
-          "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
-          "dev": true
-        }
-      }
-    },
-    "call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
-      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "requires": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      }
-    },
-    "callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
-    },
-    "camel-case": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
-      "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
-      "dev": true,
-      "requires": {
-        "pascal-case": "^3.1.2",
-        "tslib": "^2.0.3"
-      }
-    },
-    "camelcase": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-      "dev": true
-    },
-    "camelcase-css": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
-      "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
-    },
-    "caniuse-lite": {
-      "version": "1.0.30001299",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz",
-      "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw=="
-    },
-    "capital-case": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
-      "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
-      "dev": true,
-      "requires": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "requires": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      }
-    },
-    "change-case": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
-      "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
-      "dev": true,
-      "requires": {
-        "camel-case": "^4.1.2",
-        "capital-case": "^1.0.4",
-        "constant-case": "^3.0.4",
-        "dot-case": "^3.0.4",
-        "header-case": "^2.0.4",
-        "no-case": "^3.0.4",
-        "param-case": "^3.0.4",
-        "pascal-case": "^3.1.2",
-        "path-case": "^3.0.4",
-        "sentence-case": "^3.0.4",
-        "snake-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "change-case-all": {
-      "version": "1.0.14",
-      "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz",
-      "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==",
-      "dev": true,
-      "requires": {
-        "change-case": "^4.1.2",
-        "is-lower-case": "^2.0.2",
-        "is-upper-case": "^2.0.2",
-        "lower-case": "^2.0.2",
-        "lower-case-first": "^2.0.2",
-        "sponge-case": "^1.0.1",
-        "swap-case": "^2.0.2",
-        "title-case": "^3.0.3",
-        "upper-case": "^2.0.2",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
-      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
-      "dev": true
-    },
-    "chokidar": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
-      "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
-      "requires": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "fsevents": "~2.3.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"
-      }
-    },
-    "classnames": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
-      "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
-    },
-    "clean-stack": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
-      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
-      "dev": true
-    },
-    "cli-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
-      "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "^3.1.0"
-      }
-    },
-    "cli-truncate": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
-      "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
-      "dev": true,
-      "requires": {
-        "slice-ansi": "^5.0.0",
-        "string-width": "^5.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
-          "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
-          "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
-          "dev": true,
-          "requires": {
-            "eastasianwidth": "^0.2.0",
-            "emoji-regex": "^9.2.2",
-            "strip-ansi": "^7.0.1"
-          }
-        },
-        "strip-ansi": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
-          "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^6.0.1"
-          }
-        }
-      }
-    },
-    "cli-width": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
-      "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
-      "dev": true
-    },
-    "cliui": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
-      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
-      "dev": true,
-      "requires": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^7.0.0"
-      }
-    },
-    "clone-response": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
-      "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
-      "dev": true,
-      "requires": {
-        "mimic-response": "^1.0.0"
-      }
-    },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
-    "color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "requires": {
-        "color-name": "~1.1.4"
-      }
-    },
-    "color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "colorette": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
-      "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
-    },
-    "combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
-      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-      "requires": {
-        "delayed-stream": "~1.0.0"
-      }
-    },
-    "commander": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
-      "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
-      "dev": true
-    },
-    "common-tags": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
-      "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
-      "dev": true
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-      "dev": true
-    },
-    "constant-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
-      "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
-      "dev": true,
-      "requires": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case": "^2.0.2"
-      }
-    },
-    "convert-source-map": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
-      "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
-      "requires": {
-        "safe-buffer": "~5.1.1"
-      },
-      "dependencies": {
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
-        }
-      }
-    },
-    "cookie": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
-      "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
-    },
-    "core-js-pure": {
-      "version": "3.20.2",
-      "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz",
-      "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==",
-      "dev": true
-    },
-    "cosmiconfig": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
-      "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
-      "requires": {
-        "@types/parse-json": "^4.0.0",
-        "import-fresh": "^3.2.1",
-        "parse-json": "^5.0.0",
-        "path-type": "^4.0.0",
-        "yaml": "^1.10.0"
-      }
-    },
-    "cosmiconfig-toml-loader": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz",
-      "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==",
-      "dev": true,
-      "requires": {
-        "@iarna/toml": "^2.2.5"
-      }
-    },
-    "create-require": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
-      "devOptional": true
-    },
-    "cross-fetch": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz",
-      "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==",
-      "dev": true,
-      "requires": {
-        "node-fetch": "2.6.1"
-      },
-      "dependencies": {
-        "node-fetch": {
-          "version": "2.6.1",
-          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-          "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
-          "dev": true
-        }
-      }
-    },
-    "cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-      "dev": true,
-      "requires": {
-        "path-key": "^3.1.0",
-        "shebang-command": "^2.0.0",
-        "which": "^2.0.1"
-      }
-    },
-    "css-blank-pseudo": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz",
-      "integrity": "sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "css-has-pseudo": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz",
-      "integrity": "sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "css-prefers-color-scheme": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz",
-      "integrity": "sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==",
-      "dev": true,
-      "requires": {}
-    },
-    "cssdb": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz",
-      "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==",
-      "dev": true
-    },
-    "cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
-    },
-    "csstype": {
-      "version": "3.0.8",
-      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
-      "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==",
-      "dev": true
-    },
-    "damerau-levenshtein": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
-      "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
-      "dev": true
-    },
-    "dataloader": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz",
-      "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==",
-      "dev": true
-    },
-    "date-fns": {
-      "version": "1.30.1",
-      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
-      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
-      "dev": true
-    },
-    "debounce": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
-      "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
-    },
-    "debug": {
-      "version": "4.3.3",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
-      "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
-      "requires": {
-        "ms": "2.1.2"
-      }
-    },
-    "decamelize": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
-    },
-    "decompress-response": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
-      "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
-      "dev": true,
-      "requires": {
-        "mimic-response": "^1.0.0"
-      }
-    },
-    "deep-extend": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-      "dev": true
-    },
-    "deep-is": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
-      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-      "dev": true
-    },
-    "deepmerge": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
-      "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
-    },
-    "defer-to-connect": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
-      "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
-      "dev": true
-    },
-    "define-properties": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
-      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
-      "dev": true,
-      "requires": {
-        "object-keys": "^1.0.12"
-      }
-    },
-    "defined": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
-      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
-    },
-    "dependency-graph": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
-      "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
-      "dev": true
-    },
-    "detect-indent": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
-      "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
-      "dev": true
-    },
-    "detective": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
-      "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
-      "requires": {
-        "acorn-node": "^1.6.1",
-        "defined": "^1.0.0",
-        "minimist": "^1.1.1"
-      }
-    },
-    "didyoumean": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
-      "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
-    },
-    "diff": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
-      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
-      "devOptional": true
-    },
-    "dir-glob": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
-      "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
-      "dev": true,
-      "requires": {
-        "path-type": "^4.0.0"
-      }
-    },
-    "dlv": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
-      "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
-    },
-    "doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "dev": true,
-      "requires": {
-        "esutils": "^2.0.2"
-      }
-    },
-    "dot-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
-      "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
-      "dev": true,
-      "requires": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "dotenv": {
-      "version": "8.6.0",
-      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
-      "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
-      "dev": true
-    },
-    "duplexer": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
-      "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
-      "dev": true
-    },
-    "duplexer3": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
-      "dev": true
-    },
-    "eastasianwidth": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
-      "dev": true
-    },
-    "ecdsa-sig-formatter": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
-      "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "electron-to-chromium": {
-      "version": "1.4.44",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz",
-      "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw=="
-    },
-    "elegant-spinner": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
-      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
-      "dev": true
-    },
-    "email-validator": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz",
-      "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ=="
-    },
-    "emoji-regex": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
-      "dev": true
-    },
-    "emojis-list": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
-      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
-    },
-    "end-of-stream": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
-      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-      "dev": true,
-      "requires": {
-        "once": "^1.4.0"
-      }
-    },
-    "enquirer": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
-      "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
-      "dev": true,
-      "requires": {
-        "ansi-colors": "^4.1.1"
-      }
-    },
-    "error-ex": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
-      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
-      "requires": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "es-abstract": {
-      "version": "1.19.1",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
-      "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "es-to-primitive": "^1.2.1",
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.1.1",
-        "get-symbol-description": "^1.0.0",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.2",
-        "internal-slot": "^1.0.3",
-        "is-callable": "^1.2.4",
-        "is-negative-zero": "^2.0.1",
-        "is-regex": "^1.1.4",
-        "is-shared-array-buffer": "^1.0.1",
-        "is-string": "^1.0.7",
-        "is-weakref": "^1.0.1",
-        "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.1"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "escalade": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
-      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
-    },
-    "escape-string-regexp": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
-    },
-    "eslint": {
-      "version": "8.6.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
-      "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
-      "dev": true,
-      "requires": {
-        "@eslint/eslintrc": "^1.0.5",
-        "@humanwhocodes/config-array": "^0.9.2",
-        "ajv": "^6.10.0",
-        "chalk": "^4.0.0",
-        "cross-spawn": "^7.0.2",
-        "debug": "^4.3.2",
-        "doctrine": "^3.0.0",
-        "enquirer": "^2.3.5",
-        "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^7.1.0",
-        "eslint-utils": "^3.0.0",
-        "eslint-visitor-keys": "^3.1.0",
-        "espree": "^9.3.0",
-        "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": "^6.0.1",
-        "globals": "^13.6.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.0.0",
-        "imurmurhash": "^0.1.4",
-        "is-glob": "^4.0.0",
-        "js-yaml": "^4.1.0",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.4.1",
-        "lodash.merge": "^4.6.2",
-        "minimatch": "^3.0.4",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.9.1",
-        "progress": "^2.0.0",
-        "regexpp": "^3.2.0",
-        "semver": "^7.2.1",
-        "strip-ansi": "^6.0.1",
-        "strip-json-comments": "^3.1.0",
-        "text-table": "^0.2.0",
-        "v8-compile-cache": "^2.0.3"
-      },
-      "dependencies": {
-        "glob-parent": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-          "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-          "dev": true,
-          "requires": {
-            "is-glob": "^4.0.3"
-          }
-        },
-        "globals": {
-          "version": "13.10.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
-          "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
-          "dev": true,
-          "requires": {
-            "type-fest": "^0.20.2"
-          }
-        },
-        "type-fest": {
-          "version": "0.20.2",
-          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-          "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-config-next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.8.tgz",
-      "integrity": "sha512-H40jvqy/yeku3r9D556ALLaM3ZmS55hj9/MTK59fWbzsqTaYlybSkUmIBG0ZFEnBazr0NnBGwrYA5cnsFYR7RQ==",
-      "dev": true,
-      "requires": {
-        "@next/eslint-plugin-next": "12.0.8",
-        "@rushstack/eslint-patch": "^1.0.8",
-        "@typescript-eslint/parser": "^5.0.0",
-        "eslint-import-resolver-node": "^0.3.4",
-        "eslint-import-resolver-typescript": "^2.4.0",
-        "eslint-plugin-import": "^2.25.2",
-        "eslint-plugin-jsx-a11y": "^6.5.1",
-        "eslint-plugin-react": "^7.27.0",
-        "eslint-plugin-react-hooks": "^4.3.0"
-      }
-    },
-    "eslint-config-prettier": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
-      "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
-      "dev": true,
-      "requires": {}
-    },
-    "eslint-import-resolver-node": {
-      "version": "0.3.6",
-      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
-      "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.7",
-        "resolve": "^1.20.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "eslint-import-resolver-typescript": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz",
-      "integrity": "sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==",
-      "dev": true,
-      "requires": {
-        "debug": "^4.1.1",
-        "glob": "^7.1.6",
-        "is-glob": "^4.0.1",
-        "resolve": "^1.17.0",
-        "tsconfig-paths": "^3.9.0"
-      }
-    },
-    "eslint-module-utils": {
-      "version": "2.7.2",
-      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
-      "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.7",
-        "find-up": "^2.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "eslint-plugin-import": {
-      "version": "2.25.4",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
-      "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
-      "dev": true,
-      "requires": {
-        "array-includes": "^3.1.4",
-        "array.prototype.flat": "^1.2.5",
-        "debug": "^2.6.9",
-        "doctrine": "^2.1.0",
-        "eslint-import-resolver-node": "^0.3.6",
-        "eslint-module-utils": "^2.7.2",
-        "has": "^1.0.3",
-        "is-core-module": "^2.8.0",
-        "is-glob": "^4.0.3",
-        "minimatch": "^3.0.4",
-        "object.values": "^1.1.5",
-        "resolve": "^1.20.0",
-        "tsconfig-paths": "^3.12.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "doctrine": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-jsx-a11y": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz",
-      "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==",
-      "dev": true,
-      "requires": {
-        "@babel/runtime": "^7.16.3",
-        "aria-query": "^4.2.2",
-        "array-includes": "^3.1.4",
-        "ast-types-flow": "^0.0.7",
-        "axe-core": "^4.3.5",
-        "axobject-query": "^2.2.0",
-        "damerau-levenshtein": "^1.0.7",
-        "emoji-regex": "^9.2.2",
-        "has": "^1.0.3",
-        "jsx-ast-utils": "^3.2.1",
-        "language-tags": "^1.0.5",
-        "minimatch": "^3.0.4"
-      }
-    },
-    "eslint-plugin-react": {
-      "version": "7.28.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
-      "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
-      "dev": true,
-      "requires": {
-        "array-includes": "^3.1.4",
-        "array.prototype.flatmap": "^1.2.5",
-        "doctrine": "^2.1.0",
-        "estraverse": "^5.3.0",
-        "jsx-ast-utils": "^2.4.1 || ^3.0.0",
-        "minimatch": "^3.0.4",
-        "object.entries": "^1.1.5",
-        "object.fromentries": "^2.0.5",
-        "object.hasown": "^1.1.0",
-        "object.values": "^1.1.5",
-        "prop-types": "^15.7.2",
-        "resolve": "^2.0.0-next.3",
-        "semver": "^6.3.0",
-        "string.prototype.matchall": "^4.0.6"
-      },
-      "dependencies": {
-        "doctrine": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2"
-          }
-        },
-        "resolve": {
-          "version": "2.0.0-next.3",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
-          "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
-          "dev": true,
-          "requires": {
-            "is-core-module": "^2.2.0",
-            "path-parse": "^1.0.6"
-          }
-        },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-react-hooks": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
-      "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
-      "dev": true,
-      "requires": {}
-    },
-    "eslint-scope": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
-      "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
-      "dev": true,
-      "requires": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      }
-    },
-    "eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dev": true,
-      "requires": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "dependencies": {
-        "eslint-visitor-keys": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
-          "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-visitor-keys": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
-      "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
-      "dev": true
-    },
-    "espree": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
-      "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
-      "dev": true,
-      "requires": {
-        "acorn": "^8.7.0",
-        "acorn-jsx": "^5.3.1",
-        "eslint-visitor-keys": "^3.1.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "8.7.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
-          "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
-          "dev": true
-        }
-      }
-    },
-    "esquery": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
-      "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.1.0"
-      }
-    },
-    "esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.2.0"
-      }
-    },
-    "estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "dev": true
-    },
-    "esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-      "dev": true
-    },
-    "event-target-shim": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
-      "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
-      "dev": true
-    },
-    "eventemitter3": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
-      "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
-      "dev": true
-    },
-    "execa": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
-      "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^7.0.3",
-        "get-stream": "^6.0.0",
-        "human-signals": "^2.1.0",
-        "is-stream": "^2.0.0",
-        "merge-stream": "^2.0.0",
-        "npm-run-path": "^4.0.1",
-        "onetime": "^5.1.2",
-        "signal-exit": "^3.0.3",
-        "strip-final-newline": "^2.0.0"
-      }
-    },
-    "external-editor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
-      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
-      "dev": true,
-      "requires": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      }
-    },
-    "extract-files": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
-      "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==",
-      "dev": true
-    },
-    "fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
-      "dev": true
-    },
-    "fast-glob": {
-      "version": "3.2.10",
-      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz",
-      "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==",
-      "requires": {
-        "@nodelib/fs.stat": "^2.0.2",
-        "@nodelib/fs.walk": "^1.2.3",
-        "glob-parent": "^5.1.2",
-        "merge2": "^1.3.0",
-        "micromatch": "^4.0.4"
-      }
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-      "dev": true
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-      "dev": true
-    },
-    "fastq": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
-      "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
-      "requires": {
-        "reusify": "^1.0.4"
-      }
-    },
-    "fb-watchman": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
-      "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
-      "dev": true,
-      "requires": {
-        "bser": "2.1.1"
-      }
-    },
-    "fbjs": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz",
-      "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==",
-      "dev": true,
-      "requires": {
-        "cross-fetch": "^3.0.4",
-        "fbjs-css-vars": "^1.0.0",
-        "loose-envify": "^1.0.0",
-        "object-assign": "^4.1.0",
-        "promise": "^7.1.1",
-        "setimmediate": "^1.0.5",
-        "ua-parser-js": "^0.7.30"
-      }
-    },
-    "fbjs-css-vars": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
-      "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==",
-      "dev": true
-    },
-    "figures": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
-      "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      },
-      "dependencies": {
-        "escape-string-regexp": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-          "dev": true
-        }
-      }
-    },
-    "file-entry-cache": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-      "dev": true,
-      "requires": {
-        "flat-cache": "^3.0.4"
-      }
-    },
-    "fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "requires": {
-        "to-regex-range": "^5.0.1"
-      }
-    },
-    "find-up": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
-      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-      "dev": true,
-      "requires": {
-        "locate-path": "^2.0.0"
-      }
-    },
-    "flat-cache": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-      "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
-      "dev": true,
-      "requires": {
-        "flatted": "^3.1.0",
-        "rimraf": "^3.0.2"
-      }
-    },
-    "flatted": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
-      "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==",
-      "dev": true
-    },
-    "follow-redirects": {
-      "version": "1.14.7",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
-      "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
-    },
-    "form-data": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
-      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
-      "dev": true,
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      }
-    },
-    "fraction.js": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz",
-      "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA=="
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "fsevents": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-      "optional": true
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-    },
-    "functional-red-black-tree": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
-      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
-      "dev": true
-    },
-    "gensync": {
-      "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
-      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
-    },
-    "get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-      "dev": true
-    },
-    "get-intrinsic": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
-      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
-      "requires": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.1"
-      }
-    },
-    "get-stream": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
-      "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
-      "dev": true
-    },
-    "get-symbol-description": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
-      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "get-intrinsic": "^1.1.1"
-      }
-    },
-    "glob": {
-      "version": "7.1.7",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
-      "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
-      "dev": true,
-      "requires": {
-        "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-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "globals": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
-      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
-    },
-    "globby": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-      "dev": true,
-      "requires": {
-        "array-union": "^2.1.0",
-        "dir-glob": "^3.0.1",
-        "fast-glob": "^3.2.9",
-        "ignore": "^5.2.0",
-        "merge2": "^1.4.1",
-        "slash": "^3.0.0"
-      },
-      "dependencies": {
-        "ignore": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
-          "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
-          "dev": true
-        }
-      }
-    },
-    "got": {
-      "version": "9.6.0",
-      "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
-      "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
-      "dev": true,
-      "requires": {
-        "@sindresorhus/is": "^0.14.0",
-        "@szmarczak/http-timer": "^1.1.2",
-        "cacheable-request": "^6.0.0",
-        "decompress-response": "^3.3.0",
-        "duplexer3": "^0.1.4",
-        "get-stream": "^4.1.0",
-        "lowercase-keys": "^1.0.1",
-        "mimic-response": "^1.0.1",
-        "p-cancelable": "^1.0.0",
-        "to-readable-stream": "^1.0.0",
-        "url-parse-lax": "^3.0.0"
-      },
-      "dependencies": {
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        }
-      }
-    },
-    "graphql": {
-      "version": "15.8.0",
-      "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
-      "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
-      "dev": true
-    },
-    "graphql-config": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.4.1.tgz",
-      "integrity": "sha512-g9WyK4JZl1Ko++FSyE5Ir2g66njfxGzrDDhBOwnkoWf/t3TnnZG6BBkWP+pkqVJ5pqMJGPKHNrbew8jRxStjhw==",
-      "dev": true,
-      "requires": {
-        "@endemolshinegroup/cosmiconfig-typescript-loader": "3.0.2",
-        "@graphql-tools/graphql-file-loader": "^6.0.0",
-        "@graphql-tools/json-file-loader": "^6.0.0",
-        "@graphql-tools/load": "^6.0.0",
-        "@graphql-tools/merge": "6.0.0 - 6.2.14",
-        "@graphql-tools/url-loader": "^6.0.0",
-        "@graphql-tools/utils": "^7.0.0",
-        "cosmiconfig": "7.0.0",
-        "cosmiconfig-toml-loader": "1.0.0",
-        "minimatch": "3.0.4",
-        "string-env-interpolation": "1.0.1"
-      },
-      "dependencies": {
-        "@graphql-tools/merge": {
-          "version": "6.2.14",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz",
-          "integrity": "sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow==",
-          "dev": true,
-          "requires": {
-            "@graphql-tools/schema": "^7.0.0",
-            "@graphql-tools/utils": "^7.7.0",
-            "tslib": "~2.2.0"
-          }
-        },
-        "@graphql-tools/schema": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
-          "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
-          "dev": true,
-          "requires": {
-            "@graphql-tools/utils": "^7.1.2",
-            "tslib": "~2.2.0",
-            "value-or-promise": "1.0.6"
-          }
-        },
-        "cosmiconfig": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
-          "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
-          "dev": true,
-          "requires": {
-            "@types/parse-json": "^4.0.0",
-            "import-fresh": "^3.2.1",
-            "parse-json": "^5.0.0",
-            "path-type": "^4.0.0",
-            "yaml": "^1.10.0"
-          }
-        },
-        "tslib": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
-          "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
-          "dev": true
-        },
-        "value-or-promise": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
-          "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
-          "dev": true
-        }
-      }
-    },
-    "graphql-request": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz",
-      "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==",
-      "dev": true,
-      "requires": {
-        "cross-fetch": "^3.0.6",
-        "extract-files": "^9.0.0",
-        "form-data": "^3.0.0"
-      },
-      "dependencies": {
-        "form-data": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-          "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-          "dev": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.8",
-            "mime-types": "^2.1.12"
-          }
-        }
-      }
-    },
-    "graphql-tag": {
-      "version": "2.12.6",
-      "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
-      "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.1.0"
-      }
-    },
-    "graphql-ws": {
-      "version": "4.9.0",
-      "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz",
-      "integrity": "sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==",
-      "dev": true,
-      "requires": {}
-    },
-    "gzip-size": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
-      "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
-      "dev": true,
-      "requires": {
-        "duplexer": "^0.1.2"
-      }
-    },
-    "has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-      "requires": {
-        "function-bind": "^1.1.1"
-      }
-    },
-    "has-ansi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
-      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        }
-      }
-    },
-    "has-bigints": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
-      "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
-      "dev": true
-    },
-    "has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-    },
-    "has-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
-      "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
-    },
-    "has-tostringtag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
-      "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "header-case": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
-      "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
-      "dev": true,
-      "requires": {
-        "capital-case": "^1.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "http-cache-semantics": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
-      "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
-      "dev": true
-    },
-    "http-proxy-agent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
-      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
-      "dev": true,
-      "requires": {
-        "@tootallnate/once": "1",
-        "agent-base": "6",
-        "debug": "4"
-      }
-    },
-    "https-proxy-agent": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
-      "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
-      "dev": true,
-      "requires": {
-        "agent-base": "6",
-        "debug": "4"
-      }
-    },
-    "human-signals": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
-      "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
-      "dev": true
-    },
-    "humanize-ms": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
-      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
-      "requires": {
-        "ms": "^2.0.0"
-      }
-    },
-    "husky": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz",
-      "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==",
-      "dev": true
-    },
-    "iconv-lite": {
-      "version": "0.4.24",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-      "dev": true,
-      "requires": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      }
-    },
-    "ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-      "dev": true
-    },
-    "ignore": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
-      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
-      "dev": true
-    },
-    "immutability-helper": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz",
-      "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ=="
-    },
-    "immutable": {
-      "version": "3.7.6",
-      "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz",
-      "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=",
-      "dev": true
-    },
-    "import-cwd": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
-      "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
-      "requires": {
-        "import-from": "^3.0.0"
-      }
-    },
-    "import-fresh": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-      "requires": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      },
-      "dependencies": {
-        "resolve-from": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-          "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
-        }
-      }
-    },
-    "import-from": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
-      "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
-      "requires": {
-        "resolve-from": "^5.0.0"
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true
-    },
-    "indent-string": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
-      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "dev": true,
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-    },
-    "ini": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
-      "dev": true
-    },
-    "inquirer": {
-      "version": "7.3.3",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
-      "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.1.0",
-        "cli-cursor": "^3.1.0",
-        "cli-width": "^3.0.0",
-        "external-editor": "^3.0.3",
-        "figures": "^3.0.0",
-        "lodash": "^4.17.19",
-        "mute-stream": "0.0.8",
-        "run-async": "^2.4.0",
-        "rxjs": "^6.6.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0",
-        "through": "^2.3.6"
-      }
-    },
-    "internal-slot": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
-      "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
-      "dev": true,
-      "requires": {
-        "get-intrinsic": "^1.1.0",
-        "has": "^1.0.3",
-        "side-channel": "^1.0.4"
-      }
-    },
-    "invariant": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
-      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
-      "dev": true,
-      "requires": {
-        "loose-envify": "^1.0.0"
-      }
-    },
-    "is-absolute": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
-      "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
-      "dev": true,
-      "requires": {
-        "is-relative": "^1.0.0",
-        "is-windows": "^1.0.1"
-      }
-    },
-    "is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
-    },
-    "is-bigint": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
-      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
-      "dev": true,
-      "requires": {
-        "has-bigints": "^1.0.1"
-      }
-    },
-    "is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "requires": {
-        "binary-extensions": "^2.0.0"
-      }
-    },
-    "is-boolean-object": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
-      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-callable": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
-      "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
-      "dev": true
-    },
-    "is-core-module": {
-      "version": "2.8.1",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
-      "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
-      "requires": {
-        "has": "^1.0.3"
-      }
-    },
-    "is-date-object": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
-      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
-    },
-    "is-fullwidth-code-point": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-      "dev": true
-    },
-    "is-glob": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
-      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "requires": {
-        "is-extglob": "^2.1.1"
-      }
-    },
-    "is-lower-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz",
-      "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "is-negative-zero": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-      "dev": true
-    },
-    "is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
-    },
-    "is-number-object": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
-      "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-observable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
-      "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
-      "dev": true,
-      "requires": {
-        "symbol-observable": "^1.1.0"
-      }
-    },
-    "is-promise": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
-      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
-      "dev": true
-    },
-    "is-regex": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
-      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-relative": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
-      "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
-      "dev": true,
-      "requires": {
-        "is-unc-path": "^1.0.0"
-      }
-    },
-    "is-shared-array-buffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
-      "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
-      "dev": true
-    },
-    "is-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
-      "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
-      "dev": true
-    },
-    "is-string": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
-      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-symbol": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
-      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "is-unc-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
-      "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
-      "dev": true,
-      "requires": {
-        "unc-path-regex": "^0.1.2"
-      }
-    },
-    "is-unicode-supported": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
-      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
-      "dev": true
-    },
-    "is-upper-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz",
-      "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "is-weakref": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
-      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "is-windows": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
-      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
-      "dev": true
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "isomorphic-fetch": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz",
-      "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==",
-      "requires": {
-        "node-fetch": "^2.6.1",
-        "whatwg-fetch": "^3.4.1"
-      }
-    },
-    "isomorphic-ws": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
-      "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
-      "dev": true,
-      "requires": {}
-    },
-    "iterall": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
-      "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
-      "dev": true
-    },
-    "jest-worker": {
-      "version": "27.0.0-next.5",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz",
-      "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==",
-      "requires": {
-        "@types/node": "*",
-        "merge-stream": "^2.0.0",
-        "supports-color": "^8.0.0"
-      },
-      "dependencies": {
-        "supports-color": {
-          "version": "8.1.1",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-          "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "js-cookie": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
-      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
-    },
-    "js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-    },
-    "js-yaml": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dev": true,
-      "requires": {
-        "argparse": "^2.0.1"
-      }
-    },
-    "jsesc": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
-    },
-    "json-buffer": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
-      "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
-      "dev": true
-    },
-    "json-parse-even-better-errors": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
-      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
-    },
-    "json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
-      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-      "dev": true,
-      "requires": {
-        "jsonify": "~0.0.0"
-      }
-    },
-    "json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
-      "dev": true
-    },
-    "json-to-pretty-yaml": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz",
-      "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=",
-      "dev": true,
-      "requires": {
-        "remedial": "^1.0.7",
-        "remove-trailing-spaces": "^1.0.6"
-      }
-    },
-    "json5": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
-      "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
-      "requires": {
-        "minimist": "^1.2.5"
-      }
-    },
-    "jsonify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-      "dev": true
-    },
-    "jsonwebtoken": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
-      "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
-      "dev": true,
-      "requires": {
-        "jws": "^3.2.2",
-        "lodash.includes": "^4.3.0",
-        "lodash.isboolean": "^3.0.3",
-        "lodash.isinteger": "^4.0.4",
-        "lodash.isnumber": "^3.0.3",
-        "lodash.isplainobject": "^4.0.6",
-        "lodash.isstring": "^4.0.1",
-        "lodash.once": "^4.0.0",
-        "ms": "^2.1.1",
-        "semver": "^5.6.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-          "dev": true
-        }
-      }
-    },
-    "jsx-ast-utils": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
-      "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
-      "dev": true,
-      "requires": {
-        "array-includes": "^3.1.3",
-        "object.assign": "^4.1.2"
-      }
-    },
-    "jwa": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
-      "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
-      "dev": true,
-      "requires": {
-        "buffer-equal-constant-time": "1.0.1",
-        "ecdsa-sig-formatter": "1.0.11",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "jws": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
-      "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
-      "dev": true,
-      "requires": {
-        "jwa": "^1.4.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "keen-slider": {
-      "version": "6.6.3",
-      "resolved": "https://registry.npmjs.org/keen-slider/-/keen-slider-6.6.3.tgz",
-      "integrity": "sha512-IDJh3CNeiCY/0N/ht+4/TUUD0plS064ijO8AcQ2sJXS07PhJOnv7kNUVsQdNh+t8Vmmy3sJ+sHNubSGdrEcMlQ=="
-    },
-    "keyv": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
-      "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
-      "dev": true,
-      "requires": {
-        "json-buffer": "3.0.0"
-      }
-    },
-    "language-subtag-registry": {
-      "version": "0.3.21",
-      "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
-      "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
-      "dev": true
-    },
-    "language-tags": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
-      "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
-      "dev": true,
-      "requires": {
-        "language-subtag-registry": "~0.3.2"
-      }
-    },
-    "latest-version": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
-      "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
-      "dev": true,
-      "requires": {
-        "package-json": "^6.3.0"
-      }
-    },
-    "levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
-      }
-    },
-    "lilconfig": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz",
-      "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA=="
-    },
-    "lines-and-columns": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
-      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
-    },
-    "lint-staged": {
-      "version": "12.1.7",
-      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.7.tgz",
-      "integrity": "sha512-bltv/ejiLWtowExpjU+s5z8j1Byjg9AlmaAjMmqNbIicY69u6sYIwXGg0dCn0TlkrrY2CphtHIXAkbZ+1VoWQQ==",
-      "dev": true,
-      "requires": {
-        "cli-truncate": "^3.1.0",
-        "colorette": "^2.0.16",
-        "commander": "^8.3.0",
-        "debug": "^4.3.3",
-        "execa": "^5.1.1",
-        "lilconfig": "2.0.4",
-        "listr2": "^3.13.5",
-        "micromatch": "^4.0.4",
-        "normalize-path": "^3.0.0",
-        "object-inspect": "^1.11.1",
-        "string-argv": "^0.3.1",
-        "supports-color": "^9.2.1",
-        "yaml": "^1.10.2"
-      },
-      "dependencies": {
-        "colorette": {
-          "version": "2.0.16",
-          "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
-          "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "9.2.1",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
-          "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
-          "dev": true
-        }
-      }
-    },
-    "listr": {
-      "version": "0.14.3",
-      "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
-      "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
-      "dev": true,
-      "requires": {
-        "@samverschueren/stream-to-observable": "^0.3.0",
-        "is-observable": "^1.1.0",
-        "is-promise": "^2.1.0",
-        "is-stream": "^1.1.0",
-        "listr-silent-renderer": "^1.1.1",
-        "listr-update-renderer": "^0.5.0",
-        "listr-verbose-renderer": "^0.5.0",
-        "p-map": "^2.0.0",
-        "rxjs": "^6.3.3"
-      },
-      "dependencies": {
-        "is-promise": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
-          "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
-          "dev": true
-        },
-        "is-stream": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-          "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-          "dev": true
-        }
-      }
-    },
-    "listr-silent-renderer": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
-      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
-      "dev": true
-    },
-    "listr-update-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
-      "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-truncate": "^0.2.1",
-        "elegant-spinner": "^1.0.1",
-        "figures": "^1.7.0",
-        "indent-string": "^3.0.0",
-        "log-symbols": "^1.0.2",
-        "log-update": "^2.3.0",
-        "strip-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "cli-truncate": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
-          "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
-          "dev": true,
-          "requires": {
-            "slice-ansi": "0.0.4",
-            "string-width": "^1.0.1"
-          }
-        },
-        "escape-string-regexp": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-          "dev": true
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "indent-string": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
-          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "^1.0.0"
-          }
-        },
-        "slice-ansi": {
-          "version": "0.0.4",
-          "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
-          "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "listr-verbose-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
-      "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.1",
-        "cli-cursor": "^2.1.0",
-        "date-fns": "^1.27.2",
-        "figures": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-          "dev": true,
-          "requires": {
-            "color-convert": "^1.9.0"
-          }
-        },
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "cli-cursor": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^2.0.0"
-          }
-        },
-        "color-convert": {
-          "version": "1.9.3",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-          "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-          "dev": true,
-          "requires": {
-            "color-name": "1.1.3"
-          }
-        },
-        "color-name": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-          "dev": true
-        },
-        "escape-string-regexp": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-          "dev": true
-        },
-        "figures": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
-          "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "mimic-fn": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-          "dev": true
-        },
-        "onetime": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          }
-        },
-        "restore-cursor": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-          "dev": true,
-          "requires": {
-            "onetime": "^2.0.0",
-            "signal-exit": "^3.0.2"
-          }
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "listr2": {
-      "version": "3.14.0",
-      "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
-      "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
-      "dev": true,
-      "requires": {
-        "cli-truncate": "^2.1.0",
-        "colorette": "^2.0.16",
-        "log-update": "^4.0.0",
-        "p-map": "^4.0.0",
-        "rfdc": "^1.3.0",
-        "rxjs": "^7.5.1",
-        "through": "^2.3.8",
-        "wrap-ansi": "^7.0.0"
-      },
-      "dependencies": {
-        "cli-truncate": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
-          "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
-          "dev": true,
-          "requires": {
-            "slice-ansi": "^3.0.0",
-            "string-width": "^4.2.0"
-          }
-        },
-        "colorette": {
-          "version": "2.0.16",
-          "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
-          "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
-          "dev": true
-        },
-        "log-update": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
-          "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
-          "dev": true,
-          "requires": {
-            "ansi-escapes": "^4.3.0",
-            "cli-cursor": "^3.1.0",
-            "slice-ansi": "^4.0.0",
-            "wrap-ansi": "^6.2.0"
-          },
-          "dependencies": {
-            "slice-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
-              "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
-              "dev": true,
-              "requires": {
-                "ansi-styles": "^4.0.0",
-                "astral-regex": "^2.0.0",
-                "is-fullwidth-code-point": "^3.0.0"
-              }
-            },
-            "wrap-ansi": {
-              "version": "6.2.0",
-              "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-              "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-              "dev": true,
-              "requires": {
-                "ansi-styles": "^4.0.0",
-                "string-width": "^4.1.0",
-                "strip-ansi": "^6.0.0"
-              }
-            }
-          }
-        },
-        "p-map": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
-          "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
-          "dev": true,
-          "requires": {
-            "aggregate-error": "^3.0.0"
-          }
-        },
-        "rxjs": {
-          "version": "7.5.2",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz",
-          "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==",
-          "dev": true,
-          "requires": {
-            "tslib": "^2.1.0"
-          }
-        },
-        "slice-ansi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
-          "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "astral-regex": "^2.0.0",
-            "is-fullwidth-code-point": "^3.0.0"
-          }
-        }
-      }
-    },
-    "loader-utils": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
-      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
-      "requires": {
-        "big.js": "^5.2.2",
-        "emojis-list": "^2.0.0",
-        "json5": "^1.0.1"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        }
-      }
-    },
-    "locate-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
-      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-      "dev": true,
-      "requires": {
-        "p-locate": "^2.0.0",
-        "path-exists": "^3.0.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
-    },
-    "lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
-    },
-    "lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
-    },
-    "lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
-    },
-    "lodash.get": {
-      "version": "4.4.2",
-      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
-      "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
-      "dev": true
-    },
-    "lodash.includes": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
-      "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
-    },
-    "lodash.isboolean": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
-      "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=",
-      "dev": true
-    },
-    "lodash.isdate": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-4.0.1.tgz",
-      "integrity": "sha1-NaVDZzuddhEN5BFLMsxXcEin82Y="
-    },
-    "lodash.isinteger": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
-      "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=",
-      "dev": true
-    },
-    "lodash.isnumber": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
-      "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=",
-      "dev": true
-    },
-    "lodash.isplainobject": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
-      "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
-    },
-    "lodash.isstring": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
-      "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
-      "dev": true
-    },
-    "lodash.merge": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
-      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
-      "dev": true
-    },
-    "lodash.once": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
-      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
-      "dev": true
-    },
-    "lodash.random": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.random/-/lodash.random-3.2.0.tgz",
-      "integrity": "sha1-luJOdjMzGZEw0sni/Vf5FwPMJi0="
-    },
-    "lodash.snakecase": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
-      "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
-    },
-    "lodash.throttle": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
-      "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
-    },
-    "lodash.uniq": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
-      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
-    },
-    "log-symbols": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
-      "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
-      "dev": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "is-unicode-supported": "^0.1.0"
-      }
-    },
-    "log-update": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
-      "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^3.0.0",
-        "cli-cursor": "^2.0.0",
-        "wrap-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-escapes": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
-          "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
-          "dev": true
-        },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "cli-cursor": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^2.0.0"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "mimic-fn": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-          "dev": true
-        },
-        "onetime": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          }
-        },
-        "restore-cursor": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-          "dev": true,
-          "requires": {
-            "onetime": "^2.0.0",
-            "signal-exit": "^3.0.2"
-          }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "wrap-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
-          "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0"
-          }
-        }
-      }
-    },
-    "loose-envify": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
-      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-      "requires": {
-        "js-tokens": "^3.0.0 || ^4.0.0"
-      }
-    },
-    "lower-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
-      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "lower-case-first": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz",
-      "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-      "dev": true
-    },
-    "lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-      "requires": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "make-error": {
-      "version": "1.3.6",
-      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
-      "devOptional": true
-    },
-    "map-cache": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
-      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true
-    },
-    "matcher": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz",
-      "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==",
-      "requires": {
-        "escape-string-regexp": "^4.0.0"
-      }
-    },
-    "merge-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
-      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
-    },
-    "merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
-    },
-    "meros": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz",
-      "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "micromatch": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
-      "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
-      "requires": {
-        "braces": "^3.0.1",
-        "picomatch": "^2.2.3"
-      }
-    },
-    "mime": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
-      "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
-      "dev": true
-    },
-    "mime-db": {
-      "version": "1.48.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
-      "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ=="
-    },
-    "mime-types": {
-      "version": "2.1.31",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
-      "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
-      "requires": {
-        "mime-db": "1.48.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true
-    },
-    "mimic-response": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
-      "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
-      "dev": true
-    },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-      "dev": true,
-      "requires": {
-        "brace-expansion": "^1.1.7"
-      }
-    },
-    "minimist": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
-    },
-    "mkdirp": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
-      "dev": true
-    },
-    "ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
-    "mute-stream": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
-      "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
-      "dev": true
-    },
-    "nanoid": {
-      "version": "3.1.32",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.32.tgz",
-      "integrity": "sha512-F8mf7R3iT9bvThBoW4tGXhXFHCctyCiUUPrWF8WaTqa3h96d9QybkSeba43XVOOE3oiLfkVDe4bT8MeGmkrTxw=="
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
-      "dev": true
-    },
-    "next": {
-      "version": "12.0.8",
-      "resolved": "https://registry.npmjs.org/next/-/next-12.0.8.tgz",
-      "integrity": "sha512-g5c1Kuh1F8tSXJn2rVvzYBzqe9EXaR6+rY3/KrQ7y0D9FueRLfHI35wM0DRadDcPSc3+vncspfhYH3jnYE/KjA==",
-      "requires": {
-        "@next/env": "12.0.8",
-        "@next/react-refresh-utils": "12.0.8",
-        "@next/swc-android-arm64": "12.0.8",
-        "@next/swc-darwin-arm64": "12.0.8",
-        "@next/swc-darwin-x64": "12.0.8",
-        "@next/swc-linux-arm-gnueabihf": "12.0.8",
-        "@next/swc-linux-arm64-gnu": "12.0.8",
-        "@next/swc-linux-arm64-musl": "12.0.8",
-        "@next/swc-linux-x64-gnu": "12.0.8",
-        "@next/swc-linux-x64-musl": "12.0.8",
-        "@next/swc-win32-arm64-msvc": "12.0.8",
-        "@next/swc-win32-ia32-msvc": "12.0.8",
-        "@next/swc-win32-x64-msvc": "12.0.8",
-        "caniuse-lite": "^1.0.30001283",
-        "jest-worker": "27.0.0-next.5",
-        "node-fetch": "2.6.1",
-        "postcss": "8.2.15",
-        "react-is": "17.0.2",
-        "react-refresh": "0.8.3",
-        "stream-browserify": "3.0.0",
-        "styled-jsx": "5.0.0-beta.6",
-        "use-subscription": "1.5.1"
-      },
-      "dependencies": {
-        "node-fetch": {
-          "version": "2.6.1",
-          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
-          "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
-        },
-        "postcss": {
-          "version": "8.2.15",
-          "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
-          "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
-          "requires": {
-            "colorette": "^1.2.2",
-            "nanoid": "^3.1.23",
-            "source-map": "^0.6.1"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-        }
-      }
-    },
-    "next-seo": {
-      "version": "4.28.1",
-      "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.28.1.tgz",
-      "integrity": "sha512-WZgwdM+UhpNF3A37zFllzmPhnOVJ9vYeYlc0n3Z/kYfz/QQgy8NEdncNNggS9dU4JD8xriaCcyknhy5OsrFsJw==",
-      "requires": {}
-    },
-    "next-themes": {
-      "version": "0.0.15",
-      "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.0.15.tgz",
-      "integrity": "sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==",
-      "requires": {}
-    },
-    "no-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
-      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
-      "dev": true,
-      "requires": {
-        "lower-case": "^2.0.2",
-        "tslib": "^2.0.3"
-      }
-    },
-    "node-fetch": {
-      "version": "2.6.6",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
-      "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
-      "requires": {
-        "whatwg-url": "^5.0.0"
-      }
-    },
-    "node-int64": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
-      "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
-      "dev": true
-    },
-    "node-releases": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
-      "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA=="
-    },
-    "normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
-    },
-    "normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
-    },
-    "normalize-url": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
-      "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
-      "dev": true
-    },
-    "npm-run-path": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
-      "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
-      "dev": true,
-      "requires": {
-        "path-key": "^3.0.0"
-      }
-    },
-    "nullthrows": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
-      "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
-      "dev": true
-    },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
-    },
-    "object-hash": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
-      "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
-    },
-    "object-inspect": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
-      "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
-    },
-    "object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-      "dev": true
-    },
-    "object-keys-normalizer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/object-keys-normalizer/-/object-keys-normalizer-1.0.1.tgz",
-      "integrity": "sha1-2xeNu6Xkx7GLQIN8jvgzZe6TSOc=",
-      "requires": {
-        "lodash.camelcase": "^4.3.0",
-        "lodash.snakecase": "^4.1.1"
-      }
-    },
-    "object-merge-advanced": {
-      "version": "12.0.3",
-      "resolved": "https://registry.npmjs.org/object-merge-advanced/-/object-merge-advanced-12.0.3.tgz",
-      "integrity": "sha512-xQIf2Vup1rpKiHr2tQca5jyNYgT4O0kNxOfAp3ZNonm2hS+5yaJgI0Czdk/QMy52bcRwQKX3uc3H8XtAiiYfVA==",
-      "requires": {
-        "@babel/runtime": "^7.12.13",
-        "array-includes-with-glob": "^3.0.6",
-        "lodash.clonedeep": "^4.5.0",
-        "lodash.includes": "^4.3.0",
-        "lodash.isdate": "^4.0.1",
-        "lodash.isplainobject": "^4.0.6",
-        "lodash.uniq": "^4.5.0",
-        "util-nonempty": "^3.0.6"
-      }
-    },
-    "object.assign": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
-      "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "has-symbols": "^1.0.1",
-        "object-keys": "^1.1.1"
-      }
-    },
-    "object.entries": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
-      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      }
-    },
-    "object.fromentries": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
-      "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      }
-    },
-    "object.hasown": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
-      "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      }
-    },
-    "object.values": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
-      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1"
-      }
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "dev": true,
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "onetime": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
-      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^2.1.0"
-      }
-    },
-    "opener": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
-      "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
-      "dev": true
-    },
-    "optionator": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
-      "dev": true,
-      "requires": {
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0",
-        "word-wrap": "^1.2.3"
-      }
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true
-    },
-    "p-cancelable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
-      "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
-      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-      "dev": true,
-      "requires": {
-        "yocto-queue": "^0.1.0"
-      }
-    },
-    "p-locate": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
-      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-      "dev": true,
-      "requires": {
-        "p-limit": "^1.1.0"
-      },
-      "dependencies": {
-        "p-limit": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
-          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
-          "dev": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
-          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-          "dev": true
-        }
-      }
-    },
-    "p-map": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
-      "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
-      "dev": true
-    },
-    "p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-      "dev": true
-    },
-    "package-json": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
-      "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
-      "dev": true,
-      "requires": {
-        "got": "^9.6.0",
-        "registry-auth-token": "^4.0.0",
-        "registry-url": "^5.0.0",
-        "semver": "^6.2.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        }
-      }
-    },
-    "param-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
-      "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
-      "dev": true,
-      "requires": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "requires": {
-        "callsites": "^3.0.0"
-      }
-    },
-    "parse-filepath": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
-      "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
-      "dev": true,
-      "requires": {
-        "is-absolute": "^1.0.0",
-        "map-cache": "^0.2.0",
-        "path-root": "^0.1.1"
-      }
-    },
-    "parse-json": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
-      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "error-ex": "^1.3.1",
-        "json-parse-even-better-errors": "^2.3.0",
-        "lines-and-columns": "^1.1.6"
-      }
-    },
-    "pascal-case": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
-      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
-      "dev": true,
-      "requires": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "path-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
-      "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
-      "dev": true,
-      "requires": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "path-exists": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-      "dev": true
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true
-    },
-    "path-key": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
-      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-      "dev": true
-    },
-    "path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-    },
-    "path-root": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
-      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
-      "dev": true,
-      "requires": {
-        "path-root-regex": "^0.1.0"
-      }
-    },
-    "path-root-regex": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
-      "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
-      "dev": true
-    },
-    "path-type": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
-      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
-    },
-    "picocolors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-    },
-    "picomatch": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
-      "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
-    },
-    "postcss": {
-      "version": "8.4.5",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
-      "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
-      "requires": {
-        "nanoid": "^3.1.30",
-        "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.1"
-      }
-    },
-    "postcss-attribute-case-insensitive": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz",
-      "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.2"
-      }
-    },
-    "postcss-color-functional-notation": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz",
-      "integrity": "sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-color-hex-alpha": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz",
-      "integrity": "sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-color-rebeccapurple": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz",
-      "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-custom-media": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz",
-      "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-custom-properties": {
-      "version": "12.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.2.tgz",
-      "integrity": "sha512-Zvd+k66PHBYYPiXtdjNVx2l54Y9kQC7K1eUHzBND97RW/ayNxfaPOW+9NL3r0nsVbX1asPLdkDj585Wg0NBJCA==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-custom-selectors": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz",
-      "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.4"
-      }
-    },
-    "postcss-dir-pseudo-class": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz",
-      "integrity": "sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "postcss-double-position-gradients": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz",
-      "integrity": "sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-env-function": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.4.tgz",
-      "integrity": "sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-flexbugs-fixes": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
-      "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-focus-visible": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz",
-      "integrity": "sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "postcss-focus-within": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz",
-      "integrity": "sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "postcss-font-variant": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
-      "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-gap-properties": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz",
-      "integrity": "sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-image-set-function": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz",
-      "integrity": "sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-initial": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
-      "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-js": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
-      "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
-      "requires": {
-        "camelcase-css": "^2.0.1"
-      }
-    },
-    "postcss-lab-function": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz",
-      "integrity": "sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-load-config": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz",
-      "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==",
-      "requires": {
-        "import-cwd": "^3.0.0",
-        "lilconfig": "^2.0.3",
-        "yaml": "^1.10.2"
-      }
-    },
-    "postcss-logical": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.3.tgz",
-      "integrity": "sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-media-minmax": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
-      "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-nested": {
-      "version": "5.0.6",
-      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
-      "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
-      "requires": {
-        "postcss-selector-parser": "^6.0.6"
-      }
-    },
-    "postcss-nesting": {
-      "version": "10.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz",
-      "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "postcss-overflow-shorthand": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz",
-      "integrity": "sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-page-break": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
-      "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-place": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.3.tgz",
-      "integrity": "sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ==",
-      "dev": true,
-      "requires": {
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "postcss-preset-env": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz",
-      "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==",
-      "dev": true,
-      "requires": {
-        "autoprefixer": "^10.4.2",
-        "browserslist": "^4.19.1",
-        "caniuse-lite": "^1.0.30001299",
-        "css-blank-pseudo": "^3.0.2",
-        "css-has-pseudo": "^3.0.3",
-        "css-prefers-color-scheme": "^6.0.2",
-        "cssdb": "^5.0.0",
-        "postcss-attribute-case-insensitive": "^5.0.0",
-        "postcss-color-functional-notation": "^4.2.1",
-        "postcss-color-hex-alpha": "^8.0.2",
-        "postcss-color-rebeccapurple": "^7.0.2",
-        "postcss-custom-media": "^8.0.0",
-        "postcss-custom-properties": "^12.1.2",
-        "postcss-custom-selectors": "^6.0.0",
-        "postcss-dir-pseudo-class": "^6.0.3",
-        "postcss-double-position-gradients": "^3.0.4",
-        "postcss-env-function": "^4.0.4",
-        "postcss-focus-visible": "^6.0.3",
-        "postcss-focus-within": "^5.0.3",
-        "postcss-font-variant": "^5.0.0",
-        "postcss-gap-properties": "^3.0.2",
-        "postcss-image-set-function": "^4.0.4",
-        "postcss-initial": "^4.0.1",
-        "postcss-lab-function": "^4.0.3",
-        "postcss-logical": "^5.0.3",
-        "postcss-media-minmax": "^5.0.0",
-        "postcss-nesting": "^10.1.2",
-        "postcss-overflow-shorthand": "^3.0.2",
-        "postcss-page-break": "^3.0.4",
-        "postcss-place": "^7.0.3",
-        "postcss-pseudo-class-any-link": "^7.0.2",
-        "postcss-replace-overflow-wrap": "^4.0.0",
-        "postcss-selector-not": "^5.0.0"
-      }
-    },
-    "postcss-pseudo-class-any-link": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz",
-      "integrity": "sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA==",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.8"
-      }
-    },
-    "postcss-replace-overflow-wrap": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
-      "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
-      "dev": true,
-      "requires": {}
-    },
-    "postcss-selector-not": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz",
-      "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==",
-      "dev": true,
-      "requires": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "postcss-selector-parser": {
-      "version": "6.0.8",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz",
-      "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==",
-      "requires": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      }
-    },
-    "postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
-    },
-    "prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-      "dev": true
-    },
-    "prepend-http": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
-      "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
-      "dev": true
-    },
-    "prettier": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
-      "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
-      "dev": true
-    },
-    "progress": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
-      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
-      "dev": true
-    },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
-      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
-      "dev": true,
-      "requires": {
-        "asap": "~2.0.3"
-      }
-    },
-    "prop-types": {
-      "version": "15.8.1",
-      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
-      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
-      "dev": true,
-      "requires": {
-        "loose-envify": "^1.4.0",
-        "object-assign": "^4.1.1",
-        "react-is": "^16.13.1"
-      },
-      "dependencies": {
-        "react-is": {
-          "version": "16.13.1",
-          "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
-          "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
-          "dev": true
-        }
-      }
-    },
-    "pump": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "punycode": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-      "dev": true
-    },
-    "qs": {
-      "version": "6.10.1",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
-      "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
-      "requires": {
-        "side-channel": "^1.0.4"
-      }
-    },
-    "queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
-    },
-    "quick-lru": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
-      "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
-    },
-    "rc": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "dev": true,
-      "requires": {
-        "deep-extend": "^0.6.0",
-        "ini": "~1.3.0",
-        "minimist": "^1.2.0",
-        "strip-json-comments": "~2.0.1"
-      },
-      "dependencies": {
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-          "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-          "dev": true
-        }
-      }
-    },
-    "react": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
-      "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
-      "requires": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
-      }
-    },
-    "react-dom": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
-      "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
-      "requires": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1",
-        "scheduler": "^0.20.2"
-      }
-    },
-    "react-fast-marquee": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.3.1.tgz",
-      "integrity": "sha512-JUlQMU+IVVNKV+D4BRfRaNEaBj+VyHcI0uupBKyeFhkSY2GBkKw7oGvpNdCkPtKd8Q3H0M5eY7PyUj7AdmKCRA==",
-      "requires": {}
-    },
-    "react-is": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
-      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
-    },
-    "react-merge-refs": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
-      "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ=="
-    },
-    "react-refresh": {
-      "version": "0.8.3",
-      "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
-      "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg=="
-    },
-    "react-use-measure": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
-      "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
-      "requires": {
-        "debounce": "^1.2.1"
-      }
-    },
-    "readable-stream": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-      "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-      "requires": {
-        "inherits": "^2.0.3",
-        "string_decoder": "^1.1.1",
-        "util-deprecate": "^1.0.1"
-      }
-    },
-    "readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "requires": {
-        "picomatch": "^2.2.1"
-      }
-    },
-    "regenerator-runtime": {
-      "version": "0.13.7",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
-      "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
-    },
-    "regexp.prototype.flags": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
-      "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "regexpp": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
-      "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
-      "dev": true
-    },
-    "registry-auth-token": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
-      "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
-      "dev": true,
-      "requires": {
-        "rc": "^1.2.8"
-      }
-    },
-    "registry-url": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
-      "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
-      "dev": true,
-      "requires": {
-        "rc": "^1.2.8"
-      }
-    },
-    "relay-compiler": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-12.0.0.tgz",
-      "integrity": "sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.14.0",
-        "@babel/generator": "^7.14.0",
-        "@babel/parser": "^7.14.0",
-        "@babel/runtime": "^7.0.0",
-        "@babel/traverse": "^7.14.0",
-        "@babel/types": "^7.0.0",
-        "babel-preset-fbjs": "^3.4.0",
-        "chalk": "^4.0.0",
-        "fb-watchman": "^2.0.0",
-        "fbjs": "^3.0.0",
-        "glob": "^7.1.1",
-        "immutable": "~3.7.6",
-        "invariant": "^2.2.4",
-        "nullthrows": "^1.1.1",
-        "relay-runtime": "12.0.0",
-        "signedsource": "^1.0.0",
-        "yargs": "^15.3.1"
-      },
-      "dependencies": {
-        "cliui": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^4.2.0",
-            "strip-ansi": "^6.0.0",
-            "wrap-ansi": "^6.2.0"
-          }
-        },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-          "dev": true
-        },
-        "wrap-ansi": {
-          "version": "6.2.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "y18n": {
-          "version": "4.0.3",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
-          "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
-          "dev": true
-        },
-        "yargs": {
-          "version": "15.4.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
-          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
-          "dev": true,
-          "requires": {
-            "cliui": "^6.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^4.1.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^4.2.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^18.1.2"
-          }
-        },
-        "yargs-parser": {
-          "version": "18.1.3",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "relay-runtime": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz",
-      "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==",
-      "dev": true,
-      "requires": {
-        "@babel/runtime": "^7.0.0",
-        "fbjs": "^3.0.0",
-        "invariant": "^2.2.4"
-      }
-    },
-    "remedial": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz",
-      "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==",
-      "dev": true
-    },
-    "remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "remove-trailing-spaces": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz",
-      "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==",
-      "dev": true
-    },
-    "replaceall": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz",
-      "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=",
-      "dev": true
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-main-filename": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
-      "dev": true
-    },
-    "resolve": {
-      "version": "1.21.0",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
-      "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
-      "requires": {
-        "is-core-module": "^2.8.0",
-        "path-parse": "^1.0.7",
-        "supports-preserve-symlinks-flag": "^1.0.0"
-      }
-    },
-    "resolve-from": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
-    },
-    "responselike": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
-      "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
-      "dev": true,
-      "requires": {
-        "lowercase-keys": "^1.0.0"
-      }
-    },
-    "restore-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
-      "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
-      "dev": true,
-      "requires": {
-        "onetime": "^5.1.0",
-        "signal-exit": "^3.0.2"
-      }
-    },
-    "retry": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
-      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs="
-    },
-    "reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
-    },
-    "rfdc": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
-      "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
-      "dev": true
-    },
-    "rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "dev": true,
-      "requires": {
-        "glob": "^7.1.3"
-      }
-    },
-    "run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
-      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
-      "dev": true
-    },
-    "run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "requires": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
-    "rxjs": {
-      "version": "6.6.7",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
-      "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.9.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "1.14.1",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-          "dev": true
-        }
-      }
-    },
-    "safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "scheduler": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
-      "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
-      "requires": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
-      }
-    },
-    "scuid": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz",
-      "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==",
-      "dev": true
-    },
-    "semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
-      "dev": true,
-      "requires": {
-        "lru-cache": "^6.0.0"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "sentence-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
-      "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
-      "dev": true,
-      "requires": {
-        "no-case": "^3.0.4",
-        "tslib": "^2.0.3",
-        "upper-case-first": "^2.0.2"
-      }
-    },
-    "set-blocking": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "setimmediate": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
-    },
-    "shebang-command": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
-      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-      "dev": true,
-      "requires": {
-        "shebang-regex": "^3.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
-      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-      "dev": true
-    },
-    "side-channel": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
-      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
-      "requires": {
-        "call-bind": "^1.0.0",
-        "get-intrinsic": "^1.0.2",
-        "object-inspect": "^1.9.0"
-      }
-    },
-    "signal-exit": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
-      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
-      "dev": true
-    },
-    "signedsource": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz",
-      "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=",
-      "dev": true
-    },
-    "sirv": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
-      "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==",
-      "dev": true,
-      "requires": {
-        "@polka/url": "^1.0.0-next.15",
-        "mime": "^2.3.1",
-        "totalist": "^1.0.0"
-      }
-    },
-    "slash": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
-      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
-      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^6.0.0",
-        "is-fullwidth-code-point": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
-          "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
-          "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
-          "dev": true
-        }
-      }
-    },
-    "snake-case": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
-      "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
-      "dev": true,
-      "requires": {
-        "dot-case": "^3.0.4",
-        "tslib": "^2.0.3"
-      }
-    },
-    "source-map": {
-      "version": "0.5.7",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
-    },
-    "source-map-js": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
-      "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA=="
-    },
-    "source-map-support": {
-      "version": "0.5.19",
-      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
-      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
-      "devOptional": true,
-      "requires": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "devOptional": true
-        }
-      }
-    },
-    "sponge-case": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz",
-      "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "stream-browserify": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
-      "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
-      "requires": {
-        "inherits": "~2.0.4",
-        "readable-stream": "^3.5.0"
-      }
-    },
-    "string_decoder": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-      "requires": {
-        "safe-buffer": "~5.2.0"
-      }
-    },
-    "string-argv": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
-      "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
-      "dev": true
-    },
-    "string-env-interpolation": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz",
-      "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==",
-      "dev": true
-    },
-    "string-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
-      "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
-    },
-    "string-width": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
-      "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
-      "dev": true,
-      "requires": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "dependencies": {
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-          "dev": true
-        }
-      }
-    },
-    "string.prototype.matchall": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
-      "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.19.1",
-        "get-intrinsic": "^1.1.1",
-        "has-symbols": "^1.0.2",
-        "internal-slot": "^1.0.3",
-        "regexp.prototype.flags": "^1.3.1",
-        "side-channel": "^1.0.4"
-      }
-    },
-    "string.prototype.trimend": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
-      "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "string.prototype.trimstart": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
-      "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^5.0.1"
-      }
-    },
-    "strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-      "dev": true
-    },
-    "strip-final-newline": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
-      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
-      "dev": true
-    },
-    "strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-      "dev": true
-    },
-    "stripe": {
-      "version": "8.196.0",
-      "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.196.0.tgz",
-      "integrity": "sha512-y9vIgPJUdfUJACUyf+Uji57bQTFBZluVW7Ia63Jp7QNwgp/kdoNKgLX0u0njNwRBmJpKX+BxLFJBHw+VRUYrMQ==",
-      "requires": {
-        "@types/node": ">=8.1.0",
-        "qs": "^6.6.0"
-      }
-    },
-    "styled-jsx": {
-      "version": "5.0.0-beta.6",
-      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0-beta.6.tgz",
-      "integrity": "sha512-b1cM7Xyp2r1lsNpvoZ6wmTI8qxD0557vH2feHakNU8LMkzfJDgTQMul6O7sSYY0GxQ73pKEN69hCDp71w6Q0nA==",
-      "requires": {
-        "@babel/plugin-syntax-jsx": "7.14.5",
-        "@babel/types": "7.15.0",
-        "convert-source-map": "1.7.0",
-        "loader-utils": "1.2.3",
-        "source-map": "0.7.3",
-        "string-hash": "1.1.3",
-        "stylis": "3.5.4",
-        "stylis-rule-sheet": "0.0.10"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.15.0",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
-          "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.14.9",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "convert-source-map": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
-          "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
-          "requires": {
-            "safe-buffer": "~5.1.1"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
-        },
-        "source-map": {
-          "version": "0.7.3",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
-          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
-        }
-      }
-    },
-    "stylis": {
-      "version": "3.5.4",
-      "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
-      "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
-    },
-    "stylis-rule-sheet": {
-      "version": "0.0.10",
-      "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
-      "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
-      "requires": {}
-    },
-    "subscriptions-transport-ws": {
-      "version": "0.9.19",
-      "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
-      "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
-      "dev": true,
-      "requires": {
-        "backo2": "^1.0.2",
-        "eventemitter3": "^3.1.0",
-        "iterall": "^1.2.1",
-        "symbol-observable": "^1.0.4",
-        "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
-      }
-    },
-    "supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "requires": {
-        "has-flag": "^4.0.0"
-      }
-    },
-    "supports-preserve-symlinks-flag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
-    },
-    "swap-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz",
-      "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "swell-js": {
-      "version": "4.0.0-next.0",
-      "resolved": "https://registry.npmjs.org/swell-js/-/swell-js-4.0.0-next.0.tgz",
-      "integrity": "sha512-OQ1FLft3ruKpQw5P0TiCzs/X2Ma95+Qz+I2Xzs4KC6v+zVaFVUGNs80dQdtjfInisWoFC7iFZF2AITgellVGAg==",
-      "requires": {
-        "@babel/runtime": "7.4.5",
-        "deepmerge": "4.2.2",
-        "isomorphic-fetch": "3.0.0",
-        "lodash": "4.17.21",
-        "object-keys-normalizer": "1.0.1",
-        "object-merge-advanced": "12.0.3",
-        "qs": "6.7.0"
-      },
-      "dependencies": {
-        "@babel/runtime": {
-          "version": "7.4.5",
-          "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
-          "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
-          "requires": {
-            "regenerator-runtime": "^0.13.2"
-          }
-        },
-        "qs": {
-          "version": "6.7.0",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
-          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
-        }
-      }
-    },
-    "swr": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/swr/-/swr-1.1.2.tgz",
-      "integrity": "sha512-UsM0eo5T+kRPyWFZtWRx2XR5qzohs/LS4lDC0GCyLpCYFmsfTk28UCVDbOE9+KtoXY4FnwHYiF+ZYEU3hnJ1lQ==",
-      "requires": {}
-    },
-    "symbol-observable": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
-      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
-      "dev": true
-    },
-    "sync-fetch": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz",
-      "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==",
-      "dev": true,
-      "requires": {
-        "buffer": "^5.7.0",
-        "node-fetch": "^2.6.1"
-      }
-    },
-    "tabbable": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz",
-      "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ=="
-    },
-    "tailwindcss": {
-      "version": "3.0.13",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.13.tgz",
-      "integrity": "sha512-raRPGFwQSGXn/3h0ttHND9jyPYfqk/ur2NXtlQuK25+ZnrCjlH1s1j4/oPswHGMoZzGNykUVycZ/LcROanUE0A==",
-      "requires": {
-        "arg": "^5.0.1",
-        "chalk": "^4.1.2",
-        "chokidar": "^3.5.2",
-        "color-name": "^1.1.4",
-        "cosmiconfig": "^7.0.1",
-        "detective": "^5.2.0",
-        "didyoumean": "^1.2.2",
-        "dlv": "^1.1.3",
-        "fast-glob": "^3.2.7",
-        "glob-parent": "^6.0.2",
-        "is-glob": "^4.0.3",
-        "normalize-path": "^3.0.0",
-        "object-hash": "^2.2.0",
-        "postcss-js": "^4.0.0",
-        "postcss-load-config": "^3.1.0",
-        "postcss-nested": "5.0.6",
-        "postcss-selector-parser": "^6.0.8",
-        "postcss-value-parser": "^4.2.0",
-        "quick-lru": "^5.1.1",
-        "resolve": "^1.21.0"
-      },
-      "dependencies": {
-        "glob-parent": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-          "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-          "requires": {
-            "is-glob": "^4.0.3"
-          }
-        }
-      }
-    },
-    "text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
-      "dev": true
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-      "dev": true
-    },
-    "title-case": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz",
-      "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "tmp": {
-      "version": "0.0.33",
-      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "~1.0.2"
-      }
-    },
-    "to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
-    },
-    "to-readable-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
-      "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
-      "dev": true
-    },
-    "to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "requires": {
-        "is-number": "^7.0.0"
-      }
-    },
-    "totalist": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
-      "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==",
-      "dev": true
-    },
-    "tr46": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
-      "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
-    },
-    "ts-log": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.4.tgz",
-      "integrity": "sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==",
-      "dev": true
-    },
-    "ts-node": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
-      "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
-      "devOptional": true,
-      "requires": {
-        "arg": "^4.1.0",
-        "create-require": "^1.1.0",
-        "diff": "^4.0.1",
-        "make-error": "^1.1.1",
-        "source-map-support": "^0.5.17",
-        "yn": "3.1.1"
-      },
-      "dependencies": {
-        "arg": {
-          "version": "4.1.3",
-          "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-          "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
-          "devOptional": true
-        }
-      }
-    },
-    "tsconfig-paths": {
-      "version": "3.12.0",
-      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
-      "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
-      "dev": true,
-      "requires": {
-        "@types/json5": "^0.0.29",
-        "json5": "^1.0.1",
-        "minimist": "^1.2.0",
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        }
-      }
-    },
-    "tslib": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
-      "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
-      "dev": true
-    },
-    "tsutils": {
-      "version": "3.21.0",
-      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.8.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "1.14.1",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-          "dev": true
-        }
-      }
-    },
-    "type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "^1.2.1"
-      }
-    },
-    "type-fest": {
-      "version": "0.21.3",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
-      "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-      "dev": true
-    },
-    "typescript": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
-      "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
-      "devOptional": true
-    },
-    "ua-parser-js": {
-      "version": "0.7.31",
-      "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
-      "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
-      "dev": true
-    },
-    "unbox-primitive": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
-      "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "has-bigints": "^1.0.1",
-        "has-symbols": "^1.0.2",
-        "which-boxed-primitive": "^1.0.2"
-      }
-    },
-    "unc-path-regex": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
-      "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
-      "dev": true
-    },
-    "unixify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
-      "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
-      "dev": true,
-      "requires": {
-        "normalize-path": "^2.1.1"
-      },
-      "dependencies": {
-        "normalize-path": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-          "dev": true,
-          "requires": {
-            "remove-trailing-separator": "^1.0.1"
-          }
-        }
-      }
-    },
-    "upper-case": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
-      "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "upper-case-first": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
-      "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
-      "dev": true,
-      "requires": {
-        "tslib": "^2.0.3"
-      }
-    },
-    "uri-js": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
-      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "url-parse-lax": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
-      "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
-      "dev": true,
-      "requires": {
-        "prepend-http": "^2.0.0"
-      }
-    },
-    "use-subscription": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
-      "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
-      "requires": {
-        "object-assign": "^4.1.1"
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
-    },
-    "util-nonempty": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/util-nonempty/-/util-nonempty-3.1.0.tgz",
-      "integrity": "sha512-OSZlWoCL74Go83Qw/aeZgSmFZnp9d06bF77b1eAOKipkPWhvxjRYB2nmKiGspoVjkJJEJimzxAgBFUQiUV/oZQ==",
-      "requires": {
-        "@babel/runtime": "^7.14.0",
-        "lodash.isplainobject": "^4.0.6"
-      }
-    },
-    "uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
-    },
-    "uuidv4": {
-      "version": "6.2.12",
-      "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.12.tgz",
-      "integrity": "sha512-UnN4ThIYWhv3ZUE8UwDnnCvh4JafCNu+sQkxmLyjCVwK3rjLfkg3DYiEv6oCMDIAIVEDP4INg4kX/C5hKaRzZA==",
-      "requires": {
-        "@types/uuid": "8.3.1",
-        "uuid": "8.3.2"
-      }
-    },
-    "v8-compile-cache": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
-      "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
-      "dev": true
-    },
-    "valid-url": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
-      "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=",
-      "dev": true
-    },
-    "value-or-promise": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz",
-      "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==",
-      "dev": true
-    },
-    "webidl-conversions": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
-      "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
-    },
-    "webpack-bundle-analyzer": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz",
-      "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==",
-      "dev": true,
-      "requires": {
-        "acorn": "^8.0.4",
-        "acorn-walk": "^8.0.0",
-        "chalk": "^4.1.0",
-        "commander": "^6.2.0",
-        "gzip-size": "^6.0.0",
-        "lodash": "^4.17.20",
-        "opener": "^1.5.2",
-        "sirv": "^1.0.7",
-        "ws": "^7.3.1"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "8.4.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz",
-          "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==",
-          "dev": true
-        },
-        "acorn-walk": {
-          "version": "8.1.0",
-          "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz",
-          "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==",
-          "dev": true
-        },
-        "commander": {
-          "version": "6.2.1",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
-          "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
-          "dev": true
-        }
-      }
-    },
-    "whatwg-fetch": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
-      "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
-    },
-    "whatwg-url": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
-      "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
-      "requires": {
-        "tr46": "~0.0.3",
-        "webidl-conversions": "^3.0.0"
-      }
-    },
-    "which": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
-      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-      "dev": true,
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "which-boxed-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
-      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
-      "dev": true,
-      "requires": {
-        "is-bigint": "^1.0.1",
-        "is-boolean-object": "^1.1.0",
-        "is-number-object": "^1.0.4",
-        "is-string": "^1.0.5",
-        "is-symbol": "^1.0.3"
-      }
-    },
-    "which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-      "dev": true
-    },
-    "word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-      "dev": true
-    },
-    "wrap-ansi": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "ws": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
-      "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
-      "dev": true,
-      "requires": {}
-    },
-    "xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
-    },
-    "y18n": {
-      "version": "5.0.8",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
-      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
-      "dev": true
-    },
-    "yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-    },
-    "yaml": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
-      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
-    },
-    "yaml-ast-parser": {
-      "version": "0.0.43",
-      "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz",
-      "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==",
-      "dev": true
-    },
-    "yargs": {
-      "version": "17.3.1",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz",
-      "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==",
-      "dev": true,
-      "requires": {
-        "cliui": "^7.0.2",
-        "escalade": "^3.1.1",
-        "get-caller-file": "^2.0.5",
-        "require-directory": "^2.1.1",
-        "string-width": "^4.2.3",
-        "y18n": "^5.0.5",
-        "yargs-parser": "^21.0.0"
-      },
-      "dependencies": {
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-          "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.1"
-          }
-        }
-      }
-    },
-    "yargs-parser": {
-      "version": "21.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz",
-      "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==",
-      "dev": true
-    },
-    "yn": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
-      "devOptional": true
-    },
-    "yocto-queue": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
-      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
-      "dev": true
-    }
-  }
-}
diff --git a/package.json b/package.json
index 38a135b87..dd2ede975 100644
--- a/package.json
+++ b/package.json
@@ -1,127 +1,62 @@
 {
-  "name": "nextjs-commerce",
-  "version": "1.0.0",
-  "scripts": {
-    "dev": "NODE_OPTIONS='--inspect' next dev",
-    "build": "next build",
-    "start": "next start",
-    "analyze": "BUNDLE_ANALYZE=both next build",
-    "lint": "next lint",
-    "prettier-fix": "prettier --write .",
-    "find:unused": "npx next-unused",
-    "generate": "graphql-codegen",
-    "generate:shopify": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config --config framework/shopify/codegen.json",
-    "generate:vendure": "graphql-codegen --config framework/vendure/codegen.json",
-    "generate:definitions": "node framework/bigcommerce/scripts/generate-definitions.js",
-    "generate:kibocommerce": "graphql-codegen --config framework/kibocommerce/codegen.json"
-  },
-  "sideEffects": false,
+  "name": "commerce",
   "license": "MIT",
-  "engines": {
-    "node": ">=14.x"
+  "private": true,
+  "workspaces": [
+    "site",
+    "packages/*"
+  ],
+  "scripts": {
+    "prettier-fix": "prettier --write ."
   },
-  "dependencies": {
-    "@chec/commerce.js": "^2.8.0",
-    "@react-spring/web": "^9.4.1",
-    "@spree/storefront-api-v2-sdk": "^5.1.1",
-    "@vercel/fetch": "^6.1.1",
-    "autoprefixer": "^10.4.2",
-    "body-scroll-lock": "^4.0.0-beta.0",
-    "classnames": "^2.3.1",
-    "cookie": "^0.4.1",
-    "email-validator": "^2.0.4",
-    "immutability-helper": "^3.1.1",
-    "js-cookie": "^3.0.1",
-    "keen-slider": "^6.6.3",
-    "lodash.debounce": "^4.0.8",
-    "lodash.random": "^3.2.0",
-    "lodash.throttle": "^4.1.1",
-    "next": "^12.0.8",
-    "next-seo": "^4.28.1",
-    "next-themes": "^0.0.15",
-    "postcss": "^8.4.5",
-    "react": "^17.0.2",
-    "react-dom": "^17.0.2",
-    "react-fast-marquee": "^1.3.1",
-    "react-merge-refs": "^1.1.0",
-    "react-use-measure": "^2.1.1",
-    "stripe": "^8.196.0",
-    "swell-js": "^4.0.0-next.0",
-    "swr": "^1.1.2",
-    "tabbable": "^5.2.1",
-    "tailwindcss": "^3.0.13",
-    "uuidv4": "^6.2.12"
+  "turbo": {
+    "baseBranch": "origin/main",
+    "pipeline": {
+      "build": {
+        "dependsOn": [
+          "^build"
+        ],
+        "outputs": [
+          "dist/**"
+        ]
+      },
+      "next-commerce#build": {
+        "dependsOn": [
+          "^build",
+          "$COMMERCE_PROVIDER"
+        ],
+        "outputs": [
+          ".next/**"
+        ]
+      },
+      "test": {
+        "dependsOn": [
+          "^build"
+        ],
+        "outputs": []
+      },
+      "lint": {
+        "outputs": []
+      },
+      "prettier-fix": {
+        "outputs": []
+      },
+      "dev": {
+        "cache": false
+      },
+      "start": {
+        "cache": false
+      }
+    }
   },
   "devDependencies": {
-    "@graphql-codegen/cli": "^1.21.5",
-    "@graphql-codegen/schema-ast": "^1.18.3",
-    "@graphql-codegen/typescript": "^1.22.2",
-    "@graphql-codegen/typescript-operations": "^1.18.1",
-    "@next/bundle-analyzer": "^12.0.8",
-    "@types/body-scroll-lock": "^3.1.0",
-    "@types/chec__commerce.js": "^2.8.4",
-    "@types/cookie": "^0.4.1",
-    "@types/js-cookie": "^3.0.1",
-    "@types/lodash.debounce": "^4.0.6",
-    "@types/lodash.random": "^3.2.6",
-    "@types/lodash.throttle": "^4.1.6",
-    "@types/node": "^17.0.8",
-    "@types/react": "^17.0.38",
-    "deepmerge": "^4.2.2",
-    "eslint": "^8.6.0",
-    "eslint-config-next": "^12.0.8",
-    "eslint-config-prettier": "^8.3.0",
-    "graphql": "^15.5.1",
     "husky": "^7.0.4",
-    "lint-staged": "^12.1.7",
-    "postcss-flexbugs-fixes": "^5.0.2",
-    "postcss-preset-env": "^7.2.3",
     "prettier": "^2.5.1",
-    "typescript": "4.5.4"
+    "turbo": "^1.0.28"
   },
   "husky": {
     "hooks": {
-      "pre-commit": "lint-staged"
+      "pre-commit": "turbo run lint"
     }
-  },
-  "lint-staged": {
-    "**/*.{js,jsx,ts,tsx}": [
-      "eslint",
-      "prettier --write",
-      "git add"
-    ],
-    "**/*.{md,mdx,json}": [
-      "prettier --write",
-      "git add"
-    ]
-  },
-  "next-unused": {
-    "alias": {
-      "@lib/*": [
-        "lib/*"
-      ],
-      "@assets/*": [
-        "assets/*"
-      ],
-      "@config/*": [
-        "config/*"
-      ],
-      "@components/*": [
-        "components/*"
-      ],
-      "@utils/*": [
-        "utils/*"
-      ]
-    },
-    "debug": true,
-    "include": [
-      "components",
-      "lib",
-      "pages"
-    ],
-    "exclude": [],
-    "entrypoints": [
-      "pages"
-    ]
   }
 }
diff --git a/framework/bigcommerce/.env.template b/packages/bigcommerce/.env.template
similarity index 100%
rename from framework/bigcommerce/.env.template
rename to packages/bigcommerce/.env.template
diff --git a/packages/bigcommerce/.prettierignore b/packages/bigcommerce/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/bigcommerce/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/bigcommerce/.prettierrc b/packages/bigcommerce/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/bigcommerce/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/bigcommerce/README.md b/packages/bigcommerce/README.md
similarity index 97%
rename from framework/bigcommerce/README.md
rename to packages/bigcommerce/README.md
index 7f62a5f3f..1e8c6cb08 100644
--- a/framework/bigcommerce/README.md
+++ b/packages/bigcommerce/README.md
@@ -9,7 +9,7 @@ With the deploy button below you'll be able to have a [BigCommerce](https://www.
 If you already have a BigCommerce account and want to use your current store, then copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git):
 
 ```bash
-cp framework/bigcommerce/.env.template .env.local
+cp packages/bigcommerce/.env.template .env.local
 ```
 
 Then, set the environment variables in `.env.local` to match the ones from your store.
diff --git a/codegen.bigcommerce.json b/packages/bigcommerce/codegen.json
similarity index 73%
rename from codegen.bigcommerce.json
rename to packages/bigcommerce/codegen.json
index 1f14e88ac..7346508f7 100644
--- a/codegen.bigcommerce.json
+++ b/packages/bigcommerce/codegen.json
@@ -8,16 +8,16 @@
   },
   "documents": [
     {
-      "./framework/bigcommerce/api/**/*.ts": {
+      "./src/api/**/*.ts": {
         "noRequire": true
       }
     }
   ],
   "generates": {
-    "./framework/bigcommerce/schema.d.ts": {
+    "./schema.d.ts": {
       "plugins": ["typescript", "typescript-operations"]
     },
-    "./framework/bigcommerce/schema.graphql": {
+    "./schema.graphql": {
       "plugins": ["schema-ast"]
     }
   },
diff --git a/packages/bigcommerce/package.json b/packages/bigcommerce/package.json
new file mode 100644
index 000000000..7df99130b
--- /dev/null
+++ b/packages/bigcommerce/package.json
@@ -0,0 +1,80 @@
+{
+  "name": "@vercel/commerce-bigcommerce",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write .",
+    "generate:definitions": "node scripts/generate-definitions.js"
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/fetch": "^6.1.1",
+    "cookie": "^0.4.1",
+    "immutability-helper": "^3.1.1",
+    "jsonwebtoken": "^8.5.1",
+    "lodash.debounce": "^4.0.8",
+    "uuidv4": "^6.2.12"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/cookie": "^0.4.1",
+    "@types/jsonwebtoken": "^8.5.7",
+    "@types/lodash.debounce": "^4.0.6",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/bigcommerce/schema.d.ts b/packages/bigcommerce/schema.d.ts
similarity index 100%
rename from framework/bigcommerce/schema.d.ts
rename to packages/bigcommerce/schema.d.ts
diff --git a/framework/bigcommerce/schema.graphql b/packages/bigcommerce/schema.graphql
similarity index 100%
rename from framework/bigcommerce/schema.graphql
rename to packages/bigcommerce/schema.graphql
diff --git a/framework/bigcommerce/scripts/generate-definitions.js b/packages/bigcommerce/scripts/generate-definitions.js
similarity index 100%
rename from framework/bigcommerce/scripts/generate-definitions.js
rename to packages/bigcommerce/scripts/generate-definitions.js
diff --git a/framework/bigcommerce/api/definitions/catalog.ts b/packages/bigcommerce/src/api/definitions/catalog.ts
similarity index 100%
rename from framework/bigcommerce/api/definitions/catalog.ts
rename to packages/bigcommerce/src/api/definitions/catalog.ts
diff --git a/framework/bigcommerce/api/definitions/store-content.ts b/packages/bigcommerce/src/api/definitions/store-content.ts
similarity index 100%
rename from framework/bigcommerce/api/definitions/store-content.ts
rename to packages/bigcommerce/src/api/definitions/store-content.ts
diff --git a/framework/bigcommerce/api/definitions/wishlist.ts b/packages/bigcommerce/src/api/definitions/wishlist.ts
similarity index 100%
rename from framework/bigcommerce/api/definitions/wishlist.ts
rename to packages/bigcommerce/src/api/definitions/wishlist.ts
diff --git a/framework/bigcommerce/api/endpoints/cart/add-item.ts b/packages/bigcommerce/src/api/endpoints/cart/add-item.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/cart/add-item.ts
rename to packages/bigcommerce/src/api/endpoints/cart/add-item.ts
diff --git a/framework/bigcommerce/api/endpoints/cart/get-cart.ts b/packages/bigcommerce/src/api/endpoints/cart/get-cart.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/cart/get-cart.ts
rename to packages/bigcommerce/src/api/endpoints/cart/get-cart.ts
diff --git a/framework/bigcommerce/api/endpoints/cart/index.ts b/packages/bigcommerce/src/api/endpoints/cart/index.ts
similarity index 81%
rename from framework/bigcommerce/api/endpoints/cart/index.ts
rename to packages/bigcommerce/src/api/endpoints/cart/index.ts
index ae2414d70..376651178 100644
--- a/framework/bigcommerce/api/endpoints/cart/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/cart/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import cartEndpoint from '@commerce/api/endpoints/cart'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import cartEndpoint from '@vercel/commerce/api/endpoints/cart'
 import type { CartSchema } from '../../../types/cart'
 import type { BigcommerceAPI } from '../..'
 import getCart from './get-cart'
diff --git a/framework/bigcommerce/api/endpoints/cart/remove-item.ts b/packages/bigcommerce/src/api/endpoints/cart/remove-item.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/cart/remove-item.ts
rename to packages/bigcommerce/src/api/endpoints/cart/remove-item.ts
diff --git a/framework/bigcommerce/api/endpoints/cart/update-item.ts b/packages/bigcommerce/src/api/endpoints/cart/update-item.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/cart/update-item.ts
rename to packages/bigcommerce/src/api/endpoints/cart/update-item.ts
diff --git a/framework/bigcommerce/api/endpoints/catalog/products/get-products.ts b/packages/bigcommerce/src/api/endpoints/catalog/products/get-products.ts
similarity index 97%
rename from framework/bigcommerce/api/endpoints/catalog/products/get-products.ts
rename to packages/bigcommerce/src/api/endpoints/catalog/products/get-products.ts
index 6dde39e28..f88a231e1 100644
--- a/framework/bigcommerce/api/endpoints/catalog/products/get-products.ts
+++ b/packages/bigcommerce/src/api/endpoints/catalog/products/get-products.ts
@@ -1,4 +1,4 @@
-import { Product } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
 import { ProductsEndpoint } from '.'
 
 const SORT: { [key: string]: string | undefined } = {
diff --git a/framework/bigcommerce/api/endpoints/catalog/products/index.ts b/packages/bigcommerce/src/api/endpoints/catalog/products/index.ts
similarity index 76%
rename from framework/bigcommerce/api/endpoints/catalog/products/index.ts
rename to packages/bigcommerce/src/api/endpoints/catalog/products/index.ts
index 555740f60..24472434d 100644
--- a/framework/bigcommerce/api/endpoints/catalog/products/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/catalog/products/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import productsEndpoint from '@commerce/api/endpoints/catalog/products'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import productsEndpoint from '@vercel/commerce/api/endpoints/catalog/products'
 import type { ProductsSchema } from '../../../../types/product'
 import type { BigcommerceAPI } from '../../..'
 import getProducts from './get-products'
diff --git a/framework/bigcommerce/api/endpoints/checkout/get-checkout.ts b/packages/bigcommerce/src/api/endpoints/checkout/get-checkout.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/checkout/get-checkout.ts
rename to packages/bigcommerce/src/api/endpoints/checkout/get-checkout.ts
diff --git a/framework/bigcommerce/api/endpoints/checkout/index.ts b/packages/bigcommerce/src/api/endpoints/checkout/index.ts
similarity index 77%
rename from framework/bigcommerce/api/endpoints/checkout/index.ts
rename to packages/bigcommerce/src/api/endpoints/checkout/index.ts
index 9d6c548a0..83bc4ae08 100644
--- a/framework/bigcommerce/api/endpoints/checkout/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/checkout/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 import type { CheckoutSchema } from '../../../types/checkout'
 import type { BigcommerceAPI } from '../..'
 import getCheckout from './get-checkout'
diff --git a/framework/bigcommerce/api/endpoints/customer/address.ts b/packages/bigcommerce/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/customer/address.ts
rename to packages/bigcommerce/src/api/endpoints/customer/address.ts
diff --git a/framework/bigcommerce/api/endpoints/customer/card.ts b/packages/bigcommerce/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/customer/card.ts
rename to packages/bigcommerce/src/api/endpoints/customer/card.ts
diff --git a/framework/bigcommerce/api/endpoints/customer/get-logged-in-customer.ts b/packages/bigcommerce/src/api/endpoints/customer/get-logged-in-customer.ts
similarity index 94%
rename from framework/bigcommerce/api/endpoints/customer/get-logged-in-customer.ts
rename to packages/bigcommerce/src/api/endpoints/customer/get-logged-in-customer.ts
index 50bd5cf3f..4c93730f6 100644
--- a/framework/bigcommerce/api/endpoints/customer/get-logged-in-customer.ts
+++ b/packages/bigcommerce/src/api/endpoints/customer/get-logged-in-customer.ts
@@ -1,4 +1,4 @@
-import type { GetLoggedInCustomerQuery } from '../../../schema'
+import type { GetLoggedInCustomerQuery } from '../../../../schema'
 import type { CustomerEndpoint } from '.'
 
 export const getLoggedInCustomerQuery = /* GraphQL */ `
diff --git a/framework/bigcommerce/api/endpoints/customer/index.ts b/packages/bigcommerce/src/api/endpoints/customer/index.ts
similarity index 78%
rename from framework/bigcommerce/api/endpoints/customer/index.ts
rename to packages/bigcommerce/src/api/endpoints/customer/index.ts
index cb0f6787a..5efff392c 100644
--- a/framework/bigcommerce/api/endpoints/customer/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/customer/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import customerEndpoint from '@commerce/api/endpoints/customer'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import customerEndpoint from '@vercel/commerce/api/endpoints/customer'
 import type { CustomerSchema } from '../../../types/customer'
 import type { BigcommerceAPI } from '../..'
 import getLoggedInCustomer from './get-logged-in-customer'
diff --git a/framework/bigcommerce/api/endpoints/login/index.ts b/packages/bigcommerce/src/api/endpoints/login/index.ts
similarity index 75%
rename from framework/bigcommerce/api/endpoints/login/index.ts
rename to packages/bigcommerce/src/api/endpoints/login/index.ts
index 2b454c7c2..1ad6f7102 100644
--- a/framework/bigcommerce/api/endpoints/login/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/login/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import loginEndpoint from '@commerce/api/endpoints/login'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import loginEndpoint from '@vercel/commerce/api/endpoints/login'
 import type { LoginSchema } from '../../../types/login'
 import type { BigcommerceAPI } from '../..'
 import login from './login'
diff --git a/framework/bigcommerce/api/endpoints/login/login.ts b/packages/bigcommerce/src/api/endpoints/login/login.ts
similarity index 95%
rename from framework/bigcommerce/api/endpoints/login/login.ts
rename to packages/bigcommerce/src/api/endpoints/login/login.ts
index f55c3b54f..0ebc5b110 100644
--- a/framework/bigcommerce/api/endpoints/login/login.ts
+++ b/packages/bigcommerce/src/api/endpoints/login/login.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import type { LoginEndpoint } from '.'
 
 const invalidCredentials = /invalid credentials/i
diff --git a/framework/bigcommerce/api/endpoints/logout/index.ts b/packages/bigcommerce/src/api/endpoints/logout/index.ts
similarity index 76%
rename from framework/bigcommerce/api/endpoints/logout/index.ts
rename to packages/bigcommerce/src/api/endpoints/logout/index.ts
index 0dbb23bab..94a246f4b 100644
--- a/framework/bigcommerce/api/endpoints/logout/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/logout/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import logoutEndpoint from '@commerce/api/endpoints/logout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import logoutEndpoint from '@vercel/commerce/api/endpoints/logout'
 import type { LogoutSchema } from '../../../types/logout'
 import type { BigcommerceAPI } from '../..'
 import logout from './logout'
diff --git a/framework/bigcommerce/api/endpoints/logout/logout.ts b/packages/bigcommerce/src/api/endpoints/logout/logout.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/logout/logout.ts
rename to packages/bigcommerce/src/api/endpoints/logout/logout.ts
diff --git a/framework/bigcommerce/api/endpoints/signup/index.ts b/packages/bigcommerce/src/api/endpoints/signup/index.ts
similarity index 76%
rename from framework/bigcommerce/api/endpoints/signup/index.ts
rename to packages/bigcommerce/src/api/endpoints/signup/index.ts
index 6ce8be271..64521f964 100644
--- a/framework/bigcommerce/api/endpoints/signup/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/signup/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import signupEndpoint from '@commerce/api/endpoints/signup'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import signupEndpoint from '@vercel/commerce/api/endpoints/signup'
 import type { SignupSchema } from '../../../types/signup'
 import type { BigcommerceAPI } from '../..'
 import signup from './signup'
diff --git a/framework/bigcommerce/api/endpoints/signup/signup.ts b/packages/bigcommerce/src/api/endpoints/signup/signup.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/signup/signup.ts
rename to packages/bigcommerce/src/api/endpoints/signup/signup.ts
diff --git a/framework/bigcommerce/api/endpoints/wishlist/add-item.ts b/packages/bigcommerce/src/api/endpoints/wishlist/add-item.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/wishlist/add-item.ts
rename to packages/bigcommerce/src/api/endpoints/wishlist/add-item.ts
diff --git a/framework/bigcommerce/api/endpoints/wishlist/get-wishlist.ts b/packages/bigcommerce/src/api/endpoints/wishlist/get-wishlist.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/wishlist/get-wishlist.ts
rename to packages/bigcommerce/src/api/endpoints/wishlist/get-wishlist.ts
diff --git a/framework/bigcommerce/api/endpoints/wishlist/index.ts b/packages/bigcommerce/src/api/endpoints/wishlist/index.ts
similarity index 80%
rename from framework/bigcommerce/api/endpoints/wishlist/index.ts
rename to packages/bigcommerce/src/api/endpoints/wishlist/index.ts
index 31af234ce..87728225d 100644
--- a/framework/bigcommerce/api/endpoints/wishlist/index.ts
+++ b/packages/bigcommerce/src/api/endpoints/wishlist/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import wishlistEndpoint from '@commerce/api/endpoints/wishlist'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import wishlistEndpoint from '@vercel/commerce/api/endpoints/wishlist'
 import type { WishlistSchema } from '../../../types/wishlist'
 import type { BigcommerceAPI } from '../..'
 import getWishlist from './get-wishlist'
diff --git a/framework/bigcommerce/api/endpoints/wishlist/remove-item.ts b/packages/bigcommerce/src/api/endpoints/wishlist/remove-item.ts
similarity index 100%
rename from framework/bigcommerce/api/endpoints/wishlist/remove-item.ts
rename to packages/bigcommerce/src/api/endpoints/wishlist/remove-item.ts
diff --git a/framework/bigcommerce/api/fragments/category-tree.ts b/packages/bigcommerce/src/api/fragments/category-tree.ts
similarity index 100%
rename from framework/bigcommerce/api/fragments/category-tree.ts
rename to packages/bigcommerce/src/api/fragments/category-tree.ts
diff --git a/framework/bigcommerce/api/fragments/product.ts b/packages/bigcommerce/src/api/fragments/product.ts
similarity index 100%
rename from framework/bigcommerce/api/fragments/product.ts
rename to packages/bigcommerce/src/api/fragments/product.ts
diff --git a/framework/bigcommerce/api/index.ts b/packages/bigcommerce/src/api/index.ts
similarity index 99%
rename from framework/bigcommerce/api/index.ts
rename to packages/bigcommerce/src/api/index.ts
index ecc0d0e0e..b4999642b 100644
--- a/framework/bigcommerce/api/index.ts
+++ b/packages/bigcommerce/src/api/index.ts
@@ -3,7 +3,7 @@ import {
   CommerceAPI,
   CommerceAPIConfig,
   getCommerceApi as commerceApi,
-} from '@commerce/api'
+} from '@vercel/commerce/api'
 import createFetchGraphqlApi from './utils/fetch-graphql-api'
 import createFetchStoreApi from './utils/fetch-store-api'
 
diff --git a/framework/bigcommerce/api/operations/get-all-pages.ts b/packages/bigcommerce/src/api/operations/get-all-pages.ts
similarity index 97%
rename from framework/bigcommerce/api/operations/get-all-pages.ts
rename to packages/bigcommerce/src/api/operations/get-all-pages.ts
index 3a9b64b1f..3117b73fc 100644
--- a/framework/bigcommerce/api/operations/get-all-pages.ts
+++ b/packages/bigcommerce/src/api/operations/get-all-pages.ts
@@ -1,7 +1,7 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { Page, GetAllPagesOperation } from '../../types/page'
 import type { RecursivePartial, RecursiveRequired } from '../utils/types'
 import { BigcommerceConfig, Provider } from '..'
diff --git a/framework/bigcommerce/api/operations/get-all-product-paths.ts b/packages/bigcommerce/src/api/operations/get-all-product-paths.ts
similarity index 94%
rename from framework/bigcommerce/api/operations/get-all-product-paths.ts
rename to packages/bigcommerce/src/api/operations/get-all-product-paths.ts
index da7b457eb..90cdab6fd 100644
--- a/framework/bigcommerce/api/operations/get-all-product-paths.ts
+++ b/packages/bigcommerce/src/api/operations/get-all-product-paths.ts
@@ -1,8 +1,8 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import type { GetAllProductPathsQuery } from '../../schema'
+} from '@vercel/commerce/api/operations'
+import type { GetAllProductPathsQuery } from '../../../schema'
 import type { GetAllProductPathsOperation } from '../../types/product'
 import type { RecursivePartial, RecursiveRequired } from '../utils/types'
 import filterEdges from '../utils/filter-edges'
diff --git a/framework/bigcommerce/api/operations/get-all-products.ts b/packages/bigcommerce/src/api/operations/get-all-products.ts
similarity index 98%
rename from framework/bigcommerce/api/operations/get-all-products.ts
rename to packages/bigcommerce/src/api/operations/get-all-products.ts
index c2652f5bf..2833ffcd7 100644
--- a/framework/bigcommerce/api/operations/get-all-products.ts
+++ b/packages/bigcommerce/src/api/operations/get-all-products.ts
@@ -1,11 +1,11 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type {
   GetAllProductsQuery,
   GetAllProductsQueryVariables,
-} from '../../schema'
+} from '../../../schema'
 import type { GetAllProductsOperation } from '../../types/product'
 import type { RecursivePartial, RecursiveRequired } from '../utils/types'
 import filterEdges from '../utils/filter-edges'
diff --git a/framework/bigcommerce/api/operations/get-customer-wishlist.ts b/packages/bigcommerce/src/api/operations/get-customer-wishlist.ts
similarity index 98%
rename from framework/bigcommerce/api/operations/get-customer-wishlist.ts
rename to packages/bigcommerce/src/api/operations/get-customer-wishlist.ts
index 5227ee663..dc0dd0d9a 100644
--- a/framework/bigcommerce/api/operations/get-customer-wishlist.ts
+++ b/packages/bigcommerce/src/api/operations/get-customer-wishlist.ts
@@ -1,7 +1,7 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type {
   GetCustomerWishlistOperation,
   Wishlist,
diff --git a/framework/bigcommerce/api/operations/get-page.ts b/packages/bigcommerce/src/api/operations/get-page.ts
similarity index 97%
rename from framework/bigcommerce/api/operations/get-page.ts
rename to packages/bigcommerce/src/api/operations/get-page.ts
index 6a1fea9d0..dc38e5088 100644
--- a/framework/bigcommerce/api/operations/get-page.ts
+++ b/packages/bigcommerce/src/api/operations/get-page.ts
@@ -1,7 +1,7 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { GetPageOperation, Page } from '../../types/page'
 import type { RecursivePartial, RecursiveRequired } from '../utils/types'
 import type { BigcommerceConfig, Provider } from '..'
diff --git a/framework/bigcommerce/api/operations/get-product.ts b/packages/bigcommerce/src/api/operations/get-product.ts
similarity index 98%
rename from framework/bigcommerce/api/operations/get-product.ts
rename to packages/bigcommerce/src/api/operations/get-product.ts
index fb356e952..b2f9c9677 100644
--- a/framework/bigcommerce/api/operations/get-product.ts
+++ b/packages/bigcommerce/src/api/operations/get-product.ts
@@ -1,9 +1,9 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { GetProductOperation } from '../../types/product'
-import type { GetProductQuery, GetProductQueryVariables } from '../../schema'
+import type { GetProductQuery, GetProductQueryVariables } from '../../../schema'
 import setProductLocaleMeta from '../utils/set-product-locale-meta'
 import { productInfoFragment } from '../fragments/product'
 import { BigcommerceConfig, Provider } from '..'
diff --git a/framework/bigcommerce/api/operations/get-site-info.ts b/packages/bigcommerce/src/api/operations/get-site-info.ts
similarity index 95%
rename from framework/bigcommerce/api/operations/get-site-info.ts
rename to packages/bigcommerce/src/api/operations/get-site-info.ts
index 0dd94dd9d..ad0dd5ebd 100644
--- a/framework/bigcommerce/api/operations/get-site-info.ts
+++ b/packages/bigcommerce/src/api/operations/get-site-info.ts
@@ -1,9 +1,9 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { GetSiteInfoOperation } from '../../types/site'
-import type { GetSiteInfoQuery } from '../../schema'
+import type { GetSiteInfoQuery } from '../../../schema'
 import filterEdges from '../utils/filter-edges'
 import type { BigcommerceConfig, Provider } from '..'
 import { categoryTreeItemFragment } from '../fragments/category-tree'
diff --git a/framework/bigcommerce/api/operations/login.ts b/packages/bigcommerce/src/api/operations/login.ts
similarity index 95%
rename from framework/bigcommerce/api/operations/login.ts
rename to packages/bigcommerce/src/api/operations/login.ts
index 021ba3c65..f5349998f 100644
--- a/framework/bigcommerce/api/operations/login.ts
+++ b/packages/bigcommerce/src/api/operations/login.ts
@@ -2,9 +2,9 @@ import type { ServerResponse } from 'http'
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { LoginOperation } from '../../types/login'
-import type { LoginMutation } from '../../schema'
+import type { LoginMutation } from '../../../schema'
 import type { RecursivePartial } from '../utils/types'
 import concatHeader from '../utils/concat-cookie'
 import type { BigcommerceConfig, Provider } from '..'
diff --git a/framework/bigcommerce/api/utils/concat-cookie.ts b/packages/bigcommerce/src/api/utils/concat-cookie.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/concat-cookie.ts
rename to packages/bigcommerce/src/api/utils/concat-cookie.ts
diff --git a/framework/bigcommerce/api/utils/errors.ts b/packages/bigcommerce/src/api/utils/errors.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/errors.ts
rename to packages/bigcommerce/src/api/utils/errors.ts
diff --git a/framework/bigcommerce/api/utils/fetch-graphql-api.ts b/packages/bigcommerce/src/api/utils/fetch-graphql-api.ts
similarity index 88%
rename from framework/bigcommerce/api/utils/fetch-graphql-api.ts
rename to packages/bigcommerce/src/api/utils/fetch-graphql-api.ts
index 8cc76c067..ad385fee6 100644
--- a/framework/bigcommerce/api/utils/fetch-graphql-api.ts
+++ b/packages/bigcommerce/src/api/utils/fetch-graphql-api.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { GraphQLFetcher } from '@commerce/api'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { BigcommerceConfig } from '../index'
 import fetch from './fetch'
 
diff --git a/framework/bigcommerce/api/utils/fetch-store-api.ts b/packages/bigcommerce/src/api/utils/fetch-store-api.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/fetch-store-api.ts
rename to packages/bigcommerce/src/api/utils/fetch-store-api.ts
diff --git a/framework/bigcommerce/api/utils/fetch.ts b/packages/bigcommerce/src/api/utils/fetch.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/fetch.ts
rename to packages/bigcommerce/src/api/utils/fetch.ts
diff --git a/framework/bigcommerce/api/utils/filter-edges.ts b/packages/bigcommerce/src/api/utils/filter-edges.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/filter-edges.ts
rename to packages/bigcommerce/src/api/utils/filter-edges.ts
diff --git a/framework/bigcommerce/api/utils/get-cart-cookie.ts b/packages/bigcommerce/src/api/utils/get-cart-cookie.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/get-cart-cookie.ts
rename to packages/bigcommerce/src/api/utils/get-cart-cookie.ts
diff --git a/framework/bigcommerce/api/utils/get-customer-id.ts b/packages/bigcommerce/src/api/utils/get-customer-id.ts
similarity index 91%
rename from framework/bigcommerce/api/utils/get-customer-id.ts
rename to packages/bigcommerce/src/api/utils/get-customer-id.ts
index 7efeeed3c..7344e017b 100644
--- a/framework/bigcommerce/api/utils/get-customer-id.ts
+++ b/packages/bigcommerce/src/api/utils/get-customer-id.ts
@@ -1,4 +1,4 @@
-import type { GetCustomerIdQuery } from '../../schema'
+import type { GetCustomerIdQuery } from '../../../schema'
 import type { BigcommerceConfig } from '../'
 
 export const getCustomerIdQuery = /* GraphQL */ `
diff --git a/framework/bigcommerce/api/utils/parse-item.ts b/packages/bigcommerce/src/api/utils/parse-item.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/parse-item.ts
rename to packages/bigcommerce/src/api/utils/parse-item.ts
diff --git a/framework/bigcommerce/api/utils/set-product-locale-meta.ts b/packages/bigcommerce/src/api/utils/set-product-locale-meta.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/set-product-locale-meta.ts
rename to packages/bigcommerce/src/api/utils/set-product-locale-meta.ts
diff --git a/framework/bigcommerce/api/utils/types.ts b/packages/bigcommerce/src/api/utils/types.ts
similarity index 100%
rename from framework/bigcommerce/api/utils/types.ts
rename to packages/bigcommerce/src/api/utils/types.ts
diff --git a/framework/bigcommerce/auth/index.ts b/packages/bigcommerce/src/auth/index.ts
similarity index 100%
rename from framework/bigcommerce/auth/index.ts
rename to packages/bigcommerce/src/auth/index.ts
diff --git a/framework/bigcommerce/auth/use-login.tsx b/packages/bigcommerce/src/auth/use-login.tsx
similarity index 81%
rename from framework/bigcommerce/auth/use-login.tsx
rename to packages/bigcommerce/src/auth/use-login.tsx
index ee94dcf43..a71f15983 100644
--- a/framework/bigcommerce/auth/use-login.tsx
+++ b/packages/bigcommerce/src/auth/use-login.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 import type { LoginHook } from '../types/login'
 import useCustomer from '../customer/use-customer'
 
diff --git a/framework/bigcommerce/auth/use-logout.tsx b/packages/bigcommerce/src/auth/use-logout.tsx
similarity index 81%
rename from framework/bigcommerce/auth/use-logout.tsx
rename to packages/bigcommerce/src/auth/use-logout.tsx
index 1e8e9c666..bc5c3a4c0 100644
--- a/framework/bigcommerce/auth/use-logout.tsx
+++ b/packages/bigcommerce/src/auth/use-logout.tsx
@@ -1,6 +1,6 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import type { LogoutHook } from '../types/logout'
 import useCustomer from '../customer/use-customer'
 
diff --git a/framework/kibocommerce/auth/use-signup.tsx b/packages/bigcommerce/src/auth/use-signup.tsx
similarity index 83%
rename from framework/kibocommerce/auth/use-signup.tsx
rename to packages/bigcommerce/src/auth/use-signup.tsx
index 8f443c42d..b06126df6 100644
--- a/framework/kibocommerce/auth/use-signup.tsx
+++ b/packages/bigcommerce/src/auth/use-signup.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import type { SignupHook } from '../types/signup'
 import useCustomer from '../customer/use-customer'
 
diff --git a/framework/bigcommerce/cart/index.ts b/packages/bigcommerce/src/cart/index.ts
similarity index 100%
rename from framework/bigcommerce/cart/index.ts
rename to packages/bigcommerce/src/cart/index.ts
diff --git a/framework/bigcommerce/cart/use-add-item.tsx b/packages/bigcommerce/src/cart/use-add-item.tsx
similarity index 77%
rename from framework/bigcommerce/cart/use-add-item.tsx
rename to packages/bigcommerce/src/cart/use-add-item.tsx
index bdad1862c..f65e82bc7 100644
--- a/framework/bigcommerce/cart/use-add-item.tsx
+++ b/packages/bigcommerce/src/cart/use-add-item.tsx
@@ -1,8 +1,8 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
-import type { AddItemHook } from '@commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/bigcommerce/cart/use-cart.tsx b/packages/bigcommerce/src/cart/use-cart.tsx
similarity index 78%
rename from framework/bigcommerce/cart/use-cart.tsx
rename to packages/bigcommerce/src/cart/use-cart.tsx
index 53fd3471c..f8c4691bf 100644
--- a/framework/bigcommerce/cart/use-cart.tsx
+++ b/packages/bigcommerce/src/cart/use-cart.tsx
@@ -1,7 +1,7 @@
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
-import type { GetCartHook } from '@commerce/types/cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
 
 export default useCart as UseCart<typeof handler>
 
diff --git a/framework/bigcommerce/cart/use-remove-item.tsx b/packages/bigcommerce/src/cart/use-remove-item.tsx
similarity index 84%
rename from framework/bigcommerce/cart/use-remove-item.tsx
rename to packages/bigcommerce/src/cart/use-remove-item.tsx
index daf155c26..8bea34f41 100644
--- a/framework/bigcommerce/cart/use-remove-item.tsx
+++ b/packages/bigcommerce/src/cart/use-remove-item.tsx
@@ -2,10 +2,10 @@ import { useCallback } from 'react'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
-import type { Cart, LineItem, RemoveItemHook } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
+import type { Cart, LineItem, RemoveItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 
 export type RemoveItemFn<T = any> = T extends LineItem
diff --git a/framework/bigcommerce/cart/use-update-item.tsx b/packages/bigcommerce/src/cart/use-update-item.tsx
similarity index 89%
rename from framework/bigcommerce/cart/use-update-item.tsx
rename to packages/bigcommerce/src/cart/use-update-item.tsx
index a4c7d178e..b15690ed7 100644
--- a/framework/bigcommerce/cart/use-update-item.tsx
+++ b/packages/bigcommerce/src/cart/use-update-item.tsx
@@ -3,10 +3,10 @@ import debounce from 'lodash.debounce'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
-import type { LineItem, UpdateItemHook } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
+import type { LineItem, UpdateItemHook } from '@vercel/commerce/types/cart'
 import { handler as removeItemHandler } from './use-remove-item'
 import useCart from './use-cart'
 
diff --git a/framework/bigcommerce/checkout/use-checkout.tsx b/packages/bigcommerce/src/checkout/use-checkout.tsx
similarity index 64%
rename from framework/bigcommerce/checkout/use-checkout.tsx
rename to packages/bigcommerce/src/checkout/use-checkout.tsx
index 942f85b83..cab52bb60 100644
--- a/framework/bigcommerce/checkout/use-checkout.tsx
+++ b/packages/bigcommerce/src/checkout/use-checkout.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
 
diff --git a/framework/bigcommerce/commerce.config.json b/packages/bigcommerce/src/commerce.config.json
similarity index 100%
rename from framework/bigcommerce/commerce.config.json
rename to packages/bigcommerce/src/commerce.config.json
diff --git a/framework/local/customer/card/use-add-item.tsx b/packages/bigcommerce/src/customer/address/use-add-item.tsx
similarity index 62%
rename from framework/local/customer/card/use-add-item.tsx
rename to packages/bigcommerce/src/customer/address/use-add-item.tsx
index 7e3afa9c5..fabd11b1d 100644
--- a/framework/local/customer/card/use-add-item.tsx
+++ b/packages/bigcommerce/src/customer/address/use-add-item.tsx
@@ -1,5 +1,5 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/local/customer/address/use-add-item.tsx b/packages/bigcommerce/src/customer/card/use-add-item.tsx
similarity index 63%
rename from framework/local/customer/address/use-add-item.tsx
rename to packages/bigcommerce/src/customer/card/use-add-item.tsx
index ac9dcd5cf..938e6cd61 100644
--- a/framework/local/customer/address/use-add-item.tsx
+++ b/packages/bigcommerce/src/customer/card/use-add-item.tsx
@@ -1,5 +1,5 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/bigcommerce/customer/index.ts b/packages/bigcommerce/src/customer/index.ts
similarity index 100%
rename from framework/bigcommerce/customer/index.ts
rename to packages/bigcommerce/src/customer/index.ts
diff --git a/framework/bigcommerce/customer/use-customer.tsx b/packages/bigcommerce/src/customer/use-customer.tsx
similarity index 79%
rename from framework/bigcommerce/customer/use-customer.tsx
rename to packages/bigcommerce/src/customer/use-customer.tsx
index ddecc2fcf..36bf88617 100644
--- a/framework/bigcommerce/customer/use-customer.tsx
+++ b/packages/bigcommerce/src/customer/use-customer.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
 import type { CustomerHook } from '../types/customer'
 
 export default useCustomer as UseCustomer<typeof handler>
diff --git a/framework/bigcommerce/fetcher.ts b/packages/bigcommerce/src/fetcher.ts
similarity index 88%
rename from framework/bigcommerce/fetcher.ts
rename to packages/bigcommerce/src/fetcher.ts
index f8ca0c578..bc8a6b9aa 100644
--- a/framework/bigcommerce/fetcher.ts
+++ b/packages/bigcommerce/src/fetcher.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { Fetcher } from '@commerce/utils/types'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { Fetcher } from '@vercel/commerce/utils/types'
 
 async function getText(res: Response) {
   try {
diff --git a/framework/bigcommerce/index.tsx b/packages/bigcommerce/src/index.tsx
similarity index 93%
rename from framework/bigcommerce/index.tsx
rename to packages/bigcommerce/src/index.tsx
index 3259836b9..a7de60924 100644
--- a/framework/bigcommerce/index.tsx
+++ b/packages/bigcommerce/src/index.tsx
@@ -1,4 +1,4 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
 import { bigcommerceProvider, BigcommerceProvider } from './provider'
 
 export { bigcommerceProvider }
diff --git a/framework/bigcommerce/lib/get-slug.ts b/packages/bigcommerce/src/lib/get-slug.ts
similarity index 100%
rename from framework/bigcommerce/lib/get-slug.ts
rename to packages/bigcommerce/src/lib/get-slug.ts
diff --git a/framework/bigcommerce/lib/immutability.ts b/packages/bigcommerce/src/lib/immutability.ts
similarity index 100%
rename from framework/bigcommerce/lib/immutability.ts
rename to packages/bigcommerce/src/lib/immutability.ts
diff --git a/framework/bigcommerce/lib/normalize.ts b/packages/bigcommerce/src/lib/normalize.ts
similarity index 100%
rename from framework/bigcommerce/lib/normalize.ts
rename to packages/bigcommerce/src/lib/normalize.ts
diff --git a/framework/bigcommerce/next.config.js b/packages/bigcommerce/src/next.config.cjs
similarity index 100%
rename from framework/bigcommerce/next.config.js
rename to packages/bigcommerce/src/next.config.cjs
diff --git a/framework/bigcommerce/product/index.ts b/packages/bigcommerce/src/product/index.ts
similarity index 100%
rename from framework/bigcommerce/product/index.ts
rename to packages/bigcommerce/src/product/index.ts
diff --git a/packages/bigcommerce/src/product/use-price.tsx b/packages/bigcommerce/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/bigcommerce/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/bigcommerce/product/use-search.tsx b/packages/bigcommerce/src/product/use-search.tsx
similarity index 91%
rename from framework/bigcommerce/product/use-search.tsx
rename to packages/bigcommerce/src/product/use-search.tsx
index 76fab00a4..fd918e341 100644
--- a/framework/bigcommerce/product/use-search.tsx
+++ b/packages/bigcommerce/src/product/use-search.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 import type { SearchProductsHook } from '../types/product'
 
 export default useSearch as UseSearch<typeof handler>
diff --git a/framework/bigcommerce/provider.ts b/packages/bigcommerce/src/provider.ts
similarity index 100%
rename from framework/bigcommerce/provider.ts
rename to packages/bigcommerce/src/provider.ts
diff --git a/framework/bigcommerce/types/cart.ts b/packages/bigcommerce/src/types/cart.ts
similarity index 94%
rename from framework/bigcommerce/types/cart.ts
rename to packages/bigcommerce/src/types/cart.ts
index 33c01e4c6..3b5d8288b 100644
--- a/framework/bigcommerce/types/cart.ts
+++ b/packages/bigcommerce/src/types/cart.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/cart'
+import * as Core from '@vercel/commerce/types/cart'
 
-export * from '@commerce/types/cart'
+export * from '@vercel/commerce/types/cart'
 
 // TODO: this type should match:
 // https://developer.bigcommerce.com/api-reference/cart-checkout/server-server-cart-api/cart/getacart#responses
diff --git a/packages/bigcommerce/src/types/checkout.ts b/packages/bigcommerce/src/types/checkout.ts
new file mode 100644
index 000000000..d139db685
--- /dev/null
+++ b/packages/bigcommerce/src/types/checkout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/checkout'
diff --git a/packages/bigcommerce/src/types/common.ts b/packages/bigcommerce/src/types/common.ts
new file mode 100644
index 000000000..23b8daa11
--- /dev/null
+++ b/packages/bigcommerce/src/types/common.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/common'
diff --git a/packages/bigcommerce/src/types/customer.ts b/packages/bigcommerce/src/types/customer.ts
new file mode 100644
index 000000000..6e66366be
--- /dev/null
+++ b/packages/bigcommerce/src/types/customer.ts
@@ -0,0 +1,5 @@
+import * as Core from '@vercel/commerce/types/customer'
+
+export * from '@vercel/commerce/types/customer'
+
+export type CustomerSchema = Core.CustomerSchema
diff --git a/framework/bigcommerce/types/index.ts b/packages/bigcommerce/src/types/index.ts
similarity index 100%
rename from framework/bigcommerce/types/index.ts
rename to packages/bigcommerce/src/types/index.ts
diff --git a/packages/bigcommerce/src/types/login.ts b/packages/bigcommerce/src/types/login.ts
new file mode 100644
index 000000000..eff27ca46
--- /dev/null
+++ b/packages/bigcommerce/src/types/login.ts
@@ -0,0 +1,8 @@
+import * as Core from '@vercel/commerce/types/login'
+import type { LoginMutationVariables } from '../../schema'
+
+export * from '@vercel/commerce/types/login'
+
+export type LoginOperation = Core.LoginOperation & {
+  variables: LoginMutationVariables
+}
diff --git a/packages/bigcommerce/src/types/logout.ts b/packages/bigcommerce/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/bigcommerce/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/framework/bigcommerce/types/page.ts b/packages/bigcommerce/src/types/page.ts
similarity index 68%
rename from framework/bigcommerce/types/page.ts
rename to packages/bigcommerce/src/types/page.ts
index 2bccfade2..ccbc29f7b 100644
--- a/framework/bigcommerce/types/page.ts
+++ b/packages/bigcommerce/src/types/page.ts
@@ -1,5 +1,5 @@
-import * as Core from '@commerce/types/page'
-export * from '@commerce/types/page'
+import * as Core from '@vercel/commerce/types/page'
+export * from '@vercel/commerce/types/page'
 
 export type Page = Core.Page
 
diff --git a/packages/bigcommerce/src/types/product.ts b/packages/bigcommerce/src/types/product.ts
new file mode 100644
index 000000000..72ca02f02
--- /dev/null
+++ b/packages/bigcommerce/src/types/product.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/product'
diff --git a/packages/bigcommerce/src/types/signup.ts b/packages/bigcommerce/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/bigcommerce/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/framework/bigcommerce/types/site.ts b/packages/bigcommerce/src/types/site.ts
similarity index 77%
rename from framework/bigcommerce/types/site.ts
rename to packages/bigcommerce/src/types/site.ts
index 12dd7038c..5c3074cc9 100644
--- a/framework/bigcommerce/types/site.ts
+++ b/packages/bigcommerce/src/types/site.ts
@@ -1,7 +1,7 @@
-import * as Core from '@commerce/types/site'
-import type { GetSiteInfoQuery, GetSiteInfoQueryVariables } from '../schema'
+import * as Core from '@vercel/commerce/types/site'
+import type { GetSiteInfoQuery, GetSiteInfoQueryVariables } from '../../schema'
 
-export * from '@commerce/types/site'
+export * from '@vercel/commerce/types/site'
 
 export type BCCategory = NonNullable<
   GetSiteInfoQuery['site']['categoryTree']
diff --git a/framework/bigcommerce/types/wishlist.ts b/packages/bigcommerce/src/types/wishlist.ts
similarity index 85%
rename from framework/bigcommerce/types/wishlist.ts
rename to packages/bigcommerce/src/types/wishlist.ts
index 9e9c52353..67cf58c26 100644
--- a/framework/bigcommerce/types/wishlist.ts
+++ b/packages/bigcommerce/src/types/wishlist.ts
@@ -1,8 +1,8 @@
-import * as Core from '@commerce/types/wishlist'
+import * as Core from '@vercel/commerce/types/wishlist'
 import { definitions } from '../api/definitions/wishlist'
 import type { ProductEdge } from '../api/operations/get-all-products'
 
-export * from '@commerce/types/wishlist'
+export * from '@vercel/commerce/types/wishlist'
 
 export type WishlistItem = NonNullable<
   definitions['wishlist_Full']['items']
diff --git a/framework/bigcommerce/wishlist/index.ts b/packages/bigcommerce/src/wishlist/index.ts
similarity index 100%
rename from framework/bigcommerce/wishlist/index.ts
rename to packages/bigcommerce/src/wishlist/index.ts
diff --git a/framework/bigcommerce/wishlist/use-add-item.tsx b/packages/bigcommerce/src/wishlist/use-add-item.tsx
similarity index 82%
rename from framework/bigcommerce/wishlist/use-add-item.tsx
rename to packages/bigcommerce/src/wishlist/use-add-item.tsx
index 3602acdfc..c9e237b0b 100644
--- a/framework/bigcommerce/wishlist/use-add-item.tsx
+++ b/packages/bigcommerce/src/wishlist/use-add-item.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/wishlist/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/wishlist/use-add-item'
 import type { AddItemHook } from '../types/wishlist'
 import useCustomer from '../customer/use-customer'
 import useWishlist from './use-wishlist'
diff --git a/framework/bigcommerce/wishlist/use-remove-item.tsx b/packages/bigcommerce/src/wishlist/use-remove-item.tsx
similarity index 85%
rename from framework/bigcommerce/wishlist/use-remove-item.tsx
rename to packages/bigcommerce/src/wishlist/use-remove-item.tsx
index 84bb579ce..40ca0da04 100644
--- a/framework/bigcommerce/wishlist/use-remove-item.tsx
+++ b/packages/bigcommerce/src/wishlist/use-remove-item.tsx
@@ -1,9 +1,9 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 import useRemoveItem, {
   UseRemoveItem,
-} from '@commerce/wishlist/use-remove-item'
+} from '@vercel/commerce/wishlist/use-remove-item'
 import type { RemoveItemHook } from '../types/wishlist'
 import useCustomer from '../customer/use-customer'
 import useWishlist from './use-wishlist'
diff --git a/framework/bigcommerce/wishlist/use-wishlist.tsx b/packages/bigcommerce/src/wishlist/use-wishlist.tsx
similarity index 90%
rename from framework/bigcommerce/wishlist/use-wishlist.tsx
rename to packages/bigcommerce/src/wishlist/use-wishlist.tsx
index 7c09f835a..e77d6885b 100644
--- a/framework/bigcommerce/wishlist/use-wishlist.tsx
+++ b/packages/bigcommerce/src/wishlist/use-wishlist.tsx
@@ -1,6 +1,6 @@
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useWishlist, { UseWishlist } from '@commerce/wishlist/use-wishlist'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useWishlist, { UseWishlist } from '@vercel/commerce/wishlist/use-wishlist'
 import type { GetWishlistHook } from '../types/wishlist'
 import useCustomer from '../customer/use-customer'
 
diff --git a/packages/bigcommerce/tsconfig.json b/packages/bigcommerce/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/bigcommerce/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/commerce/.prettierignore b/packages/commerce/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/commerce/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/commerce/.prettierrc b/packages/commerce/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/commerce/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/commerce/README.md b/packages/commerce/README.md
similarity index 100%
rename from framework/commerce/README.md
rename to packages/commerce/README.md
diff --git a/packages/commerce/fixup.mjs b/packages/commerce/fixup.mjs
new file mode 100755
index 000000000..b276f5c14
--- /dev/null
+++ b/packages/commerce/fixup.mjs
@@ -0,0 +1,5 @@
+import { readFile, writeFile } from 'fs/promises'
+
+const packageJson = await readFile('package.json', 'utf8')
+
+writeFile('dist/package.json', packageJson, 'utf8')
diff --git a/framework/commerce/new-provider.md b/packages/commerce/new-provider.md
similarity index 59%
rename from framework/commerce/new-provider.md
rename to packages/commerce/new-provider.md
index 53b6c2a38..546b933f6 100644
--- a/framework/commerce/new-provider.md
+++ b/packages/commerce/new-provider.md
@@ -4,108 +4,82 @@
 
 A commerce provider is a headless e-commerce platform that integrates with the [Commerce Framework](./README.md). Right now we have the following providers:
 
-- Local ([framework/local](../local))
-- Shopify ([framework/shopify](../shopify))
-- Swell ([framework/swell](../swell))
-- BigCommerce ([framework/bigcommerce](../bigcommerce))
-- Vendure ([framework/vendure](../vendure))
-- Saleor ([framework/saleor](../saleor))
-- OrderCloud ([framework/ordercloud](../ordercloud))
-- Spree ([framework/spree](../spree))
-- Kibo Commerce ([framework/kibocommerce](../kibocommerce))
-- Commerce.js ([framework/commercejs](../commercejs))
+- Local ([packages/local](../local))
+- Shopify ([packages/shopify](../shopify))
+- Swell ([packages/swell](../swell))
+- BigCommerce ([packages/bigcommerce](../bigcommerce))
+- Vendure ([packages/vendure](../vendure))
+- Saleor ([packages/saleor](../saleor))
+- OrderCloud ([packages/ordercloud](../ordercloud))
+- Spree ([packages/spree](../spree))
+- Kibo Commerce ([packages/kibocommerce](../kibocommerce))
+- Commerce.js ([packages/commercejs](../commercejs))
 
-Adding a commerce provider means adding a new folder in `framework` with a folder structure like the next one:
+Adding a commerce provider means adding a new folder in `packages` with a folder structure like the next one:
 
-- `api`
-  - index.ts
-- `product`
-  - usePrice
-  - useSearch
-  - getProduct
-  - getAllProducts
-- `wishlist`
-  - useWishlist
-  - useAddItem
-  - useRemoveItem
-- `auth`
-  - useLogin
-  - useLogout
-  - useSignup
-- `customer`
-  - useCustomer
-  - getCustomerId
-  - getCustomerWistlist
-- `cart`
-  - useCart
-  - useAddItem
-  - useRemoveItem
-  - useUpdateItem
+- `src`
+  - `api`
+    - index.ts
+  - `product`
+    - usePrice
+    - useSearch
+    - getProduct
+    - getAllProducts
+  - `wishlist`
+    - useWishlist
+    - useAddItem
+    - useRemoveItem
+  - `auth`
+    - useLogin
+    - useLogout
+    - useSignup
+  - `customer`
+    - useCustomer
+    - getCustomerId
+    - getCustomerWistlist
+  - `cart`
+    - useCart
+    - useAddItem
+    - useRemoveItem
+    - useUpdateItem
+  - `index.ts`
+  - `provider.ts`
+  - `commerce.config.json`
+  - `next.config.cjs`
+- `package.json`
+- `tsconfig.json`
 - `env.template`
-- `index.ts`
-- `provider.ts`
-- `commerce.config.json`
-- `next.config.js`
 - `README.md`
 
 `provider.ts` exports a provider object with handlers for the [Commerce Hooks](./README.md#commerce-hooks) and `api/index.ts` exports a Node.js provider for the [Commerce API](./README.md#commerce-api)
 
 > **Important:** We use TypeScript for every provider and expect its usage for every new one.
 
-The app imports from the provider directly instead of the core commerce folder (`framework/commerce`), but all providers are interchangeable and to achieve it every provider always has to implement the core types and helpers.
-
-The provider folder should only depend on `framework/commerce` and dependencies in the main `package.json`. In the future we'll move the `framework` folder to a package that can be shared easily for multiple apps.
+The app imports from the provider directly instead of the core commerce folder (`packages/commerce`), but all providers are interchangeable and to achieve it every provider always has to implement the core types and helpers.
 
 ## Updating the list of known providers
 
-Open [./config.js](./config.js) and add the provider name to the list in `PROVIDERS`.
+Open [/site/commerce-config.js](/site/commerce-config.js) and add the provider name to the list in `PROVIDERS`.
 
-Then, open [/.env.template](/.env.template) and add the provider name in the first line.
+Then, open [/site/.env.template](/site/.env.template) and add the provider name to the list there too.
 
 ## Adding the provider hooks
 
 Using BigCommerce as an example. The first thing to do is export a `CommerceProvider` component that includes a `provider` object with all the handlers that can be used for hooks:
 
 ```tsx
-import type { ReactNode } from 'react'
-import {
-  CommerceConfig,
-  CommerceProvider as CoreCommerceProvider,
-  useCommerce as useCoreCommerce,
-} from '@commerce'
-import { bigcommerceProvider } from './provider'
-import type { BigcommerceProvider } from './provider'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
+import { bigcommerceProvider, BigcommerceProvider } from './provider'
 
 export { bigcommerceProvider }
 export type { BigcommerceProvider }
 
-export const bigcommerceConfig: CommerceConfig = {
-  locale: 'en-us',
-  cartCookie: 'bc_cartId',
-}
-
-export type BigcommerceConfig = Partial<CommerceConfig>
-
-export type BigcommerceProps = {
-  children?: ReactNode
-  locale: string
-} & BigcommerceConfig
-
-export function CommerceProvider({ children, ...config }: BigcommerceProps) {
-  return (
-    <CoreCommerceProvider
-      provider={bigcommerceProvider}
-      config={{ ...bigcommerceConfig, ...config }}
-    >
-      {children}
-    </CoreCommerceProvider>
-  )
-}
+export const CommerceProvider = getCommerceProvider(bigcommerceProvider)
 
 export const useCommerce = () => useCoreCommerce<BigcommerceProvider>()
 ```
 
-The exported types and components extend from the core ones exported by `@commerce`, which refers to `framework/commerce`.
+The exported types and components extend from the core ones exported by `@vercel/commerce`, which refers to `packages/commerce`.
 
 The `bigcommerceProvider` object looks like this:
 
@@ -146,33 +120,23 @@ export const bigcommerceProvider = {
 export type BigcommerceProvider = typeof bigcommerceProvider
 ```
 
-The provider object, in this case `bigcommerceProvider`, has to match the `Provider` type defined in [framework/commerce](./index.ts).
+The provider object, in this case `bigcommerceProvider`, has to match the `Provider` type defined in [packages/commerce](./src/index.tsx).
 
 A hook handler, like `useCart`, looks like this:
 
 ```tsx
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart, FetchCartInput } from '@commerce/cart/use-cart'
-import { normalizeCart } from '../lib/normalize'
-import type { Cart } from '../types'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
 
 export default useCart as UseCart<typeof handler>
 
-export const handler: SWRHook<
-  Cart | null,
-  {},
-  FetchCartInput,
-  { isEmpty?: boolean }
-> = {
+export const handler: SWRHook<GetCartHook> = {
   fetchOptions: {
     url: '/api/cart',
     method: 'GET',
   },
-  async fetcher({ input: { cartId }, options, fetch }) {
-    const data = cartId ? await fetch(options) : null
-    return data && normalizeCart(data)
-  },
   useHook:
     ({ useData }) =>
     (input) => {
@@ -200,21 +164,15 @@ In the case of data fetching hooks like `useCart` each handler has to implement
 
 ```tsx
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
-import { normalizeCart } from '../lib/normalize'
-import type {
-  Cart,
-  BigcommerceCart,
-  CartItemBody,
-  AddCartItemBody,
-} from '../types'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 
 export default useAddItem as UseAddItem<typeof handler>
 
-export const handler: MutationHook<Cart, {}, CartItemBody> = {
+export const handler: MutationHook<AddItemHook> = {
   fetchOptions: {
     url: '/api/cart',
     method: 'POST',
@@ -229,12 +187,12 @@ export const handler: MutationHook<Cart, {}, CartItemBody> = {
       })
     }
 
-    const data = await fetch<BigcommerceCart, AddCartItemBody>({
+    const data = await fetch({
       ...options,
       body: { item },
     })
 
-    return normalizeCart(data)
+    return data
   },
   useHook:
     ({ fetch }) =>
@@ -276,9 +234,3 @@ When creating a PR for a new provider, include this list in the PR description a
 * [ ]  Custom checkout
 * [ ]  Typing (in progress)
 * [ ]  Tests
-
-## Adding the Node.js provider API
-
-TODO
-
-> The commerce API is currently going through a refactor in https://github.com/vercel/commerce/pull/252 - We'll update the docs once the API is released.
diff --git a/packages/commerce/package.json b/packages/commerce/package.json
new file mode 100644
index 000000000..17302b77f
--- /dev/null
+++ b/packages/commerce/package.json
@@ -0,0 +1,76 @@
+{
+  "name": "@vercel/commerce",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./config": "./dist/config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "config": [
+        "dist/config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "config": [
+          "dist/config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/fetch": "^6.1.1",
+    "deepmerge": "^4.2.2",
+    "import-cwd": "^3.0.0",
+    "js-cookie": "^3.0.1",
+    "swr": "^1.2.0"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/js-cookie": "^3.0.1",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/commerce/api/endpoints/cart.ts b/packages/commerce/src/api/endpoints/cart.ts
similarity index 100%
rename from framework/commerce/api/endpoints/cart.ts
rename to packages/commerce/src/api/endpoints/cart.ts
diff --git a/framework/commerce/api/endpoints/catalog/products.ts b/packages/commerce/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/commerce/api/endpoints/catalog/products.ts
rename to packages/commerce/src/api/endpoints/catalog/products.ts
diff --git a/framework/commerce/api/endpoints/checkout.ts b/packages/commerce/src/api/endpoints/checkout.ts
similarity index 100%
rename from framework/commerce/api/endpoints/checkout.ts
rename to packages/commerce/src/api/endpoints/checkout.ts
diff --git a/framework/commerce/api/endpoints/customer/address.ts b/packages/commerce/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/commerce/api/endpoints/customer/address.ts
rename to packages/commerce/src/api/endpoints/customer/address.ts
diff --git a/framework/commerce/api/endpoints/customer/card.ts b/packages/commerce/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/commerce/api/endpoints/customer/card.ts
rename to packages/commerce/src/api/endpoints/customer/card.ts
diff --git a/framework/commerce/api/endpoints/customer/index.ts b/packages/commerce/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/commerce/api/endpoints/customer/index.ts
rename to packages/commerce/src/api/endpoints/customer/index.ts
diff --git a/framework/commerce/api/endpoints/login.ts b/packages/commerce/src/api/endpoints/login.ts
similarity index 100%
rename from framework/commerce/api/endpoints/login.ts
rename to packages/commerce/src/api/endpoints/login.ts
diff --git a/framework/commerce/api/endpoints/logout.ts b/packages/commerce/src/api/endpoints/logout.ts
similarity index 100%
rename from framework/commerce/api/endpoints/logout.ts
rename to packages/commerce/src/api/endpoints/logout.ts
diff --git a/framework/commerce/api/endpoints/signup.ts b/packages/commerce/src/api/endpoints/signup.ts
similarity index 100%
rename from framework/commerce/api/endpoints/signup.ts
rename to packages/commerce/src/api/endpoints/signup.ts
diff --git a/framework/commerce/api/endpoints/wishlist.ts b/packages/commerce/src/api/endpoints/wishlist.ts
similarity index 100%
rename from framework/commerce/api/endpoints/wishlist.ts
rename to packages/commerce/src/api/endpoints/wishlist.ts
diff --git a/framework/commerce/api/index.ts b/packages/commerce/src/api/index.ts
similarity index 100%
rename from framework/commerce/api/index.ts
rename to packages/commerce/src/api/index.ts
diff --git a/framework/commerce/api/operations.ts b/packages/commerce/src/api/operations.ts
similarity index 100%
rename from framework/commerce/api/operations.ts
rename to packages/commerce/src/api/operations.ts
diff --git a/framework/commerce/api/utils/errors.ts b/packages/commerce/src/api/utils/errors.ts
similarity index 100%
rename from framework/commerce/api/utils/errors.ts
rename to packages/commerce/src/api/utils/errors.ts
diff --git a/framework/commerce/api/utils/is-allowed-method.ts b/packages/commerce/src/api/utils/is-allowed-method.ts
similarity index 100%
rename from framework/commerce/api/utils/is-allowed-method.ts
rename to packages/commerce/src/api/utils/is-allowed-method.ts
diff --git a/framework/commerce/api/utils/is-allowed-operation.ts b/packages/commerce/src/api/utils/is-allowed-operation.ts
similarity index 100%
rename from framework/commerce/api/utils/is-allowed-operation.ts
rename to packages/commerce/src/api/utils/is-allowed-operation.ts
diff --git a/framework/commerce/api/utils/types.ts b/packages/commerce/src/api/utils/types.ts
similarity index 100%
rename from framework/commerce/api/utils/types.ts
rename to packages/commerce/src/api/utils/types.ts
diff --git a/framework/commerce/auth/use-login.tsx b/packages/commerce/src/auth/use-login.tsx
similarity index 100%
rename from framework/commerce/auth/use-login.tsx
rename to packages/commerce/src/auth/use-login.tsx
diff --git a/framework/commerce/auth/use-logout.tsx b/packages/commerce/src/auth/use-logout.tsx
similarity index 100%
rename from framework/commerce/auth/use-logout.tsx
rename to packages/commerce/src/auth/use-logout.tsx
diff --git a/framework/commerce/auth/use-signup.tsx b/packages/commerce/src/auth/use-signup.tsx
similarity index 100%
rename from framework/commerce/auth/use-signup.tsx
rename to packages/commerce/src/auth/use-signup.tsx
diff --git a/framework/commerce/cart/use-add-item.tsx b/packages/commerce/src/cart/use-add-item.tsx
similarity index 100%
rename from framework/commerce/cart/use-add-item.tsx
rename to packages/commerce/src/cart/use-add-item.tsx
diff --git a/framework/commerce/cart/use-cart.tsx b/packages/commerce/src/cart/use-cart.tsx
similarity index 100%
rename from framework/commerce/cart/use-cart.tsx
rename to packages/commerce/src/cart/use-cart.tsx
diff --git a/framework/commerce/cart/use-remove-item.tsx b/packages/commerce/src/cart/use-remove-item.tsx
similarity index 100%
rename from framework/commerce/cart/use-remove-item.tsx
rename to packages/commerce/src/cart/use-remove-item.tsx
diff --git a/framework/commerce/cart/use-update-item.tsx b/packages/commerce/src/cart/use-update-item.tsx
similarity index 100%
rename from framework/commerce/cart/use-update-item.tsx
rename to packages/commerce/src/cart/use-update-item.tsx
diff --git a/framework/commerce/checkout/use-checkout.ts b/packages/commerce/src/checkout/use-checkout.ts
similarity index 100%
rename from framework/commerce/checkout/use-checkout.ts
rename to packages/commerce/src/checkout/use-checkout.ts
diff --git a/framework/commerce/checkout/use-submit-checkout.tsx b/packages/commerce/src/checkout/use-submit-checkout.tsx
similarity index 100%
rename from framework/commerce/checkout/use-submit-checkout.tsx
rename to packages/commerce/src/checkout/use-submit-checkout.tsx
diff --git a/packages/commerce/src/config.cjs b/packages/commerce/src/config.cjs
new file mode 100644
index 000000000..aabc16e0c
--- /dev/null
+++ b/packages/commerce/src/config.cjs
@@ -0,0 +1,31 @@
+/**
+ * This file is expected to be used in next.config.js only
+ */
+
+const path = require('path')
+const merge = require('deepmerge')
+const importCwd = require('import-cwd')
+
+function withCommerceConfig(nextConfig = {}) {
+  const commerce = nextConfig.commerce || {}
+  const { provider } = commerce
+
+  if (!provider) {
+    throw new Error(
+      `The commerce provider is missing, please add a valid provider name`
+    )
+  }
+
+  const commerceNextConfig = importCwd(path.join(provider, 'next.config'))
+  const config = merge(nextConfig, commerceNextConfig)
+
+  config.env = config.env || {}
+
+  Object.entries(config.commerce.features).forEach(([k, v]) => {
+    if (v) config.env[`COMMERCE_${k.toUpperCase()}_ENABLED`] = true
+  })
+
+  return config
+}
+
+module.exports = { withCommerceConfig }
diff --git a/framework/commerce/customer/address/use-add-item.tsx b/packages/commerce/src/customer/address/use-add-item.tsx
similarity index 100%
rename from framework/commerce/customer/address/use-add-item.tsx
rename to packages/commerce/src/customer/address/use-add-item.tsx
diff --git a/framework/commerce/customer/address/use-addresses.tsx b/packages/commerce/src/customer/address/use-addresses.tsx
similarity index 100%
rename from framework/commerce/customer/address/use-addresses.tsx
rename to packages/commerce/src/customer/address/use-addresses.tsx
diff --git a/framework/commerce/customer/address/use-remove-item.tsx b/packages/commerce/src/customer/address/use-remove-item.tsx
similarity index 100%
rename from framework/commerce/customer/address/use-remove-item.tsx
rename to packages/commerce/src/customer/address/use-remove-item.tsx
diff --git a/framework/commerce/customer/address/use-update-item.tsx b/packages/commerce/src/customer/address/use-update-item.tsx
similarity index 100%
rename from framework/commerce/customer/address/use-update-item.tsx
rename to packages/commerce/src/customer/address/use-update-item.tsx
diff --git a/framework/commerce/customer/card/use-add-item.tsx b/packages/commerce/src/customer/card/use-add-item.tsx
similarity index 100%
rename from framework/commerce/customer/card/use-add-item.tsx
rename to packages/commerce/src/customer/card/use-add-item.tsx
diff --git a/framework/commerce/customer/card/use-cards.tsx b/packages/commerce/src/customer/card/use-cards.tsx
similarity index 100%
rename from framework/commerce/customer/card/use-cards.tsx
rename to packages/commerce/src/customer/card/use-cards.tsx
diff --git a/framework/commerce/customer/card/use-remove-item.tsx b/packages/commerce/src/customer/card/use-remove-item.tsx
similarity index 100%
rename from framework/commerce/customer/card/use-remove-item.tsx
rename to packages/commerce/src/customer/card/use-remove-item.tsx
diff --git a/framework/commerce/customer/card/use-update-item.tsx b/packages/commerce/src/customer/card/use-update-item.tsx
similarity index 100%
rename from framework/commerce/customer/card/use-update-item.tsx
rename to packages/commerce/src/customer/card/use-update-item.tsx
diff --git a/framework/commerce/customer/use-customer.tsx b/packages/commerce/src/customer/use-customer.tsx
similarity index 100%
rename from framework/commerce/customer/use-customer.tsx
rename to packages/commerce/src/customer/use-customer.tsx
diff --git a/framework/commerce/index.tsx b/packages/commerce/src/index.tsx
similarity index 99%
rename from framework/commerce/index.tsx
rename to packages/commerce/src/index.tsx
index eaa878a9e..8450f1e3e 100644
--- a/framework/commerce/index.tsx
+++ b/packages/commerce/src/index.tsx
@@ -16,7 +16,7 @@ import type {
   Login,
   Logout,
   Checkout,
-} from '@commerce/types'
+} from './types'
 
 import type { Fetcher, SWRHook, MutationHook } from './utils/types'
 
diff --git a/framework/commerce/product/use-price.tsx b/packages/commerce/src/product/use-price.tsx
similarity index 100%
rename from framework/commerce/product/use-price.tsx
rename to packages/commerce/src/product/use-price.tsx
diff --git a/framework/commerce/product/use-search.tsx b/packages/commerce/src/product/use-search.tsx
similarity index 100%
rename from framework/commerce/product/use-search.tsx
rename to packages/commerce/src/product/use-search.tsx
diff --git a/framework/commerce/types/cart.ts b/packages/commerce/src/types/cart.ts
similarity index 100%
rename from framework/commerce/types/cart.ts
rename to packages/commerce/src/types/cart.ts
diff --git a/framework/commerce/types/checkout.ts b/packages/commerce/src/types/checkout.ts
similarity index 100%
rename from framework/commerce/types/checkout.ts
rename to packages/commerce/src/types/checkout.ts
diff --git a/framework/commerce/types/common.ts b/packages/commerce/src/types/common.ts
similarity index 100%
rename from framework/commerce/types/common.ts
rename to packages/commerce/src/types/common.ts
diff --git a/framework/commerce/types/customer/address.ts b/packages/commerce/src/types/customer/address.ts
similarity index 100%
rename from framework/commerce/types/customer/address.ts
rename to packages/commerce/src/types/customer/address.ts
diff --git a/framework/commerce/types/customer/card.ts b/packages/commerce/src/types/customer/card.ts
similarity index 100%
rename from framework/commerce/types/customer/card.ts
rename to packages/commerce/src/types/customer/card.ts
diff --git a/framework/commerce/types/customer/index.ts b/packages/commerce/src/types/customer/index.ts
similarity index 100%
rename from framework/commerce/types/customer/index.ts
rename to packages/commerce/src/types/customer/index.ts
diff --git a/framework/commerce/types/index.ts b/packages/commerce/src/types/index.ts
similarity index 100%
rename from framework/commerce/types/index.ts
rename to packages/commerce/src/types/index.ts
diff --git a/framework/commerce/types/login.ts b/packages/commerce/src/types/login.ts
similarity index 100%
rename from framework/commerce/types/login.ts
rename to packages/commerce/src/types/login.ts
diff --git a/framework/commerce/types/logout.ts b/packages/commerce/src/types/logout.ts
similarity index 100%
rename from framework/commerce/types/logout.ts
rename to packages/commerce/src/types/logout.ts
diff --git a/framework/commerce/types/page.ts b/packages/commerce/src/types/page.ts
similarity index 100%
rename from framework/commerce/types/page.ts
rename to packages/commerce/src/types/page.ts
diff --git a/framework/commerce/types/product.ts b/packages/commerce/src/types/product.ts
similarity index 100%
rename from framework/commerce/types/product.ts
rename to packages/commerce/src/types/product.ts
diff --git a/framework/commerce/types/signup.ts b/packages/commerce/src/types/signup.ts
similarity index 100%
rename from framework/commerce/types/signup.ts
rename to packages/commerce/src/types/signup.ts
diff --git a/framework/commerce/types/site.ts b/packages/commerce/src/types/site.ts
similarity index 100%
rename from framework/commerce/types/site.ts
rename to packages/commerce/src/types/site.ts
diff --git a/framework/commerce/types/wishlist.ts b/packages/commerce/src/types/wishlist.ts
similarity index 100%
rename from framework/commerce/types/wishlist.ts
rename to packages/commerce/src/types/wishlist.ts
diff --git a/framework/commerce/utils/default-fetcher.ts b/packages/commerce/src/utils/default-fetcher.ts
similarity index 100%
rename from framework/commerce/utils/default-fetcher.ts
rename to packages/commerce/src/utils/default-fetcher.ts
diff --git a/framework/commerce/utils/define-property.ts b/packages/commerce/src/utils/define-property.ts
similarity index 100%
rename from framework/commerce/utils/define-property.ts
rename to packages/commerce/src/utils/define-property.ts
diff --git a/framework/commerce/utils/errors.ts b/packages/commerce/src/utils/errors.ts
similarity index 100%
rename from framework/commerce/utils/errors.ts
rename to packages/commerce/src/utils/errors.ts
diff --git a/framework/commerce/utils/types.ts b/packages/commerce/src/utils/types.ts
similarity index 100%
rename from framework/commerce/utils/types.ts
rename to packages/commerce/src/utils/types.ts
diff --git a/framework/commerce/utils/use-data.tsx b/packages/commerce/src/utils/use-data.tsx
similarity index 100%
rename from framework/commerce/utils/use-data.tsx
rename to packages/commerce/src/utils/use-data.tsx
diff --git a/framework/commerce/utils/use-hook.ts b/packages/commerce/src/utils/use-hook.ts
similarity index 100%
rename from framework/commerce/utils/use-hook.ts
rename to packages/commerce/src/utils/use-hook.ts
diff --git a/framework/commerce/wishlist/index.ts b/packages/commerce/src/wishlist/index.ts
similarity index 100%
rename from framework/commerce/wishlist/index.ts
rename to packages/commerce/src/wishlist/index.ts
diff --git a/framework/commerce/wishlist/use-add-item.tsx b/packages/commerce/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/commerce/wishlist/use-add-item.tsx
rename to packages/commerce/src/wishlist/use-add-item.tsx
diff --git a/framework/commerce/wishlist/use-remove-item.tsx b/packages/commerce/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/commerce/wishlist/use-remove-item.tsx
rename to packages/commerce/src/wishlist/use-remove-item.tsx
diff --git a/framework/commerce/wishlist/use-wishlist.tsx b/packages/commerce/src/wishlist/use-wishlist.tsx
similarity index 100%
rename from framework/commerce/wishlist/use-wishlist.tsx
rename to packages/commerce/src/wishlist/use-wishlist.tsx
diff --git a/packages/commerce/tsconfig.json b/packages/commerce/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/commerce/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/commercejs/.env.template b/packages/commercejs/.env.template
similarity index 100%
rename from framework/commercejs/.env.template
rename to packages/commercejs/.env.template
diff --git a/packages/commercejs/.prettierignore b/packages/commercejs/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/commercejs/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/commercejs/.prettierrc b/packages/commercejs/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/commercejs/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/commercejs/README.md b/packages/commercejs/README.md
similarity index 92%
rename from framework/commercejs/README.md
rename to packages/commercejs/README.md
index b0333c96a..20aaf70e5 100644
--- a/framework/commercejs/README.md
+++ b/packages/commercejs/README.md
@@ -7,7 +7,7 @@ To use this provider you must have a [Commerce.js account](https://commercejs.co
 Next, copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git):
 
 ```bash
-cp framework/commercejs/.env.template .env.local
+cp packages/commercejs/.env.template .env.local
 ```
 
 Then, set the environment variables in `.env.local` to match the ones from your store. You'll need your Commerce.js public API key, which can be found in your Commerce.js dashboard in the `Developer -> API keys` section.
diff --git a/packages/commercejs/global.d.ts b/packages/commercejs/global.d.ts
new file mode 100644
index 000000000..3fc378752
--- /dev/null
+++ b/packages/commercejs/global.d.ts
@@ -0,0 +1 @@
+declare module '@components/checkout/context'
diff --git a/packages/commercejs/package.json b/packages/commercejs/package.json
new file mode 100644
index 000000000..5719f3060
--- /dev/null
+++ b/packages/commercejs/package.json
@@ -0,0 +1,73 @@
+{
+  "name": "@vercel/commerce-commercejs",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@chec/commerce.js": "^2.8.0",
+    "@vercel/commerce": "^0.0.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/chec__commerce.js": "^2.8.4",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/commercejs/api/endpoints/cart/index.ts b/packages/commercejs/src/api/endpoints/cart/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/cart/index.ts
rename to packages/commercejs/src/api/endpoints/cart/index.ts
diff --git a/framework/commercejs/api/endpoints/catalog/index.ts b/packages/commercejs/src/api/endpoints/catalog/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/catalog/index.ts
rename to packages/commercejs/src/api/endpoints/catalog/index.ts
diff --git a/framework/commercejs/api/endpoints/catalog/products/index.ts b/packages/commercejs/src/api/endpoints/catalog/products/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/catalog/products/index.ts
rename to packages/commercejs/src/api/endpoints/catalog/products/index.ts
diff --git a/framework/commercejs/api/endpoints/checkout/get-checkout.ts b/packages/commercejs/src/api/endpoints/checkout/get-checkout.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/checkout/get-checkout.ts
rename to packages/commercejs/src/api/endpoints/checkout/get-checkout.ts
diff --git a/framework/commercejs/api/endpoints/checkout/index.ts b/packages/commercejs/src/api/endpoints/checkout/index.ts
similarity index 79%
rename from framework/commercejs/api/endpoints/checkout/index.ts
rename to packages/commercejs/src/api/endpoints/checkout/index.ts
index 3fc7332e2..1072902e6 100644
--- a/framework/commercejs/api/endpoints/checkout/index.ts
+++ b/packages/commercejs/src/api/endpoints/checkout/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 import type { CheckoutSchema } from '../../../types/checkout'
 import type { CommercejsAPI } from '../..'
 
diff --git a/framework/commercejs/api/endpoints/checkout/submit-checkout.ts b/packages/commercejs/src/api/endpoints/checkout/submit-checkout.ts
similarity index 88%
rename from framework/commercejs/api/endpoints/checkout/submit-checkout.ts
rename to packages/commercejs/src/api/endpoints/checkout/submit-checkout.ts
index a06f349d7..e0f3012cc 100644
--- a/framework/commercejs/api/endpoints/checkout/submit-checkout.ts
+++ b/packages/commercejs/src/api/endpoints/checkout/submit-checkout.ts
@@ -1,5 +1,5 @@
-import type { CardFields } from '@commerce/types/customer/card'
-import type { AddressFields } from '@commerce/types/customer/address'
+import type { CardFields } from '@vercel/commerce/types/customer/card'
+import type { AddressFields } from '@vercel/commerce/types/customer/address'
 import type { CheckoutEndpoint } from '.'
 import sdkFetcherFunction from '../../utils/sdk-fetch'
 import { normalizeTestCheckout } from '../../../utils/normalize-checkout'
diff --git a/framework/commercejs/api/endpoints/customer/address/index.ts b/packages/commercejs/src/api/endpoints/customer/address/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/customer/address/index.ts
rename to packages/commercejs/src/api/endpoints/customer/address/index.ts
diff --git a/framework/commercejs/api/endpoints/customer/card/index.ts b/packages/commercejs/src/api/endpoints/customer/card/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/customer/card/index.ts
rename to packages/commercejs/src/api/endpoints/customer/card/index.ts
diff --git a/framework/commercejs/api/endpoints/customer/index.ts b/packages/commercejs/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/customer/index.ts
rename to packages/commercejs/src/api/endpoints/customer/index.ts
diff --git a/framework/commercejs/api/endpoints/login/index.ts b/packages/commercejs/src/api/endpoints/login/index.ts
similarity index 75%
rename from framework/commercejs/api/endpoints/login/index.ts
rename to packages/commercejs/src/api/endpoints/login/index.ts
index d9eb5abce..a6dbb4432 100644
--- a/framework/commercejs/api/endpoints/login/index.ts
+++ b/packages/commercejs/src/api/endpoints/login/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import loginEndpoint from '@commerce/api/endpoints/login'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import loginEndpoint from '@vercel/commerce/api/endpoints/login'
 import type { LoginSchema } from '../../../types/login'
 import type { CommercejsAPI } from '../..'
 import login from './login'
diff --git a/framework/commercejs/api/endpoints/login/login.ts b/packages/commercejs/src/api/endpoints/login/login.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/login/login.ts
rename to packages/commercejs/src/api/endpoints/login/login.ts
diff --git a/framework/commercejs/api/endpoints/logout/index.ts b/packages/commercejs/src/api/endpoints/logout/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/logout/index.ts
rename to packages/commercejs/src/api/endpoints/logout/index.ts
diff --git a/framework/commercejs/api/endpoints/signup/index.ts b/packages/commercejs/src/api/endpoints/signup/index.ts
similarity index 100%
rename from framework/commercejs/api/endpoints/signup/index.ts
rename to packages/commercejs/src/api/endpoints/signup/index.ts
diff --git a/framework/commercejs/api/endpoints/wishlist/index.tsx b/packages/commercejs/src/api/endpoints/wishlist/index.tsx
similarity index 100%
rename from framework/commercejs/api/endpoints/wishlist/index.tsx
rename to packages/commercejs/src/api/endpoints/wishlist/index.tsx
diff --git a/framework/commercejs/api/index.ts b/packages/commercejs/src/api/index.ts
similarity index 89%
rename from framework/commercejs/api/index.ts
rename to packages/commercejs/src/api/index.ts
index faccd5a01..1bc821865 100644
--- a/framework/commercejs/api/index.ts
+++ b/packages/commercejs/src/api/index.ts
@@ -1,5 +1,5 @@
-import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
-import { getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
+import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
 
 import getAllPages from './operations/get-all-pages'
 import getPage from './operations/get-page'
diff --git a/framework/commercejs/api/operations/get-all-pages.ts b/packages/commercejs/src/api/operations/get-all-pages.ts
similarity index 100%
rename from framework/commercejs/api/operations/get-all-pages.ts
rename to packages/commercejs/src/api/operations/get-all-pages.ts
diff --git a/framework/commercejs/api/operations/get-all-product-paths.ts b/packages/commercejs/src/api/operations/get-all-product-paths.ts
similarity index 92%
rename from framework/commercejs/api/operations/get-all-product-paths.ts
rename to packages/commercejs/src/api/operations/get-all-product-paths.ts
index 570d43b13..03b7eee96 100644
--- a/framework/commercejs/api/operations/get-all-product-paths.ts
+++ b/packages/commercejs/src/api/operations/get-all-product-paths.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type {
   GetAllProductPathsOperation,
   CommercejsProduct,
diff --git a/framework/commercejs/api/operations/get-all-products.ts b/packages/commercejs/src/api/operations/get-all-products.ts
similarity index 91%
rename from framework/commercejs/api/operations/get-all-products.ts
rename to packages/commercejs/src/api/operations/get-all-products.ts
index 043b0491c..485ea22ee 100644
--- a/framework/commercejs/api/operations/get-all-products.ts
+++ b/packages/commercejs/src/api/operations/get-all-products.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { GetAllProductsOperation } from '../../types/product'
 import type { CommercejsConfig, Provider } from '../index'
 
diff --git a/framework/commercejs/api/operations/get-page.ts b/packages/commercejs/src/api/operations/get-page.ts
similarity index 100%
rename from framework/commercejs/api/operations/get-page.ts
rename to packages/commercejs/src/api/operations/get-page.ts
diff --git a/framework/commercejs/api/operations/get-product.ts b/packages/commercejs/src/api/operations/get-product.ts
similarity index 93%
rename from framework/commercejs/api/operations/get-product.ts
rename to packages/commercejs/src/api/operations/get-product.ts
index f71aab278..c8fa5901b 100644
--- a/framework/commercejs/api/operations/get-product.ts
+++ b/packages/commercejs/src/api/operations/get-product.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { GetProductOperation } from '../../types/product'
 import type { CommercejsConfig, Provider } from '../index'
 import { normalizeProduct } from '../../utils/normalize-product'
diff --git a/framework/commercejs/api/operations/get-site-info.ts b/packages/commercejs/src/api/operations/get-site-info.ts
similarity index 92%
rename from framework/commercejs/api/operations/get-site-info.ts
rename to packages/commercejs/src/api/operations/get-site-info.ts
index 922fd7e76..0b4046d7c 100644
--- a/framework/commercejs/api/operations/get-site-info.ts
+++ b/packages/commercejs/src/api/operations/get-site-info.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { Category, GetSiteInfoOperation } from '../../types/site'
 import { normalizeCategory } from '../../utils/normalize-category'
 import type { CommercejsConfig, Provider } from '../index'
diff --git a/framework/commercejs/api/operations/index.ts b/packages/commercejs/src/api/operations/index.ts
similarity index 100%
rename from framework/commercejs/api/operations/index.ts
rename to packages/commercejs/src/api/operations/index.ts
diff --git a/framework/commercejs/api/utils/graphql-fetch.ts b/packages/commercejs/src/api/utils/graphql-fetch.ts
similarity index 71%
rename from framework/commercejs/api/utils/graphql-fetch.ts
rename to packages/commercejs/src/api/utils/graphql-fetch.ts
index 805177405..64ebf4d6b 100644
--- a/framework/commercejs/api/utils/graphql-fetch.ts
+++ b/packages/commercejs/src/api/utils/graphql-fetch.ts
@@ -1,7 +1,7 @@
-import type { GraphQLFetcher } from '@commerce/api'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { CommercejsConfig } from '../'
 
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 const fetchGraphqlApi: (getConfig: () => CommercejsConfig) => GraphQLFetcher =
   () => async () => {
diff --git a/framework/commercejs/api/utils/sdk-fetch.ts b/packages/commercejs/src/api/utils/sdk-fetch.ts
similarity index 100%
rename from framework/commercejs/api/utils/sdk-fetch.ts
rename to packages/commercejs/src/api/utils/sdk-fetch.ts
diff --git a/framework/commercejs/auth/index.ts b/packages/commercejs/src/auth/index.ts
similarity index 100%
rename from framework/commercejs/auth/index.ts
rename to packages/commercejs/src/auth/index.ts
diff --git a/framework/commercejs/auth/use-login.tsx b/packages/commercejs/src/auth/use-login.tsx
similarity index 80%
rename from framework/commercejs/auth/use-login.tsx
rename to packages/commercejs/src/auth/use-login.tsx
index 7bc9fd534..4287d39d6 100644
--- a/framework/commercejs/auth/use-login.tsx
+++ b/packages/commercejs/src/auth/use-login.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
-import type { LoginHook } from '@commerce/types/login'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
+import type { LoginHook } from '@vercel/commerce/types/login'
 import { getDeploymentUrl } from '../utils/get-deployment-url'
 
 export default useLogin as UseLogin<typeof handler>
diff --git a/framework/commercejs/auth/use-logout.tsx b/packages/commercejs/src/auth/use-logout.tsx
similarity index 74%
rename from framework/commercejs/auth/use-logout.tsx
rename to packages/commercejs/src/auth/use-logout.tsx
index 6b841637f..7c60f3442 100644
--- a/framework/commercejs/auth/use-logout.tsx
+++ b/packages/commercejs/src/auth/use-logout.tsx
@@ -1,8 +1,8 @@
 import { useCallback } from 'react'
 import Cookies from 'js-cookie'
-import { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
-import type { LogoutHook } from '@commerce/types/logout'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
+import type { LogoutHook } from '@vercel/commerce/types/logout'
 import useCustomer from '../customer/use-customer'
 import { CUSTOMER_COOKIE } from '../constants'
 
diff --git a/framework/commercejs/auth/use-signup.tsx b/packages/commercejs/src/auth/use-signup.tsx
similarity index 64%
rename from framework/commercejs/auth/use-signup.tsx
rename to packages/commercejs/src/auth/use-signup.tsx
index 07fabce0f..1cc9538e7 100644
--- a/framework/commercejs/auth/use-signup.tsx
+++ b/packages/commercejs/src/auth/use-signup.tsx
@@ -1,5 +1,5 @@
-import { MutationHook } from '@commerce/utils/types'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 
 export default useSignup as UseSignup<typeof handler>
 
diff --git a/framework/commercejs/cart/index.ts b/packages/commercejs/src/cart/index.ts
similarity index 100%
rename from framework/commercejs/cart/index.ts
rename to packages/commercejs/src/cart/index.ts
diff --git a/framework/commercejs/cart/use-add-item.tsx b/packages/commercejs/src/cart/use-add-item.tsx
similarity index 84%
rename from framework/commercejs/cart/use-add-item.tsx
rename to packages/commercejs/src/cart/use-add-item.tsx
index 24dd057b6..3bbad1147 100644
--- a/framework/commercejs/cart/use-add-item.tsx
+++ b/packages/commercejs/src/cart/use-add-item.tsx
@@ -1,7 +1,7 @@
-import type { AddItemHook } from '@commerce/types/cart'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 import { useCallback } from 'react'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
 import type { CommercejsCart } from '../types/cart'
 import { normalizeCart } from '../utils/normalize-cart'
 import useCart from './use-cart'
diff --git a/framework/commercejs/cart/use-cart.tsx b/packages/commercejs/src/cart/use-cart.tsx
similarity index 83%
rename from framework/commercejs/cart/use-cart.tsx
rename to packages/commercejs/src/cart/use-cart.tsx
index beb807362..57592ec37 100644
--- a/framework/commercejs/cart/use-cart.tsx
+++ b/packages/commercejs/src/cart/use-cart.tsx
@@ -1,7 +1,7 @@
 import { useMemo } from 'react'
-import type { GetCartHook } from '@commerce/types/cart'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 import type { CommercejsCart } from '../types/cart'
 import { normalizeCart } from '../utils/normalize-cart'
 
diff --git a/framework/commercejs/cart/use-remove-item.tsx b/packages/commercejs/src/cart/use-remove-item.tsx
similarity index 81%
rename from framework/commercejs/cart/use-remove-item.tsx
rename to packages/commercejs/src/cart/use-remove-item.tsx
index 9b492e9eb..c9e57872d 100644
--- a/framework/commercejs/cart/use-remove-item.tsx
+++ b/packages/commercejs/src/cart/use-remove-item.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import type { RemoveItemHook } from '@commerce/types/cart'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import type { RemoveItemHook } from '@vercel/commerce/types/cart'
+import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
 import type { CommercejsCart } from '../types/cart'
 import { normalizeCart } from '../utils/normalize-cart'
 import useCart from './use-cart'
diff --git a/framework/commercejs/cart/use-update-item.tsx b/packages/commercejs/src/cart/use-update-item.tsx
similarity index 89%
rename from framework/commercejs/cart/use-update-item.tsx
rename to packages/commercejs/src/cart/use-update-item.tsx
index 8e890de49..1546be036 100644
--- a/framework/commercejs/cart/use-update-item.tsx
+++ b/packages/commercejs/src/cart/use-update-item.tsx
@@ -1,12 +1,12 @@
-import type { UpdateItemHook, LineItem } from '@commerce/types/cart'
+import type { UpdateItemHook, LineItem } from '@vercel/commerce/types/cart'
 import type {
   HookFetcherContext,
   MutationHookContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import debounce from 'lodash.debounce'
 import { useCallback } from 'react'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
 import type { CommercejsCart } from '../types/cart'
 import { normalizeCart } from '../utils/normalize-cart'
 import useCart from './use-cart'
diff --git a/framework/commercejs/checkout/index.ts b/packages/commercejs/src/checkout/index.ts
similarity index 100%
rename from framework/commercejs/checkout/index.ts
rename to packages/commercejs/src/checkout/index.ts
diff --git a/framework/commercejs/checkout/use-checkout.tsx b/packages/commercejs/src/checkout/use-checkout.tsx
similarity index 85%
rename from framework/commercejs/checkout/use-checkout.tsx
rename to packages/commercejs/src/checkout/use-checkout.tsx
index f41b01a59..52a19a740 100644
--- a/framework/commercejs/checkout/use-checkout.tsx
+++ b/packages/commercejs/src/checkout/use-checkout.tsx
@@ -1,8 +1,8 @@
-import type { GetCheckoutHook } from '@commerce/types/checkout'
+import type { GetCheckoutHook } from '@vercel/commerce/types/checkout'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
 import useSubmitCheckout from './use-submit-checkout'
 import { useCheckoutContext } from '@components/checkout/context'
 
diff --git a/framework/commercejs/checkout/use-submit-checkout.tsx b/packages/commercejs/src/checkout/use-submit-checkout.tsx
similarity index 82%
rename from framework/commercejs/checkout/use-submit-checkout.tsx
rename to packages/commercejs/src/checkout/use-submit-checkout.tsx
index 77039ef51..2cb723281 100644
--- a/framework/commercejs/checkout/use-submit-checkout.tsx
+++ b/packages/commercejs/src/checkout/use-submit-checkout.tsx
@@ -1,10 +1,10 @@
-import type { SubmitCheckoutHook } from '@commerce/types/checkout'
-import type { MutationHook } from '@commerce/utils/types'
+import type { SubmitCheckoutHook } from '@vercel/commerce/types/checkout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 import { useCallback } from 'react'
 import useSubmitCheckout, {
   UseSubmitCheckout,
-} from '@commerce/checkout/use-submit-checkout'
+} from '@vercel/commerce/checkout/use-submit-checkout'
 import { useCheckoutContext } from '@components/checkout/context'
 
 export default useSubmitCheckout as UseSubmitCheckout<typeof handler>
diff --git a/framework/commercejs/commerce.config.json b/packages/commercejs/src/commerce.config.json
similarity index 100%
rename from framework/commercejs/commerce.config.json
rename to packages/commercejs/src/commerce.config.json
diff --git a/framework/commercejs/constants.ts b/packages/commercejs/src/constants.ts
similarity index 100%
rename from framework/commercejs/constants.ts
rename to packages/commercejs/src/constants.ts
diff --git a/framework/commercejs/customer/address/index.ts b/packages/commercejs/src/customer/address/index.ts
similarity index 100%
rename from framework/commercejs/customer/address/index.ts
rename to packages/commercejs/src/customer/address/index.ts
diff --git a/framework/commercejs/customer/address/use-add-item.tsx b/packages/commercejs/src/customer/address/use-add-item.tsx
similarity index 70%
rename from framework/commercejs/customer/address/use-add-item.tsx
rename to packages/commercejs/src/customer/address/use-add-item.tsx
index 3e0022761..0f02059b1 100644
--- a/framework/commercejs/customer/address/use-add-item.tsx
+++ b/packages/commercejs/src/customer/address/use-add-item.tsx
@@ -1,7 +1,7 @@
-import type { AddItemHook } from '@commerce/types/customer/address'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/customer/address'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 import { useCallback } from 'react'
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
 import { useCheckoutContext } from '@components/checkout/context'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/commercejs/customer/address/use-addresses.tsx b/packages/commercejs/src/customer/address/use-addresses.tsx
similarity index 75%
rename from framework/commercejs/customer/address/use-addresses.tsx
rename to packages/commercejs/src/customer/address/use-addresses.tsx
index 5d0ad0ab6..a56255dfb 100644
--- a/framework/commercejs/customer/address/use-addresses.tsx
+++ b/packages/commercejs/src/customer/address/use-addresses.tsx
@@ -1,10 +1,10 @@
-import type { GetAddressesHook } from '@commerce/types/customer/address'
+import type { GetAddressesHook } from '@vercel/commerce/types/customer/address'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import useAddresses, {
   UseAddresses,
-} from '@commerce/customer/address/use-addresses'
+} from '@vercel/commerce/customer/address/use-addresses'
 
 export default useAddresses as UseAddresses<typeof handler>
 
diff --git a/framework/commercejs/customer/card/index.ts b/packages/commercejs/src/customer/card/index.ts
similarity index 100%
rename from framework/commercejs/customer/card/index.ts
rename to packages/commercejs/src/customer/card/index.ts
diff --git a/framework/commercejs/customer/card/use-add-item.tsx b/packages/commercejs/src/customer/card/use-add-item.tsx
similarity index 70%
rename from framework/commercejs/customer/card/use-add-item.tsx
rename to packages/commercejs/src/customer/card/use-add-item.tsx
index d83c44cd5..d4c179b18 100644
--- a/framework/commercejs/customer/card/use-add-item.tsx
+++ b/packages/commercejs/src/customer/card/use-add-item.tsx
@@ -1,7 +1,7 @@
-import type { AddItemHook } from '@commerce/types/customer/card'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/customer/card'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 import { useCallback } from 'react'
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
 import { useCheckoutContext } from '@components/checkout/context'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/commercejs/customer/card/use-cards.tsx b/packages/commercejs/src/customer/card/use-cards.tsx
similarity index 71%
rename from framework/commercejs/customer/card/use-cards.tsx
rename to packages/commercejs/src/customer/card/use-cards.tsx
index 2372eaa53..7c956a67c 100644
--- a/framework/commercejs/customer/card/use-cards.tsx
+++ b/packages/commercejs/src/customer/card/use-cards.tsx
@@ -1,7 +1,7 @@
-import type { GetCardsHook } from '@commerce/types/customer/card'
+import type { GetCardsHook } from '@vercel/commerce/types/customer/card'
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCard, { UseCards } from '@commerce/customer/card/use-cards'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCard, { UseCards } from '@vercel/commerce/customer/card/use-cards'
 
 export default useCard as UseCards<typeof handler>
 
diff --git a/framework/commercejs/customer/index.ts b/packages/commercejs/src/customer/index.ts
similarity index 100%
rename from framework/commercejs/customer/index.ts
rename to packages/commercejs/src/customer/index.ts
diff --git a/framework/commercejs/customer/use-customer.tsx b/packages/commercejs/src/customer/use-customer.tsx
similarity index 87%
rename from framework/commercejs/customer/use-customer.tsx
rename to packages/commercejs/src/customer/use-customer.tsx
index 3f91b5abe..4906223fd 100644
--- a/framework/commercejs/customer/use-customer.tsx
+++ b/packages/commercejs/src/customer/use-customer.tsx
@@ -1,7 +1,7 @@
 import Cookies from 'js-cookie'
 import { decode } from 'jsonwebtoken'
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
 import { CUSTOMER_COOKIE, API_URL } from '../constants'
 import type { CustomerHook } from '../types/customer'
 
diff --git a/framework/commercejs/fetcher.ts b/packages/commercejs/src/fetcher.ts
similarity index 93%
rename from framework/commercejs/fetcher.ts
rename to packages/commercejs/src/fetcher.ts
index c556582bf..ab47ae9c8 100644
--- a/framework/commercejs/fetcher.ts
+++ b/packages/commercejs/src/fetcher.ts
@@ -1,6 +1,6 @@
 import { commerce } from './lib/commercejs'
-import type { Fetcher } from '@commerce/utils/types'
-import { FetcherError } from '@commerce/utils/errors'
+import type { Fetcher } from '@vercel/commerce/utils/types'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 function isValidSDKQuery(query?: string): query is keyof typeof commerce {
   if (!query) return false
diff --git a/framework/commercejs/index.tsx b/packages/commercejs/src/index.tsx
similarity index 93%
rename from framework/commercejs/index.tsx
rename to packages/commercejs/src/index.tsx
index c1ca7e4be..9da7c1103 100644
--- a/framework/commercejs/index.tsx
+++ b/packages/commercejs/src/index.tsx
@@ -1,5 +1,5 @@
 import { commercejsProvider, CommercejsProvider } from './provider'
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
 
 export { commercejsProvider }
 export type { CommercejsProvider }
diff --git a/framework/commercejs/lib/commercejs.ts b/packages/commercejs/src/lib/commercejs.ts
similarity index 100%
rename from framework/commercejs/lib/commercejs.ts
rename to packages/commercejs/src/lib/commercejs.ts
diff --git a/framework/commercejs/next.config.js b/packages/commercejs/src/next.config.cjs
similarity index 100%
rename from framework/commercejs/next.config.js
rename to packages/commercejs/src/next.config.cjs
diff --git a/framework/commercejs/product/index.ts b/packages/commercejs/src/product/index.ts
similarity index 100%
rename from framework/commercejs/product/index.ts
rename to packages/commercejs/src/product/index.ts
diff --git a/packages/commercejs/src/product/use-price.tsx b/packages/commercejs/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/commercejs/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/commercejs/product/use-search.tsx b/packages/commercejs/src/product/use-search.tsx
similarity index 86%
rename from framework/commercejs/product/use-search.tsx
rename to packages/commercejs/src/product/use-search.tsx
index e0561dc1f..ec8ad618f 100644
--- a/framework/commercejs/product/use-search.tsx
+++ b/packages/commercejs/src/product/use-search.tsx
@@ -1,6 +1,6 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
-import { SearchProductsHook } from '@commerce/types/product'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
+import { SearchProductsHook } from '@vercel/commerce/types/product'
 import type { CommercejsProduct } from '../types/product'
 import { getProductSearchVariables } from '../utils/product-search'
 import { normalizeProduct } from '../utils/normalize-product'
diff --git a/framework/commercejs/provider.ts b/packages/commercejs/src/provider.ts
similarity index 100%
rename from framework/commercejs/provider.ts
rename to packages/commercejs/src/provider.ts
diff --git a/framework/commercejs/types/cart.ts b/packages/commercejs/src/types/cart.ts
similarity index 78%
rename from framework/commercejs/types/cart.ts
rename to packages/commercejs/src/types/cart.ts
index fe7b7bdc2..9de68397b 100644
--- a/framework/commercejs/types/cart.ts
+++ b/packages/commercejs/src/types/cart.ts
@@ -1,4 +1,4 @@
-export * from '@commerce/types/cart'
+export * from '@vercel/commerce/types/cart'
 
 export type { Cart as CommercejsCart } from '@chec/commerce.js/types/cart'
 export type { LineItem as CommercejsLineItem } from '@chec/commerce.js/types/line-item'
diff --git a/framework/commercejs/types/checkout.ts b/packages/commercejs/src/types/checkout.ts
similarity index 69%
rename from framework/commercejs/types/checkout.ts
rename to packages/commercejs/src/types/checkout.ts
index 47b6a63b9..970d5cfad 100644
--- a/framework/commercejs/types/checkout.ts
+++ b/packages/commercejs/src/types/checkout.ts
@@ -1,3 +1,3 @@
-export * from '@commerce/types/checkout'
+export * from '@vercel/commerce/types/checkout'
 
 export type { CheckoutCapture as CommercejsCheckoutCapture } from '@chec/commerce.js/types/checkout-capture'
diff --git a/packages/commercejs/src/types/common.ts b/packages/commercejs/src/types/common.ts
new file mode 100644
index 000000000..23b8daa11
--- /dev/null
+++ b/packages/commercejs/src/types/common.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/common'
diff --git a/packages/commercejs/src/types/customer.ts b/packages/commercejs/src/types/customer.ts
new file mode 100644
index 000000000..c637055b9
--- /dev/null
+++ b/packages/commercejs/src/types/customer.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/customer'
diff --git a/framework/commercejs/types/index.ts b/packages/commercejs/src/types/index.ts
similarity index 100%
rename from framework/commercejs/types/index.ts
rename to packages/commercejs/src/types/index.ts
diff --git a/framework/commercejs/types/login.ts b/packages/commercejs/src/types/login.ts
similarity index 56%
rename from framework/commercejs/types/login.ts
rename to packages/commercejs/src/types/login.ts
index 97f879078..0706a2f1f 100644
--- a/framework/commercejs/types/login.ts
+++ b/packages/commercejs/src/types/login.ts
@@ -1,5 +1,5 @@
-import { LoginBody, LoginTypes } from '@commerce/types/login'
-export * from '@commerce/types/login'
+import { LoginBody, LoginTypes } from '@vercel/commerce/types/login'
+export * from '@vercel/commerce/types/login'
 
 export type LoginHook<T extends LoginTypes = LoginTypes> = {
   data: null
diff --git a/packages/commercejs/src/types/logout.ts b/packages/commercejs/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/commercejs/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/packages/commercejs/src/types/page.ts b/packages/commercejs/src/types/page.ts
new file mode 100644
index 000000000..12f6b02d7
--- /dev/null
+++ b/packages/commercejs/src/types/page.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/page'
diff --git a/framework/commercejs/types/product.ts b/packages/commercejs/src/types/product.ts
similarity index 78%
rename from framework/commercejs/types/product.ts
rename to packages/commercejs/src/types/product.ts
index 4db475d95..7cdab703e 100644
--- a/framework/commercejs/types/product.ts
+++ b/packages/commercejs/src/types/product.ts
@@ -1,4 +1,4 @@
-export * from '@commerce/types/product'
+export * from '@vercel/commerce/types/product'
 
 export type { Product as CommercejsProduct } from '@chec/commerce.js/types/product'
 export type { Variant as CommercejsVariant } from '@chec/commerce.js/types/variant'
diff --git a/packages/commercejs/src/types/signup.ts b/packages/commercejs/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/commercejs/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/framework/commercejs/types/site.ts b/packages/commercejs/src/types/site.ts
similarity index 66%
rename from framework/commercejs/types/site.ts
rename to packages/commercejs/src/types/site.ts
index 8fd61a07d..346278b43 100644
--- a/framework/commercejs/types/site.ts
+++ b/packages/commercejs/src/types/site.ts
@@ -1,3 +1,3 @@
-export * from '@commerce/types/site'
+export * from '@vercel/commerce/types/site'
 
 export type { Category as CommercejsCategory } from '@chec/commerce.js/types/category'
diff --git a/packages/commercejs/src/types/wishlist.ts b/packages/commercejs/src/types/wishlist.ts
new file mode 100644
index 000000000..af92d9f63
--- /dev/null
+++ b/packages/commercejs/src/types/wishlist.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/wishlist'
diff --git a/framework/commercejs/utils/get-deployment-url.ts b/packages/commercejs/src/utils/get-deployment-url.ts
similarity index 100%
rename from framework/commercejs/utils/get-deployment-url.ts
rename to packages/commercejs/src/utils/get-deployment-url.ts
diff --git a/framework/commercejs/utils/normalize-cart.ts b/packages/commercejs/src/utils/normalize-cart.ts
similarity index 100%
rename from framework/commercejs/utils/normalize-cart.ts
rename to packages/commercejs/src/utils/normalize-cart.ts
diff --git a/framework/commercejs/utils/normalize-category.ts b/packages/commercejs/src/utils/normalize-category.ts
similarity index 82%
rename from framework/commercejs/utils/normalize-category.ts
rename to packages/commercejs/src/utils/normalize-category.ts
index e47969e81..41900928e 100644
--- a/framework/commercejs/utils/normalize-category.ts
+++ b/packages/commercejs/src/utils/normalize-category.ts
@@ -1,4 +1,4 @@
-import type { Category } from '@commerce/types/site'
+import type { Category } from '@vercel/commerce/types/site'
 import type { Category as CommercejsCategory } from '@chec/commerce.js/types/category'
 
 export function normalizeCategory(
diff --git a/framework/commercejs/utils/normalize-checkout.ts b/packages/commercejs/src/utils/normalize-checkout.ts
similarity index 92%
rename from framework/commercejs/utils/normalize-checkout.ts
rename to packages/commercejs/src/utils/normalize-checkout.ts
index 2cc996f88..db136e0b8 100644
--- a/framework/commercejs/utils/normalize-checkout.ts
+++ b/packages/commercejs/src/utils/normalize-checkout.ts
@@ -1,5 +1,5 @@
-import type { CardFields } from '@commerce/types/customer/card'
-import type { AddressFields } from '@commerce/types/customer/address'
+import type { CardFields } from '@vercel/commerce/types/customer/card'
+import type { AddressFields } from '@vercel/commerce/types/customer/address'
 import type { CommercejsCheckoutCapture } from '../types/checkout'
 
 /**
diff --git a/framework/commercejs/utils/normalize-product.ts b/packages/commercejs/src/utils/normalize-product.ts
similarity index 100%
rename from framework/commercejs/utils/normalize-product.ts
rename to packages/commercejs/src/utils/normalize-product.ts
diff --git a/framework/commercejs/utils/product-search.ts b/packages/commercejs/src/utils/product-search.ts
similarity index 94%
rename from framework/commercejs/utils/product-search.ts
rename to packages/commercejs/src/utils/product-search.ts
index b1ee96681..9a4d42982 100644
--- a/framework/commercejs/utils/product-search.ts
+++ b/packages/commercejs/src/utils/product-search.ts
@@ -1,4 +1,4 @@
-import { SearchProductsBody } from '@commerce/types/product'
+import { SearchProductsBody } from '@vercel/commerce/types/product'
 
 const getFilterVariables = ({
   search,
diff --git a/framework/commercejs/wishlist/use-add-item.tsx b/packages/commercejs/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/commercejs/wishlist/use-add-item.tsx
rename to packages/commercejs/src/wishlist/use-add-item.tsx
diff --git a/framework/commercejs/wishlist/use-remove-item.tsx b/packages/commercejs/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/commercejs/wishlist/use-remove-item.tsx
rename to packages/commercejs/src/wishlist/use-remove-item.tsx
diff --git a/framework/commercejs/wishlist/use-wishlist.tsx b/packages/commercejs/src/wishlist/use-wishlist.tsx
similarity index 92%
rename from framework/commercejs/wishlist/use-wishlist.tsx
rename to packages/commercejs/src/wishlist/use-wishlist.tsx
index 125ee2686..781614394 100644
--- a/framework/commercejs/wishlist/use-wishlist.tsx
+++ b/packages/commercejs/src/wishlist/use-wishlist.tsx
@@ -1,4 +1,4 @@
-import { HookFetcher } from '@commerce/utils/types'
+import { HookFetcher } from '@vercel/commerce/utils/types'
 
 export type Wishlist = {
   items: [
diff --git a/packages/commercejs/tsconfig.json b/packages/commercejs/tsconfig.json
new file mode 100644
index 000000000..8f98f047b
--- /dev/null
+++ b/packages/commercejs/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src", "global.d.ts"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/kibocommerce/.env.template b/packages/kibocommerce/.env.template
similarity index 100%
rename from framework/kibocommerce/.env.template
rename to packages/kibocommerce/.env.template
diff --git a/packages/kibocommerce/.prettierignore b/packages/kibocommerce/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/kibocommerce/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/kibocommerce/.prettierrc b/packages/kibocommerce/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/kibocommerce/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/kibocommerce/README.md b/packages/kibocommerce/README.md
similarity index 95%
rename from framework/kibocommerce/README.md
rename to packages/kibocommerce/README.md
index dc7589635..13fa331d2 100644
--- a/framework/kibocommerce/README.md
+++ b/packages/kibocommerce/README.md
@@ -3,7 +3,7 @@
 If you already have a Kibo Commerce account and want to use your current store, then copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git):
 
 ```bash
-cp framework/kibocommerce/.env.template .env.local
+cp packages/kibocommerce/.env.template .env.local
 ```
 
 Then, set the environment variables in `.env.local` to match the ones from your store.
@@ -22,7 +22,7 @@ KIBO_AUTH_URL='https://home.mozu.com'
 - `KIBO_CART_COOKIE` - configurable cookie name for cart.
 - `KIBO_CUSTOMER_COOKIE` - configurable cookie name for shopper identifier/authentication cookie
 - `KIBO_CLIENT_ID` - Unique Application (Client) ID of your Application
-- `KIBO_SHARED_SECRET` - Secret API key used to authenticate application/client id. 
+- `KIBO_SHARED_SECRET` - Secret API key used to authenticate application/client id.
 
 
 Your Kibo Client ID and Shared Secret can be found from your [Kibo eCommerce Dev Center](https://mozu.com/login)
diff --git a/framework/kibocommerce/codegen.json b/packages/kibocommerce/codegen.json
similarity index 78%
rename from framework/kibocommerce/codegen.json
rename to packages/kibocommerce/codegen.json
index cf25363ed..ede2d2f3b 100644
--- a/framework/kibocommerce/codegen.json
+++ b/packages/kibocommerce/codegen.json
@@ -2,9 +2,8 @@
     "schema": {
       "https://t17194-s21127.dev10.kubedev.kibo-dev.com/graphql": {}
     },
-    
     "generates": {
-      "./framework/kibocommerce/schema.d.ts": {
+      "./schema.d.ts": {
         "plugins": ["typescript", "typescript-operations"],
         "config": {
           "scalars": {
@@ -12,7 +11,7 @@
           }
         }
       },
-      "./framework/kibocommerce/schema.graphql": {
+      "./schema.graphql": {
         "plugins": ["schema-ast"]
       }
     },
@@ -20,4 +19,3 @@
       "afterAllFileWrite": ["prettier --write"]
     }
   }
-  
\ No newline at end of file
diff --git a/packages/kibocommerce/package.json b/packages/kibocommerce/package.json
new file mode 100644
index 000000000..52d64be6e
--- /dev/null
+++ b/packages/kibocommerce/package.json
@@ -0,0 +1,78 @@
+{
+  "name": "@vercel/commerce-kibocommerce",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write .",
+    "generate": "graphql-codegen"
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist",
+    "schema.d.ts"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@graphql-codegen/cli": "^2.3.1",
+    "@graphql-codegen/schema-ast": "^2.4.1",
+    "@graphql-codegen/typescript": "^2.4.2",
+    "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/kibocommerce/schema.d.ts b/packages/kibocommerce/schema.d.ts
similarity index 100%
rename from framework/kibocommerce/schema.d.ts
rename to packages/kibocommerce/schema.d.ts
diff --git a/framework/kibocommerce/schema.graphql b/packages/kibocommerce/schema.graphql
similarity index 100%
rename from framework/kibocommerce/schema.graphql
rename to packages/kibocommerce/schema.graphql
diff --git a/framework/kibocommerce/api/endpoints/cart/add-item.ts b/packages/kibocommerce/src/api/endpoints/cart/add-item.ts
similarity index 98%
rename from framework/kibocommerce/api/endpoints/cart/add-item.ts
rename to packages/kibocommerce/src/api/endpoints/cart/add-item.ts
index 6cda2a944..6dfea1e0c 100644
--- a/framework/kibocommerce/api/endpoints/cart/add-item.ts
+++ b/packages/kibocommerce/src/api/endpoints/cart/add-item.ts
@@ -1,4 +1,3 @@
-import { Product } from './../../../schema.d'
 import { normalizeCart } from '../../../lib/normalize'
 import type { CartEndpoint } from '.'
 import addToCurrentCartMutation from '../../../api/mutations/addToCart-mutation'
diff --git a/framework/kibocommerce/api/endpoints/cart/get-cart.ts b/packages/kibocommerce/src/api/endpoints/cart/get-cart.ts
similarity index 96%
rename from framework/kibocommerce/api/endpoints/cart/get-cart.ts
rename to packages/kibocommerce/src/api/endpoints/cart/get-cart.ts
index b7e672092..6a6ec3ab4 100644
--- a/framework/kibocommerce/api/endpoints/cart/get-cart.ts
+++ b/packages/kibocommerce/src/api/endpoints/cart/get-cart.ts
@@ -1,6 +1,6 @@
 import CookieHandler from '../../../api/utils/cookie-handler'
 import { normalizeCart } from '../../../lib/normalize'
-import { Cart } from '../../../schema'
+import { Cart } from '../../../../schema'
 import type { CartEndpoint } from '.'
 import { getCartQuery } from '../../queries/get-cart-query'
 
diff --git a/framework/kibocommerce/api/endpoints/cart/index.ts b/packages/kibocommerce/src/api/endpoints/cart/index.ts
similarity index 79%
rename from framework/kibocommerce/api/endpoints/cart/index.ts
rename to packages/kibocommerce/src/api/endpoints/cart/index.ts
index 53de2424e..d4e8118ac 100644
--- a/framework/kibocommerce/api/endpoints/cart/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/cart/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import cartEndpoint from '@commerce/api/endpoints/cart'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import cartEndpoint from '@vercel/commerce/api/endpoints/cart'
 import type { KiboCommerceAPI } from '../..'
 import getCart from './get-cart';
 import addItem from './add-item';
diff --git a/framework/kibocommerce/api/endpoints/cart/remove-item.ts b/packages/kibocommerce/src/api/endpoints/cart/remove-item.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/cart/remove-item.ts
rename to packages/kibocommerce/src/api/endpoints/cart/remove-item.ts
diff --git a/framework/kibocommerce/api/endpoints/cart/update-item.ts b/packages/kibocommerce/src/api/endpoints/cart/update-item.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/cart/update-item.ts
rename to packages/kibocommerce/src/api/endpoints/cart/update-item.ts
diff --git a/framework/kibocommerce/api/endpoints/catalog/products/index.ts b/packages/kibocommerce/src/api/endpoints/catalog/products/index.ts
similarity index 73%
rename from framework/kibocommerce/api/endpoints/catalog/products/index.ts
rename to packages/kibocommerce/src/api/endpoints/catalog/products/index.ts
index 12c72b27e..a838eb56e 100644
--- a/framework/kibocommerce/api/endpoints/catalog/products/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/catalog/products/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import productsEndpoint from '@commerce/api/endpoints/catalog/products'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import productsEndpoint from '@vercel/commerce/api/endpoints/catalog/products'
 import type { KiboCommerceAPI } from '../../..'
 import getProducts from '../products/products'
 
diff --git a/framework/kibocommerce/api/endpoints/catalog/products/products.ts b/packages/kibocommerce/src/api/endpoints/catalog/products/products.ts
similarity index 94%
rename from framework/kibocommerce/api/endpoints/catalog/products/products.ts
rename to packages/kibocommerce/src/api/endpoints/catalog/products/products.ts
index a4f5e6dac..189922d53 100644
--- a/framework/kibocommerce/api/endpoints/catalog/products/products.ts
+++ b/packages/kibocommerce/src/api/endpoints/catalog/products/products.ts
@@ -1,4 +1,4 @@
-import { Product } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
 import { ProductsEndpoint } from '.'
 import productSearchQuery from '../../../queries/product-search-query'
 import { buildProductSearchVars } from '../../../../lib/product-search-vars'
diff --git a/framework/kibocommerce/api/endpoints/checkout/index.ts b/packages/kibocommerce/src/api/endpoints/checkout/index.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/checkout/index.ts
rename to packages/kibocommerce/src/api/endpoints/checkout/index.ts
diff --git a/framework/kibocommerce/api/endpoints/customer/address.ts b/packages/kibocommerce/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/customer/address.ts
rename to packages/kibocommerce/src/api/endpoints/customer/address.ts
diff --git a/framework/kibocommerce/api/endpoints/customer/card.ts b/packages/kibocommerce/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/customer/card.ts
rename to packages/kibocommerce/src/api/endpoints/customer/card.ts
diff --git a/framework/kibocommerce/api/endpoints/customer/customer.ts b/packages/kibocommerce/src/api/endpoints/customer/customer.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/customer/customer.ts
rename to packages/kibocommerce/src/api/endpoints/customer/customer.ts
diff --git a/framework/kibocommerce/api/endpoints/customer/index.ts b/packages/kibocommerce/src/api/endpoints/customer/index.ts
similarity index 77%
rename from framework/kibocommerce/api/endpoints/customer/index.ts
rename to packages/kibocommerce/src/api/endpoints/customer/index.ts
index c32bcfa91..20bd44da9 100644
--- a/framework/kibocommerce/api/endpoints/customer/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/customer/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import customerEndpoint from '@commerce/api/endpoints/customer'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import customerEndpoint from '@vercel/commerce/api/endpoints/customer'
 import type { CustomerSchema } from '../../../types/customer'
 import type { KiboCommerceAPI } from '../..'
 import getLoggedInCustomer from './customer'
diff --git a/framework/kibocommerce/api/endpoints/login/index.ts b/packages/kibocommerce/src/api/endpoints/login/index.ts
similarity index 76%
rename from framework/kibocommerce/api/endpoints/login/index.ts
rename to packages/kibocommerce/src/api/endpoints/login/index.ts
index f76e0f644..679a92d90 100644
--- a/framework/kibocommerce/api/endpoints/login/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/login/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import loginEndpoint from '@commerce/api/endpoints/login'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import loginEndpoint from '@vercel/commerce/api/endpoints/login'
 import type { LoginSchema } from '../../../types/login'
 import type { KiboCommerceAPI } from '../..'
 import login from './login'
diff --git a/framework/kibocommerce/api/endpoints/login/login.ts b/packages/kibocommerce/src/api/endpoints/login/login.ts
similarity index 92%
rename from framework/kibocommerce/api/endpoints/login/login.ts
rename to packages/kibocommerce/src/api/endpoints/login/login.ts
index 84410a281..7a08069c6 100644
--- a/framework/kibocommerce/api/endpoints/login/login.ts
+++ b/packages/kibocommerce/src/api/endpoints/login/login.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import type { LoginEndpoint } from '.'
 import { loginMutation } from '../../mutations/login-mutation'
 import { prepareSetCookie } from '../../../lib/prepare-set-cookie';
@@ -14,7 +14,7 @@ const login: LoginEndpoint['handlers']['login'] = async ({
   config,
   commerce,
 }) => {
-  
+
   if (!(email && password)) {
     return res.status(400).json({
       data: null,
@@ -28,17 +28,17 @@ const login: LoginEndpoint['handlers']['login'] = async ({
     const variables = { loginInput : { username: email, password }};
     response = await  config.fetch(loginMutation, { variables })
     const { account: token }  = response.data;
-    
+
     // Set Cookie
     const cookieExpirationDate = getCookieExpirationDate(config.customerCookieMaxAgeInDays)
-    
+
     const authCookie = prepareSetCookie(
       config.customerCookie,
       JSON.stringify(token),
       token.accessTokenExpiration ? { expires: cookieExpirationDate }: {},
     )
-    setCookies(res, [authCookie])   
-   
+    setCookies(res, [authCookie])
+
   } catch (error) {
     // Check if the email and password didn't match an existing account
     if (
@@ -63,4 +63,4 @@ const login: LoginEndpoint['handlers']['login'] = async ({
   res.status(200).json({ data: response })
 }
 
-export default login
\ No newline at end of file
+export default login
diff --git a/framework/kibocommerce/api/endpoints/logout/index.ts b/packages/kibocommerce/src/api/endpoints/logout/index.ts
similarity index 76%
rename from framework/kibocommerce/api/endpoints/logout/index.ts
rename to packages/kibocommerce/src/api/endpoints/logout/index.ts
index ec4ded011..00804afb3 100644
--- a/framework/kibocommerce/api/endpoints/logout/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/logout/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import logoutEndpoint from '@commerce/api/endpoints/logout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import logoutEndpoint from '@vercel/commerce/api/endpoints/logout'
 import type { LogoutSchema } from '../../../types/logout'
 import type { KiboCommerceAPI } from '../..'
 import logout from './logout'
diff --git a/framework/kibocommerce/api/endpoints/logout/logout.ts b/packages/kibocommerce/src/api/endpoints/logout/logout.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/logout/logout.ts
rename to packages/kibocommerce/src/api/endpoints/logout/logout.ts
diff --git a/framework/kibocommerce/api/endpoints/signup/index.ts b/packages/kibocommerce/src/api/endpoints/signup/index.ts
similarity index 76%
rename from framework/kibocommerce/api/endpoints/signup/index.ts
rename to packages/kibocommerce/src/api/endpoints/signup/index.ts
index 3eda94d06..8b2fec006 100644
--- a/framework/kibocommerce/api/endpoints/signup/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/signup/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import signupEndpoint from '@commerce/api/endpoints/signup'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import signupEndpoint from '@vercel/commerce/api/endpoints/signup'
 import type { SignupSchema } from '../../../types/signup'
 import type { KiboCommerceAPI } from '../..'
 import signup from './signup'
diff --git a/framework/kibocommerce/api/endpoints/signup/signup.ts b/packages/kibocommerce/src/api/endpoints/signup/signup.ts
similarity index 95%
rename from framework/kibocommerce/api/endpoints/signup/signup.ts
rename to packages/kibocommerce/src/api/endpoints/signup/signup.ts
index 77790ca3a..b3d988475 100644
--- a/framework/kibocommerce/api/endpoints/signup/signup.ts
+++ b/packages/kibocommerce/src/api/endpoints/signup/signup.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import type { SignupEndpoint } from '.'
 import { registerUserMutation, registerUserLoginMutation } from '../../mutations/signup-mutation'
 import { prepareSetCookie } from '../../../lib/prepare-set-cookie';
@@ -14,7 +14,7 @@ const signup: SignupEndpoint['handlers']['signup'] = async ({
   config,
   commerce,
 }) => {
-  
+
   if (!(email && password)) {
     return res.status(400).json({
       data: null,
@@ -35,7 +35,7 @@ const signup: SignupEndpoint['handlers']['signup'] = async ({
           id: 0
         }
     }
-    
+
     const registerUserResponse = await  config.fetch(registerUserMutation, { variables: registerUserVariables})
     const accountId  = registerUserResponse.data?.account?.id;
 
@@ -52,7 +52,7 @@ const signup: SignupEndpoint['handlers']['signup'] = async ({
 
     response = await  config.fetch(registerUserLoginMutation, { variables: registerUserLoginVairables})
     const { account: token }  = response.data;
-  
+
     // Set Cookie
     const cookieExpirationDate = getCookieExpirationDate(config.customerCookieMaxAgeInDays)
 
@@ -62,7 +62,7 @@ const signup: SignupEndpoint['handlers']['signup'] = async ({
       token.accessTokenExpiration ? { expires: cookieExpirationDate }: {},
     )
 
-    setCookies(res, [authCookie])   
+    setCookies(res, [authCookie])
 
   } catch (error) {
     // Check if the email and password didn't match an existing account
@@ -88,4 +88,4 @@ const signup: SignupEndpoint['handlers']['signup'] = async ({
   res.status(200).json({ data: response })
 }
 
-export default signup
\ No newline at end of file
+export default signup
diff --git a/framework/kibocommerce/api/endpoints/wishlist/add-item.ts b/packages/kibocommerce/src/api/endpoints/wishlist/add-item.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/wishlist/add-item.ts
rename to packages/kibocommerce/src/api/endpoints/wishlist/add-item.ts
diff --git a/framework/kibocommerce/api/endpoints/wishlist/get-wishlist.ts b/packages/kibocommerce/src/api/endpoints/wishlist/get-wishlist.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/wishlist/get-wishlist.ts
rename to packages/kibocommerce/src/api/endpoints/wishlist/get-wishlist.ts
diff --git a/framework/kibocommerce/api/endpoints/wishlist/index.ts b/packages/kibocommerce/src/api/endpoints/wishlist/index.ts
similarity index 78%
rename from framework/kibocommerce/api/endpoints/wishlist/index.ts
rename to packages/kibocommerce/src/api/endpoints/wishlist/index.ts
index 052cdcef6..58344be72 100644
--- a/framework/kibocommerce/api/endpoints/wishlist/index.ts
+++ b/packages/kibocommerce/src/api/endpoints/wishlist/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import wishlistEndpoint from '@commerce/api/endpoints/wishlist'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import wishlistEndpoint from '@vercel/commerce/api/endpoints/wishlist'
 import type { KiboCommerceAPI } from '../..'
 import getWishlist from './get-wishlist'
 import addItem from './add-item'
diff --git a/framework/kibocommerce/api/endpoints/wishlist/remove-item.ts b/packages/kibocommerce/src/api/endpoints/wishlist/remove-item.ts
similarity index 100%
rename from framework/kibocommerce/api/endpoints/wishlist/remove-item.ts
rename to packages/kibocommerce/src/api/endpoints/wishlist/remove-item.ts
diff --git a/framework/kibocommerce/api/fragments/cartItemDetails.ts b/packages/kibocommerce/src/api/fragments/cartItemDetails.ts
similarity index 100%
rename from framework/kibocommerce/api/fragments/cartItemDetails.ts
rename to packages/kibocommerce/src/api/fragments/cartItemDetails.ts
diff --git a/framework/kibocommerce/api/fragments/category.ts b/packages/kibocommerce/src/api/fragments/category.ts
similarity index 100%
rename from framework/kibocommerce/api/fragments/category.ts
rename to packages/kibocommerce/src/api/fragments/category.ts
diff --git a/framework/kibocommerce/api/fragments/product.ts b/packages/kibocommerce/src/api/fragments/product.ts
similarity index 100%
rename from framework/kibocommerce/api/fragments/product.ts
rename to packages/kibocommerce/src/api/fragments/product.ts
diff --git a/framework/kibocommerce/api/fragments/productDetails.ts b/packages/kibocommerce/src/api/fragments/productDetails.ts
similarity index 100%
rename from framework/kibocommerce/api/fragments/productDetails.ts
rename to packages/kibocommerce/src/api/fragments/productDetails.ts
diff --git a/framework/kibocommerce/api/fragments/search.ts b/packages/kibocommerce/src/api/fragments/search.ts
similarity index 100%
rename from framework/kibocommerce/api/fragments/search.ts
rename to packages/kibocommerce/src/api/fragments/search.ts
diff --git a/framework/kibocommerce/api/index.ts b/packages/kibocommerce/src/api/index.ts
similarity index 93%
rename from framework/kibocommerce/api/index.ts
rename to packages/kibocommerce/src/api/index.ts
index a79745c57..aa6d9604e 100644
--- a/framework/kibocommerce/api/index.ts
+++ b/packages/kibocommerce/src/api/index.ts
@@ -1,5 +1,5 @@
-import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
-import { getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
+import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
 import createFetchGraphqlApi from './utils/fetch-graphql-api'
 
 import getAllPages from './operations/get-all-pages'
diff --git a/framework/kibocommerce/api/mutations/addItemToWishlist-mutation.ts b/packages/kibocommerce/src/api/mutations/addItemToWishlist-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/addItemToWishlist-mutation.ts
rename to packages/kibocommerce/src/api/mutations/addItemToWishlist-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/addToCart-mutation.ts b/packages/kibocommerce/src/api/mutations/addToCart-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/addToCart-mutation.ts
rename to packages/kibocommerce/src/api/mutations/addToCart-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/create-wishlist-mutation.ts b/packages/kibocommerce/src/api/mutations/create-wishlist-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/create-wishlist-mutation.ts
rename to packages/kibocommerce/src/api/mutations/create-wishlist-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/login-mutation.ts b/packages/kibocommerce/src/api/mutations/login-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/login-mutation.ts
rename to packages/kibocommerce/src/api/mutations/login-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/removeItemFromCart-mutation.ts b/packages/kibocommerce/src/api/mutations/removeItemFromCart-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/removeItemFromCart-mutation.ts
rename to packages/kibocommerce/src/api/mutations/removeItemFromCart-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/removeItemFromWishlist-mutation.ts b/packages/kibocommerce/src/api/mutations/removeItemFromWishlist-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/removeItemFromWishlist-mutation.ts
rename to packages/kibocommerce/src/api/mutations/removeItemFromWishlist-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/signup-mutation.ts b/packages/kibocommerce/src/api/mutations/signup-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/signup-mutation.ts
rename to packages/kibocommerce/src/api/mutations/signup-mutation.ts
diff --git a/framework/kibocommerce/api/mutations/updateCartItemQuantity-mutation.ts b/packages/kibocommerce/src/api/mutations/updateCartItemQuantity-mutation.ts
similarity index 100%
rename from framework/kibocommerce/api/mutations/updateCartItemQuantity-mutation.ts
rename to packages/kibocommerce/src/api/mutations/updateCartItemQuantity-mutation.ts
diff --git a/framework/kibocommerce/api/operations/get-all-pages.ts b/packages/kibocommerce/src/api/operations/get-all-pages.ts
similarity index 92%
rename from framework/kibocommerce/api/operations/get-all-pages.ts
rename to packages/kibocommerce/src/api/operations/get-all-pages.ts
index 6bc0e4a8c..7607e194e 100644
--- a/framework/kibocommerce/api/operations/get-all-pages.ts
+++ b/packages/kibocommerce/src/api/operations/get-all-pages.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { KiboCommerceConfig } from '../index'
 import { getAllPagesQuery } from '../queries/get-all-pages-query'
 import { GetPagesQueryParams } from "../../types/page";
@@ -30,9 +30,9 @@ export default function getAllPagesOperation({
     const { data } = await cfg.fetch(query, { variables });
 
     const pages = data.documentListDocuments.items.map(normalizePage);
-    
+
     return { pages }
   }
 
   return getAllPages
-}
\ No newline at end of file
+}
diff --git a/framework/kibocommerce/api/operations/get-all-product-paths.ts b/packages/kibocommerce/src/api/operations/get-all-product-paths.ts
similarity index 100%
rename from framework/kibocommerce/api/operations/get-all-product-paths.ts
rename to packages/kibocommerce/src/api/operations/get-all-product-paths.ts
diff --git a/framework/kibocommerce/api/operations/get-all-products.ts b/packages/kibocommerce/src/api/operations/get-all-products.ts
similarity index 81%
rename from framework/kibocommerce/api/operations/get-all-products.ts
rename to packages/kibocommerce/src/api/operations/get-all-products.ts
index c60b88f4e..bddafbffa 100644
--- a/framework/kibocommerce/api/operations/get-all-products.ts
+++ b/packages/kibocommerce/src/api/operations/get-all-products.ts
@@ -1,6 +1,6 @@
-import { Product } from '@commerce/types/product'
-import { GetAllProductsOperation } from '@commerce/types/product'
-import type { OperationContext } from '@commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
+import { GetAllProductsOperation } from '@vercel/commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { KiboCommerceConfig } from '../index'
 import { getAllProductsQuery } from '../queries/get-all-products-query';
 import { normalizeProduct } from '../../lib/normalize'
@@ -23,7 +23,7 @@ export default function getAllProductsOperation({
     const { data } = await cfg.fetch(query);
 
     let normalizedProducts =  data.products.items ? data.products.items.map( (item:any) => normalizeProduct(item, cfg)) : [];
-   
+
     return {
       products: normalizedProducts,
     }
diff --git a/framework/kibocommerce/api/operations/get-customer-wishlist.ts b/packages/kibocommerce/src/api/operations/get-customer-wishlist.ts
similarity index 94%
rename from framework/kibocommerce/api/operations/get-customer-wishlist.ts
rename to packages/kibocommerce/src/api/operations/get-customer-wishlist.ts
index a2a60e9ae..c2792ad32 100644
--- a/framework/kibocommerce/api/operations/get-customer-wishlist.ts
+++ b/packages/kibocommerce/src/api/operations/get-customer-wishlist.ts
@@ -1,11 +1,11 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type {
   GetCustomerWishlistOperation,
   Wishlist,
-} from '@commerce/types/wishlist'
+} from '@vercel/commerce/types/wishlist'
 // import type { RecursivePartial, RecursiveRequired } from '../utils/types'
 import { KiboCommerceConfig } from '..'
 // import getAllProducts, { ProductEdge } from './get-all-products'
@@ -42,7 +42,7 @@ export default function getCustomerWishlistOperation({
   }): Promise<T['data']> {
     let customerWishlist ={}
     try {
-      
+
       config = commerce.getConfig(config)
       const result= await config?.fetch(getCustomerWishlistQuery,{variables})
       customerWishlist= result?.data?.customerWishlist;
diff --git a/framework/kibocommerce/api/operations/get-page.ts b/packages/kibocommerce/src/api/operations/get-page.ts
similarity index 92%
rename from framework/kibocommerce/api/operations/get-page.ts
rename to packages/kibocommerce/src/api/operations/get-page.ts
index 8cfccb7db..69289cba0 100644
--- a/framework/kibocommerce/api/operations/get-page.ts
+++ b/packages/kibocommerce/src/api/operations/get-page.ts
@@ -1,11 +1,11 @@
 import type {
   OperationContext,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { KiboCommerceConfig, KiboCommerceProvider } from '..'
 import { normalizePage } from '../../lib/normalize'
 import { getPageQuery } from '../queries/get-page-query'
 import type { Page, GetPageQueryParams } from "../../types/page";
-import type { Document } from '../../schema'
+import type { Document } from '../../../schema'
 
 export default function getPageOperation({
   commerce,
@@ -37,4 +37,4 @@ export default function getPageOperation({
   }
 
   return getPage
-}
\ No newline at end of file
+}
diff --git a/framework/kibocommerce/api/operations/get-product.ts b/packages/kibocommerce/src/api/operations/get-product.ts
similarity index 78%
rename from framework/kibocommerce/api/operations/get-product.ts
rename to packages/kibocommerce/src/api/operations/get-product.ts
index a3acf44d9..c41b1bf04 100644
--- a/framework/kibocommerce/api/operations/get-product.ts
+++ b/packages/kibocommerce/src/api/operations/get-product.ts
@@ -1,7 +1,7 @@
 import type { KiboCommerceConfig } from '../index'
-import { Product } from '@commerce/types/product'
-import { GetProductOperation } from '@commerce/types/product'
-import type { OperationContext } from '@commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
+import { GetProductOperation } from '@vercel/commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import { getProductQuery } from '../queries/get-product-query'
 import { normalizeProduct } from '../../lib/normalize'
 
@@ -20,14 +20,14 @@ export default function getProductOperation({
     preview?: boolean
   } = {}): Promise<Product | {} | any> {
     const productVariables = { productCode: variables?.slug}
-  
+
     const cfg = commerce.getConfig(config)
     const { data } = await cfg.fetch(query, { variables: productVariables });
 
     const normalizedProduct = normalizeProduct(data.product, cfg)
-   
+
     return {
-      product: normalizedProduct 
+      product: normalizedProduct
     }
   }
 
diff --git a/framework/kibocommerce/api/operations/get-site-info.ts b/packages/kibocommerce/src/api/operations/get-site-info.ts
similarity index 88%
rename from framework/kibocommerce/api/operations/get-site-info.ts
rename to packages/kibocommerce/src/api/operations/get-site-info.ts
index 1bd0ddf63..6b72d3b47 100644
--- a/framework/kibocommerce/api/operations/get-site-info.ts
+++ b/packages/kibocommerce/src/api/operations/get-site-info.ts
@@ -1,5 +1,5 @@
-import { OperationContext } from '@commerce/api/operations'
-import { Category } from '@commerce/types/site'
+import { OperationContext } from '@vercel/commerce/api/operations'
+import { Category } from '@vercel/commerce/types/site'
 import { KiboCommerceConfig } from '../index'
 import {categoryTreeQuery} from '../queries/get-categories-tree-query'
 import { normalizeCategory } from '../../lib/normalize'
diff --git a/framework/kibocommerce/api/operations/index.ts b/packages/kibocommerce/src/api/operations/index.ts
similarity index 100%
rename from framework/kibocommerce/api/operations/index.ts
rename to packages/kibocommerce/src/api/operations/index.ts
diff --git a/framework/kibocommerce/api/queries/get-all-pages-query.ts b/packages/kibocommerce/src/api/queries/get-all-pages-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-all-pages-query.ts
rename to packages/kibocommerce/src/api/queries/get-all-pages-query.ts
diff --git a/framework/kibocommerce/api/queries/get-all-products-query.ts b/packages/kibocommerce/src/api/queries/get-all-products-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-all-products-query.ts
rename to packages/kibocommerce/src/api/queries/get-all-products-query.ts
diff --git a/framework/kibocommerce/api/queries/get-anonymous-shopper-token-query.ts b/packages/kibocommerce/src/api/queries/get-anonymous-shopper-token-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-anonymous-shopper-token-query.ts
rename to packages/kibocommerce/src/api/queries/get-anonymous-shopper-token-query.ts
diff --git a/framework/kibocommerce/api/queries/get-cart-query.ts b/packages/kibocommerce/src/api/queries/get-cart-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-cart-query.ts
rename to packages/kibocommerce/src/api/queries/get-cart-query.ts
diff --git a/framework/kibocommerce/api/queries/get-categories-tree-query.ts b/packages/kibocommerce/src/api/queries/get-categories-tree-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-categories-tree-query.ts
rename to packages/kibocommerce/src/api/queries/get-categories-tree-query.ts
diff --git a/framework/kibocommerce/api/queries/get-customer-account-query.ts b/packages/kibocommerce/src/api/queries/get-customer-account-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-customer-account-query.ts
rename to packages/kibocommerce/src/api/queries/get-customer-account-query.ts
diff --git a/framework/kibocommerce/api/queries/get-customer-wishlist-query.ts b/packages/kibocommerce/src/api/queries/get-customer-wishlist-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-customer-wishlist-query.ts
rename to packages/kibocommerce/src/api/queries/get-customer-wishlist-query.ts
diff --git a/framework/kibocommerce/api/queries/get-page-query.ts b/packages/kibocommerce/src/api/queries/get-page-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-page-query.ts
rename to packages/kibocommerce/src/api/queries/get-page-query.ts
diff --git a/framework/kibocommerce/api/queries/get-product-query.ts b/packages/kibocommerce/src/api/queries/get-product-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/get-product-query.ts
rename to packages/kibocommerce/src/api/queries/get-product-query.ts
diff --git a/framework/kibocommerce/api/queries/product-search-query.ts b/packages/kibocommerce/src/api/queries/product-search-query.ts
similarity index 100%
rename from framework/kibocommerce/api/queries/product-search-query.ts
rename to packages/kibocommerce/src/api/queries/product-search-query.ts
diff --git a/framework/kibocommerce/api/utils/api-auth-helper.ts b/packages/kibocommerce/src/api/utils/api-auth-helper.ts
similarity index 90%
rename from framework/kibocommerce/api/utils/api-auth-helper.ts
rename to packages/kibocommerce/src/api/utils/api-auth-helper.ts
index cc4c0acf0..20cfc7403 100644
--- a/framework/kibocommerce/api/utils/api-auth-helper.ts
+++ b/packages/kibocommerce/src/api/utils/api-auth-helper.ts
@@ -1,8 +1,10 @@
-import getNextConfig from 'next/config'
 import type { KiboCommerceConfig } from '../index'
 import type { FetchOptions } from '@vercel/fetch'
 import fetch from './fetch'
 
+// This object is persisted during development
+const authCache: { kiboAuthTicket?: AppAuthTicket } = {}
+
 interface AppAuthTicket {
   access_token: string
   token_type: string
@@ -12,19 +14,17 @@ interface AppAuthTicket {
 }
 
 interface AuthTicketCache {
-  getAuthTicket: () => Promise<AppAuthTicket>
+  getAuthTicket: () => Promise<AppAuthTicket | undefined>
   setAuthTicket: (kiboAuthTicket: AppAuthTicket) => void
 }
 
 class RuntimeMemCache implements AuthTicketCache {
   constructor() {}
   async getAuthTicket() {
-    const { serverRuntimeConfig } = getNextConfig()
-    return serverRuntimeConfig.kiboAuthTicket
+    return authCache.kiboAuthTicket
   }
   setAuthTicket(kiboAuthTicket: AppAuthTicket) {
-    const { serverRuntimeConfig } = getNextConfig()
-    serverRuntimeConfig.kiboAuthTicket = kiboAuthTicket
+    authCache.kiboAuthTicket = kiboAuthTicket
   }
 }
 
@@ -105,6 +105,6 @@ export class APIAuthenticationHelper {
       authTicket = await this.refreshTicket(authTicket)
     }
 
-    return authTicket.access_token
+    return authTicket!.access_token
   }
 }
diff --git a/framework/kibocommerce/api/utils/cookie-handler.ts b/packages/kibocommerce/src/api/utils/cookie-handler.ts
similarity index 100%
rename from framework/kibocommerce/api/utils/cookie-handler.ts
rename to packages/kibocommerce/src/api/utils/cookie-handler.ts
diff --git a/framework/kibocommerce/api/utils/fetch-graphql-api.ts b/packages/kibocommerce/src/api/utils/fetch-graphql-api.ts
similarity index 90%
rename from framework/kibocommerce/api/utils/fetch-graphql-api.ts
rename to packages/kibocommerce/src/api/utils/fetch-graphql-api.ts
index 8638b35b7..cf84f5e41 100644
--- a/framework/kibocommerce/api/utils/fetch-graphql-api.ts
+++ b/packages/kibocommerce/src/api/utils/fetch-graphql-api.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { GraphQLFetcher } from '@commerce/api'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { KiboCommerceConfig } from '../index'
 import fetch from './fetch'
 import { APIAuthenticationHelper } from './api-auth-helper';
diff --git a/framework/kibocommerce/api/utils/fetch-local.ts b/packages/kibocommerce/src/api/utils/fetch-local.ts
similarity index 89%
rename from framework/kibocommerce/api/utils/fetch-local.ts
rename to packages/kibocommerce/src/api/utils/fetch-local.ts
index 2612188a9..fa3a214cb 100644
--- a/framework/kibocommerce/api/utils/fetch-local.ts
+++ b/packages/kibocommerce/src/api/utils/fetch-local.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { GraphQLFetcher } from '@commerce/api'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { KiboCommerceConfig } from '../index'
 import fetch from './fetch'
 
diff --git a/framework/kibocommerce/api/utils/fetch.ts b/packages/kibocommerce/src/api/utils/fetch.ts
similarity index 100%
rename from framework/kibocommerce/api/utils/fetch.ts
rename to packages/kibocommerce/src/api/utils/fetch.ts
diff --git a/framework/kibocommerce/api/utils/get-anonymous-shopper-token.ts b/packages/kibocommerce/src/api/utils/get-anonymous-shopper-token.ts
similarity index 100%
rename from framework/kibocommerce/api/utils/get-anonymous-shopper-token.ts
rename to packages/kibocommerce/src/api/utils/get-anonymous-shopper-token.ts
diff --git a/framework/kibocommerce/api/utils/get-customer-id.ts b/packages/kibocommerce/src/api/utils/get-customer-id.ts
similarity index 100%
rename from framework/kibocommerce/api/utils/get-customer-id.ts
rename to packages/kibocommerce/src/api/utils/get-customer-id.ts
diff --git a/framework/kibocommerce/auth/index.ts b/packages/kibocommerce/src/auth/index.ts
similarity index 100%
rename from framework/kibocommerce/auth/index.ts
rename to packages/kibocommerce/src/auth/index.ts
diff --git a/framework/kibocommerce/auth/use-login.tsx b/packages/kibocommerce/src/auth/use-login.tsx
similarity index 84%
rename from framework/kibocommerce/auth/use-login.tsx
rename to packages/kibocommerce/src/auth/use-login.tsx
index 44b807b8c..c9d1fac17 100644
--- a/framework/kibocommerce/auth/use-login.tsx
+++ b/packages/kibocommerce/src/auth/use-login.tsx
@@ -1,8 +1,8 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 
 import { useCallback } from 'react'
-import { CommerceError } from '@commerce/utils/errors'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 import type { LoginHook } from '../types/login'
 import useCustomer from '../customer/use-customer'
 import useCart from '../cart/use-cart'
diff --git a/framework/kibocommerce/auth/use-logout.tsx b/packages/kibocommerce/src/auth/use-logout.tsx
similarity index 78%
rename from framework/kibocommerce/auth/use-logout.tsx
rename to packages/kibocommerce/src/auth/use-logout.tsx
index 3e344fb09..83e5a4b0c 100644
--- a/framework/kibocommerce/auth/use-logout.tsx
+++ b/packages/kibocommerce/src/auth/use-logout.tsx
@@ -1,6 +1,6 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import type { LogoutHook } from '../types/logout'
 import useCustomer from '../customer/use-customer'
 import useCart from '../cart/use-cart'
@@ -14,7 +14,7 @@ export const handler: MutationHook<LogoutHook> = {
   },
   useHook: ({ fetch }) => () => {
     const { mutate } = useCustomer()
-    const { mutate: mutateCart } = useCart() 
+    const { mutate: mutateCart } = useCart()
 
     return useCallback(
       async function logout() {
diff --git a/framework/bigcommerce/auth/use-signup.tsx b/packages/kibocommerce/src/auth/use-signup.tsx
similarity index 83%
rename from framework/bigcommerce/auth/use-signup.tsx
rename to packages/kibocommerce/src/auth/use-signup.tsx
index 8f443c42d..b06126df6 100644
--- a/framework/bigcommerce/auth/use-signup.tsx
+++ b/packages/kibocommerce/src/auth/use-signup.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import type { SignupHook } from '../types/signup'
 import useCustomer from '../customer/use-customer'
 
diff --git a/framework/kibocommerce/cart/index.ts b/packages/kibocommerce/src/cart/index.ts
similarity index 100%
rename from framework/kibocommerce/cart/index.ts
rename to packages/kibocommerce/src/cart/index.ts
diff --git a/framework/kibocommerce/cart/use-add-item.tsx b/packages/kibocommerce/src/cart/use-add-item.tsx
similarity index 77%
rename from framework/kibocommerce/cart/use-add-item.tsx
rename to packages/kibocommerce/src/cart/use-add-item.tsx
index 1ac6ac6f8..bb7b8befc 100644
--- a/framework/kibocommerce/cart/use-add-item.tsx
+++ b/packages/kibocommerce/src/cart/use-add-item.tsx
@@ -1,8 +1,8 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
-import type { AddItemHook } from '@commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/kibocommerce/cart/use-cart.tsx b/packages/kibocommerce/src/cart/use-cart.tsx
similarity index 85%
rename from framework/kibocommerce/cart/use-cart.tsx
rename to packages/kibocommerce/src/cart/use-cart.tsx
index 0c565e094..0af0738ec 100644
--- a/framework/kibocommerce/cart/use-cart.tsx
+++ b/packages/kibocommerce/src/cart/use-cart.tsx
@@ -1,6 +1,6 @@
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 
 export default useCart as UseCart<typeof handler>
 
diff --git a/framework/kibocommerce/cart/use-remove-item.tsx b/packages/kibocommerce/src/cart/use-remove-item.tsx
similarity index 84%
rename from framework/kibocommerce/cart/use-remove-item.tsx
rename to packages/kibocommerce/src/cart/use-remove-item.tsx
index 1376f29ce..3fa883c2f 100644
--- a/framework/kibocommerce/cart/use-remove-item.tsx
+++ b/packages/kibocommerce/src/cart/use-remove-item.tsx
@@ -2,10 +2,10 @@ import { useCallback } from 'react'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
-import type { Cart, LineItem, RemoveItemHook } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
+import type { Cart, LineItem, RemoveItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 
 export type RemoveItemFn<T = any> = T extends LineItem
diff --git a/framework/kibocommerce/cart/use-update-item.tsx b/packages/kibocommerce/src/cart/use-update-item.tsx
similarity index 89%
rename from framework/kibocommerce/cart/use-update-item.tsx
rename to packages/kibocommerce/src/cart/use-update-item.tsx
index 0f9f5754d..931782c4f 100644
--- a/framework/kibocommerce/cart/use-update-item.tsx
+++ b/packages/kibocommerce/src/cart/use-update-item.tsx
@@ -3,10 +3,10 @@ import debounce from 'lodash.debounce'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
-import type { LineItem, UpdateItemHook } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
+import type { LineItem, UpdateItemHook } from '@vercel/commerce/types/cart'
 import { handler as removeItemHandler } from './use-remove-item'
 import useCart from './use-cart'
 
diff --git a/framework/saleor/checkout/use-checkout.tsx b/packages/kibocommerce/src/checkout/use-checkout.tsx
similarity index 64%
rename from framework/saleor/checkout/use-checkout.tsx
rename to packages/kibocommerce/src/checkout/use-checkout.tsx
index 942f85b83..cab52bb60 100644
--- a/framework/saleor/checkout/use-checkout.tsx
+++ b/packages/kibocommerce/src/checkout/use-checkout.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
 
diff --git a/framework/kibocommerce/commerce.config.json b/packages/kibocommerce/src/commerce.config.json
similarity index 100%
rename from framework/kibocommerce/commerce.config.json
rename to packages/kibocommerce/src/commerce.config.json
diff --git a/packages/kibocommerce/src/customer/address/use-add-item.tsx b/packages/kibocommerce/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..fabd11b1d
--- /dev/null
+++ b/packages/kibocommerce/src/customer/address/use-add-item.tsx
@@ -0,0 +1,15 @@
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/bigcommerce/customer/card/use-add-item.tsx b/packages/kibocommerce/src/customer/card/use-add-item.tsx
similarity index 63%
rename from framework/bigcommerce/customer/card/use-add-item.tsx
rename to packages/kibocommerce/src/customer/card/use-add-item.tsx
index 7e3afa9c5..938e6cd61 100644
--- a/framework/bigcommerce/customer/card/use-add-item.tsx
+++ b/packages/kibocommerce/src/customer/card/use-add-item.tsx
@@ -1,5 +1,5 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/kibocommerce/customer/index.ts b/packages/kibocommerce/src/customer/index.ts
similarity index 100%
rename from framework/kibocommerce/customer/index.ts
rename to packages/kibocommerce/src/customer/index.ts
diff --git a/framework/kibocommerce/customer/use-customer.tsx b/packages/kibocommerce/src/customer/use-customer.tsx
similarity index 78%
rename from framework/kibocommerce/customer/use-customer.tsx
rename to packages/kibocommerce/src/customer/use-customer.tsx
index 238b1229b..73e804a4b 100644
--- a/framework/kibocommerce/customer/use-customer.tsx
+++ b/packages/kibocommerce/src/customer/use-customer.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
 import type { CustomerHook } from '../types/customer'
 
 export default useCustomer as UseCustomer<typeof handler>
diff --git a/framework/kibocommerce/fetcher.ts b/packages/kibocommerce/src/fetcher.ts
similarity index 88%
rename from framework/kibocommerce/fetcher.ts
rename to packages/kibocommerce/src/fetcher.ts
index f8ca0c578..bc8a6b9aa 100644
--- a/framework/kibocommerce/fetcher.ts
+++ b/packages/kibocommerce/src/fetcher.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { Fetcher } from '@commerce/utils/types'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { Fetcher } from '@vercel/commerce/utils/types'
 
 async function getText(res: Response) {
   try {
diff --git a/framework/kibocommerce/index.tsx b/packages/kibocommerce/src/index.tsx
similarity index 93%
rename from framework/kibocommerce/index.tsx
rename to packages/kibocommerce/src/index.tsx
index af8b66ee6..43077a535 100644
--- a/framework/kibocommerce/index.tsx
+++ b/packages/kibocommerce/src/index.tsx
@@ -1,4 +1,4 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
 import { kiboCommerceProvider, KibocommerceProvider } from './provider'
 
 export { kiboCommerceProvider }
diff --git a/framework/kibocommerce/lib/get-cookie-expiration-date.ts b/packages/kibocommerce/src/lib/get-cookie-expiration-date.ts
similarity index 100%
rename from framework/kibocommerce/lib/get-cookie-expiration-date.ts
rename to packages/kibocommerce/src/lib/get-cookie-expiration-date.ts
diff --git a/framework/kibocommerce/lib/get-slug.ts b/packages/kibocommerce/src/lib/get-slug.ts
similarity index 100%
rename from framework/kibocommerce/lib/get-slug.ts
rename to packages/kibocommerce/src/lib/get-slug.ts
diff --git a/framework/kibocommerce/lib/immutability.ts b/packages/kibocommerce/src/lib/immutability.ts
similarity index 100%
rename from framework/kibocommerce/lib/immutability.ts
rename to packages/kibocommerce/src/lib/immutability.ts
diff --git a/framework/kibocommerce/lib/normalize.ts b/packages/kibocommerce/src/lib/normalize.ts
similarity index 99%
rename from framework/kibocommerce/lib/normalize.ts
rename to packages/kibocommerce/src/lib/normalize.ts
index 5fd03b855..00d0a44c7 100644
--- a/framework/kibocommerce/lib/normalize.ts
+++ b/packages/kibocommerce/src/lib/normalize.ts
@@ -1,6 +1,6 @@
 import update from './immutability'
 import getSlug from './get-slug'
-import type { PrCategory, CustomerAccountInput, Document } from '../schema'
+import type { PrCategory, CustomerAccountInput, Document } from '../../schema'
 import { Page } from '../types/page';
 import { Customer } from '../types/customer'
 
diff --git a/framework/kibocommerce/lib/prepare-set-cookie.ts b/packages/kibocommerce/src/lib/prepare-set-cookie.ts
similarity index 100%
rename from framework/kibocommerce/lib/prepare-set-cookie.ts
rename to packages/kibocommerce/src/lib/prepare-set-cookie.ts
diff --git a/framework/kibocommerce/lib/product-search-vars.ts b/packages/kibocommerce/src/lib/product-search-vars.ts
similarity index 100%
rename from framework/kibocommerce/lib/product-search-vars.ts
rename to packages/kibocommerce/src/lib/product-search-vars.ts
diff --git a/framework/kibocommerce/lib/set-cookie.ts b/packages/kibocommerce/src/lib/set-cookie.ts
similarity index 100%
rename from framework/kibocommerce/lib/set-cookie.ts
rename to packages/kibocommerce/src/lib/set-cookie.ts
diff --git a/framework/kibocommerce/next.config.js b/packages/kibocommerce/src/next.config.cjs
similarity index 100%
rename from framework/kibocommerce/next.config.js
rename to packages/kibocommerce/src/next.config.cjs
diff --git a/framework/kibocommerce/product/index.ts b/packages/kibocommerce/src/product/index.ts
similarity index 100%
rename from framework/kibocommerce/product/index.ts
rename to packages/kibocommerce/src/product/index.ts
diff --git a/packages/kibocommerce/src/product/use-price.tsx b/packages/kibocommerce/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/kibocommerce/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/kibocommerce/product/use-search.tsx b/packages/kibocommerce/src/product/use-search.tsx
similarity index 89%
rename from framework/kibocommerce/product/use-search.tsx
rename to packages/kibocommerce/src/product/use-search.tsx
index 204ca3181..4a9107b4a 100644
--- a/framework/kibocommerce/product/use-search.tsx
+++ b/packages/kibocommerce/src/product/use-search.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 export default useSearch as UseSearch<typeof handler>
 
 export const handler: SWRHook<any> = {
diff --git a/framework/kibocommerce/provider.ts b/packages/kibocommerce/src/provider.ts
similarity index 100%
rename from framework/kibocommerce/provider.ts
rename to packages/kibocommerce/src/provider.ts
diff --git a/framework/kibocommerce/types/customer.ts b/packages/kibocommerce/src/types/customer.ts
similarity index 87%
rename from framework/kibocommerce/types/customer.ts
rename to packages/kibocommerce/src/types/customer.ts
index 0061f070c..29f68fef1 100644
--- a/framework/kibocommerce/types/customer.ts
+++ b/packages/kibocommerce/src/types/customer.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/customer'
+import * as Core from '@vercel/commerce/types/customer'
 export type Maybe<T> = T | null
-export * from '@commerce/types/customer'
+export * from '@vercel/commerce/types/customer'
 export type Scalars = {
     ID: string
     String: string
diff --git a/packages/kibocommerce/src/types/login.ts b/packages/kibocommerce/src/types/login.ts
new file mode 100644
index 000000000..2e7b198b2
--- /dev/null
+++ b/packages/kibocommerce/src/types/login.ts
@@ -0,0 +1,8 @@
+import * as Core from '@vercel/commerce/types/login'
+import type { CustomerUserAuthInfoInput } from '../../schema'
+
+export * from '@vercel/commerce/types/login'
+
+export type LoginOperation = Core.LoginOperation & {
+  variables: CustomerUserAuthInfoInput
+}
diff --git a/packages/kibocommerce/src/types/logout.ts b/packages/kibocommerce/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/kibocommerce/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/framework/kibocommerce/types/page.ts b/packages/kibocommerce/src/types/page.ts
similarity index 90%
rename from framework/kibocommerce/types/page.ts
rename to packages/kibocommerce/src/types/page.ts
index b6bf6d2d6..f311eb8b8 100644
--- a/framework/kibocommerce/types/page.ts
+++ b/packages/kibocommerce/src/types/page.ts
@@ -1,4 +1,4 @@
-import * as Core from '@commerce/types/page'
+import * as Core from '@vercel/commerce/types/page'
 export type Maybe<T> = T | null
 export type Scalars = {
     ID: string
@@ -14,7 +14,7 @@ export type Scalars = {
     Object: any
 }
 
-export * from '@commerce/types/page'
+export * from '@vercel/commerce/types/page'
 
 export type Page = Core.Page
 
diff --git a/packages/kibocommerce/src/types/signup.ts b/packages/kibocommerce/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/kibocommerce/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/framework/kibocommerce/wishlist/index.ts b/packages/kibocommerce/src/wishlist/index.ts
similarity index 100%
rename from framework/kibocommerce/wishlist/index.ts
rename to packages/kibocommerce/src/wishlist/index.ts
diff --git a/framework/kibocommerce/wishlist/use-add-item.tsx b/packages/kibocommerce/src/wishlist/use-add-item.tsx
similarity index 77%
rename from framework/kibocommerce/wishlist/use-add-item.tsx
rename to packages/kibocommerce/src/wishlist/use-add-item.tsx
index 15e6c44a7..3f634e31e 100644
--- a/framework/kibocommerce/wishlist/use-add-item.tsx
+++ b/packages/kibocommerce/src/wishlist/use-add-item.tsx
@@ -1,8 +1,8 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/wishlist/use-add-item'
-import type { AddItemHook } from '@commerce/types/wishlist'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/wishlist/use-add-item'
+import type { AddItemHook } from '@vercel/commerce/types/wishlist'
 import useCustomer from '../customer/use-customer'
 import useWishlist from './use-wishlist'
 
diff --git a/framework/kibocommerce/wishlist/use-remove-item.tsx b/packages/kibocommerce/src/wishlist/use-remove-item.tsx
similarity index 79%
rename from framework/kibocommerce/wishlist/use-remove-item.tsx
rename to packages/kibocommerce/src/wishlist/use-remove-item.tsx
index d83a3d5bf..490154a45 100644
--- a/framework/kibocommerce/wishlist/use-remove-item.tsx
+++ b/packages/kibocommerce/src/wishlist/use-remove-item.tsx
@@ -1,10 +1,10 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 import useRemoveItem, {
   UseRemoveItem,
-} from '@commerce/wishlist/use-remove-item'
-import type { RemoveItemHook } from '@commerce/types/wishlist'
+} from '@vercel/commerce/wishlist/use-remove-item'
+import type { RemoveItemHook } from '@vercel/commerce/types/wishlist'
 import useCustomer from '../customer/use-customer'
 import useWishlist from './use-wishlist'
 
diff --git a/framework/kibocommerce/wishlist/use-wishlist.tsx b/packages/kibocommerce/src/wishlist/use-wishlist.tsx
similarity index 86%
rename from framework/kibocommerce/wishlist/use-wishlist.tsx
rename to packages/kibocommerce/src/wishlist/use-wishlist.tsx
index f29c182ff..a91eb419b 100644
--- a/framework/kibocommerce/wishlist/use-wishlist.tsx
+++ b/packages/kibocommerce/src/wishlist/use-wishlist.tsx
@@ -1,7 +1,7 @@
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useWishlist, { UseWishlist } from '@commerce/wishlist/use-wishlist'
-import type { GetWishlistHook } from '@commerce/types/wishlist'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useWishlist, { UseWishlist } from '@vercel/commerce/wishlist/use-wishlist'
+import type { GetWishlistHook } from '@vercel/commerce/types/wishlist'
 import useCustomer from '../customer/use-customer'
 
 export default useWishlist as UseWishlist<typeof handler>
diff --git a/packages/kibocommerce/tsconfig.json b/packages/kibocommerce/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/kibocommerce/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/local/.env.template b/packages/local/.env.template
similarity index 100%
rename from framework/local/.env.template
rename to packages/local/.env.template
diff --git a/packages/local/.prettierignore b/packages/local/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/local/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/local/.prettierrc b/packages/local/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/local/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/local/README.md b/packages/local/README.md
similarity index 100%
rename from framework/local/README.md
rename to packages/local/README.md
diff --git a/packages/local/package.json b/packages/local/package.json
new file mode 100644
index 000000000..b2d860569
--- /dev/null
+++ b/packages/local/package.json
@@ -0,0 +1,72 @@
+{
+  "name": "@vercel/commerce-local",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/local/api/endpoints/cart/index.ts b/packages/local/src/api/endpoints/cart/index.ts
similarity index 100%
rename from framework/local/api/endpoints/cart/index.ts
rename to packages/local/src/api/endpoints/cart/index.ts
diff --git a/framework/local/api/endpoints/catalog/index.ts b/packages/local/src/api/endpoints/catalog/index.ts
similarity index 100%
rename from framework/local/api/endpoints/catalog/index.ts
rename to packages/local/src/api/endpoints/catalog/index.ts
diff --git a/framework/local/api/endpoints/catalog/products.ts b/packages/local/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/local/api/endpoints/catalog/products.ts
rename to packages/local/src/api/endpoints/catalog/products.ts
diff --git a/framework/local/api/endpoints/checkout/index.ts b/packages/local/src/api/endpoints/checkout/index.ts
similarity index 100%
rename from framework/local/api/endpoints/checkout/index.ts
rename to packages/local/src/api/endpoints/checkout/index.ts
diff --git a/framework/local/api/endpoints/customer/address.ts b/packages/local/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/local/api/endpoints/customer/address.ts
rename to packages/local/src/api/endpoints/customer/address.ts
diff --git a/framework/local/api/endpoints/customer/card.ts b/packages/local/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/local/api/endpoints/customer/card.ts
rename to packages/local/src/api/endpoints/customer/card.ts
diff --git a/framework/local/api/endpoints/customer/index.ts b/packages/local/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/local/api/endpoints/customer/index.ts
rename to packages/local/src/api/endpoints/customer/index.ts
diff --git a/framework/local/api/endpoints/login/index.ts b/packages/local/src/api/endpoints/login/index.ts
similarity index 100%
rename from framework/local/api/endpoints/login/index.ts
rename to packages/local/src/api/endpoints/login/index.ts
diff --git a/framework/local/api/endpoints/logout/index.ts b/packages/local/src/api/endpoints/logout/index.ts
similarity index 100%
rename from framework/local/api/endpoints/logout/index.ts
rename to packages/local/src/api/endpoints/logout/index.ts
diff --git a/framework/local/api/endpoints/signup/index.ts b/packages/local/src/api/endpoints/signup/index.ts
similarity index 100%
rename from framework/local/api/endpoints/signup/index.ts
rename to packages/local/src/api/endpoints/signup/index.ts
diff --git a/framework/local/api/endpoints/wishlist/index.tsx b/packages/local/src/api/endpoints/wishlist/index.tsx
similarity index 100%
rename from framework/local/api/endpoints/wishlist/index.tsx
rename to packages/local/src/api/endpoints/wishlist/index.tsx
diff --git a/framework/local/api/index.ts b/packages/local/src/api/index.ts
similarity index 88%
rename from framework/local/api/index.ts
rename to packages/local/src/api/index.ts
index 9f403d2b3..3b24a3045 100644
--- a/framework/local/api/index.ts
+++ b/packages/local/src/api/index.ts
@@ -1,5 +1,5 @@
-import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
-import { getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
+import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
 import createFetcher from './utils/fetch-local'
 
 import getAllPages from './operations/get-all-pages'
diff --git a/framework/local/api/operations/get-all-pages.ts b/packages/local/src/api/operations/get-all-pages.ts
similarity index 100%
rename from framework/local/api/operations/get-all-pages.ts
rename to packages/local/src/api/operations/get-all-pages.ts
diff --git a/framework/local/api/operations/get-all-product-paths.ts b/packages/local/src/api/operations/get-all-product-paths.ts
similarity index 100%
rename from framework/local/api/operations/get-all-product-paths.ts
rename to packages/local/src/api/operations/get-all-product-paths.ts
diff --git a/framework/local/api/operations/get-all-products.ts b/packages/local/src/api/operations/get-all-products.ts
similarity index 72%
rename from framework/local/api/operations/get-all-products.ts
rename to packages/local/src/api/operations/get-all-products.ts
index 21a04559d..2d11950ce 100644
--- a/framework/local/api/operations/get-all-products.ts
+++ b/packages/local/src/api/operations/get-all-products.ts
@@ -1,6 +1,6 @@
-import { Product } from '@commerce/types/product'
-import { GetAllProductsOperation } from '@commerce/types/product'
-import type { OperationContext } from '@commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
+import { GetAllProductsOperation } from '@vercel/commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { LocalConfig, Provider } from '../index'
 import data from '../../data.json'
 
diff --git a/framework/local/api/operations/get-customer-wishlist.ts b/packages/local/src/api/operations/get-customer-wishlist.ts
similarity index 100%
rename from framework/local/api/operations/get-customer-wishlist.ts
rename to packages/local/src/api/operations/get-customer-wishlist.ts
diff --git a/framework/local/api/operations/get-page.ts b/packages/local/src/api/operations/get-page.ts
similarity index 100%
rename from framework/local/api/operations/get-page.ts
rename to packages/local/src/api/operations/get-page.ts
diff --git a/framework/local/api/operations/get-product.ts b/packages/local/src/api/operations/get-product.ts
similarity index 73%
rename from framework/local/api/operations/get-product.ts
rename to packages/local/src/api/operations/get-product.ts
index 690b1aab9..b77be3acb 100644
--- a/framework/local/api/operations/get-product.ts
+++ b/packages/local/src/api/operations/get-product.ts
@@ -1,8 +1,8 @@
 import type { LocalConfig } from '../index'
-import { Product } from '@commerce/types/product'
-import { GetProductOperation } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
+import { GetProductOperation } from '@vercel/commerce/types/product'
 import data from '../../data.json'
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 
 export default function getProductOperation({
   commerce,
diff --git a/framework/local/api/operations/get-site-info.ts b/packages/local/src/api/operations/get-site-info.ts
similarity index 87%
rename from framework/local/api/operations/get-site-info.ts
rename to packages/local/src/api/operations/get-site-info.ts
index d43ed8359..c07a479cb 100644
--- a/framework/local/api/operations/get-site-info.ts
+++ b/packages/local/src/api/operations/get-site-info.ts
@@ -1,5 +1,5 @@
-import { OperationContext } from '@commerce/api/operations'
-import { Category } from '@commerce/types/site'
+import { OperationContext } from '@vercel/commerce/api/operations'
+import { Category } from '@vercel/commerce/types/site'
 import { LocalConfig } from '../index'
 
 export type GetSiteInfoResult<
diff --git a/framework/local/api/operations/index.ts b/packages/local/src/api/operations/index.ts
similarity index 100%
rename from framework/local/api/operations/index.ts
rename to packages/local/src/api/operations/index.ts
diff --git a/framework/local/api/utils/fetch-local.ts b/packages/local/src/api/utils/fetch-local.ts
similarity index 87%
rename from framework/local/api/utils/fetch-local.ts
rename to packages/local/src/api/utils/fetch-local.ts
index aa85cf27b..ae84fff8b 100644
--- a/framework/local/api/utils/fetch-local.ts
+++ b/packages/local/src/api/utils/fetch-local.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { GraphQLFetcher } from '@commerce/api'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { LocalConfig } from '../index'
 import fetch from './fetch'
 
diff --git a/framework/local/api/utils/fetch.ts b/packages/local/src/api/utils/fetch.ts
similarity index 100%
rename from framework/local/api/utils/fetch.ts
rename to packages/local/src/api/utils/fetch.ts
diff --git a/framework/local/auth/index.ts b/packages/local/src/auth/index.ts
similarity index 100%
rename from framework/local/auth/index.ts
rename to packages/local/src/auth/index.ts
diff --git a/framework/local/auth/use-login.tsx b/packages/local/src/auth/use-login.tsx
similarity index 65%
rename from framework/local/auth/use-login.tsx
rename to packages/local/src/auth/use-login.tsx
index 28351dc7f..20e3ed229 100644
--- a/framework/local/auth/use-login.tsx
+++ b/packages/local/src/auth/use-login.tsx
@@ -1,5 +1,5 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 
 export default useLogin as UseLogin<typeof handler>
 
diff --git a/framework/local/auth/use-logout.tsx b/packages/local/src/auth/use-logout.tsx
similarity index 64%
rename from framework/local/auth/use-logout.tsx
rename to packages/local/src/auth/use-logout.tsx
index 9b3fc3e44..4e74908f3 100644
--- a/framework/local/auth/use-logout.tsx
+++ b/packages/local/src/auth/use-logout.tsx
@@ -1,5 +1,5 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 
 export default useLogout as UseLogout<typeof handler>
 
diff --git a/framework/ordercloud/auth/use-signup.tsx b/packages/local/src/auth/use-signup.tsx
similarity index 70%
rename from framework/ordercloud/auth/use-signup.tsx
rename to packages/local/src/auth/use-signup.tsx
index e9ad13458..e48811403 100644
--- a/framework/ordercloud/auth/use-signup.tsx
+++ b/packages/local/src/auth/use-signup.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
 import useCustomer from '../customer/use-customer'
-import { MutationHook } from '@commerce/utils/types'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 
 export default useSignup as UseSignup<typeof handler>
 
diff --git a/framework/local/cart/index.ts b/packages/local/src/cart/index.ts
similarity index 100%
rename from framework/local/cart/index.ts
rename to packages/local/src/cart/index.ts
diff --git a/framework/local/cart/use-add-item.tsx b/packages/local/src/cart/use-add-item.tsx
similarity index 69%
rename from framework/local/cart/use-add-item.tsx
rename to packages/local/src/cart/use-add-item.tsx
index 7f3d1061f..2be6e0aaa 100644
--- a/framework/local/cart/use-add-item.tsx
+++ b/packages/local/src/cart/use-add-item.tsx
@@ -1,5 +1,5 @@
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 export const handler: MutationHook<any> = {
diff --git a/framework/local/cart/use-cart.tsx b/packages/local/src/cart/use-cart.tsx
similarity index 85%
rename from framework/local/cart/use-cart.tsx
rename to packages/local/src/cart/use-cart.tsx
index b3e509a21..8f92de3c9 100644
--- a/framework/local/cart/use-cart.tsx
+++ b/packages/local/src/cart/use-cart.tsx
@@ -1,6 +1,6 @@
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 
 export default useCart as UseCart<typeof handler>
 
diff --git a/framework/local/cart/use-remove-item.tsx b/packages/local/src/cart/use-remove-item.tsx
similarity index 68%
rename from framework/local/cart/use-remove-item.tsx
rename to packages/local/src/cart/use-remove-item.tsx
index b4ed583b8..92d52c997 100644
--- a/framework/local/cart/use-remove-item.tsx
+++ b/packages/local/src/cart/use-remove-item.tsx
@@ -1,5 +1,7 @@
-import { MutationHook } from '@commerce/utils/types'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useRemoveItem, {
+  UseRemoveItem,
+} from '@vercel/commerce/cart/use-remove-item'
 
 export default useRemoveItem as UseRemoveItem<typeof handler>
 
diff --git a/framework/local/cart/use-update-item.tsx b/packages/local/src/cart/use-update-item.tsx
similarity index 66%
rename from framework/local/cart/use-update-item.tsx
rename to packages/local/src/cart/use-update-item.tsx
index 06d703f70..950f422e1 100644
--- a/framework/local/cart/use-update-item.tsx
+++ b/packages/local/src/cart/use-update-item.tsx
@@ -1,5 +1,7 @@
-import { MutationHook } from '@commerce/utils/types'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useUpdateItem, {
+  UseUpdateItem,
+} from '@vercel/commerce/cart/use-update-item'
 
 export default useUpdateItem as UseUpdateItem<any>
 
diff --git a/framework/shopify/checkout/use-checkout.tsx b/packages/local/src/checkout/use-checkout.tsx
similarity index 63%
rename from framework/shopify/checkout/use-checkout.tsx
rename to packages/local/src/checkout/use-checkout.tsx
index 942f85b83..76997be73 100644
--- a/framework/shopify/checkout/use-checkout.tsx
+++ b/packages/local/src/checkout/use-checkout.tsx
@@ -1,5 +1,7 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, {
+  UseCheckout,
+} from '@vercel/commerce/checkout/use-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
 
diff --git a/framework/local/commerce.config.json b/packages/local/src/commerce.config.json
similarity index 100%
rename from framework/local/commerce.config.json
rename to packages/local/src/commerce.config.json
diff --git a/packages/local/src/customer/address/use-add-item.tsx b/packages/local/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..4f85c8472
--- /dev/null
+++ b/packages/local/src/customer/address/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/packages/local/src/customer/card/use-add-item.tsx b/packages/local/src/customer/card/use-add-item.tsx
new file mode 100644
index 000000000..77d149eff
--- /dev/null
+++ b/packages/local/src/customer/card/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/local/customer/index.ts b/packages/local/src/customer/index.ts
similarity index 100%
rename from framework/local/customer/index.ts
rename to packages/local/src/customer/index.ts
diff --git a/framework/local/customer/use-customer.tsx b/packages/local/src/customer/use-customer.tsx
similarity index 66%
rename from framework/local/customer/use-customer.tsx
rename to packages/local/src/customer/use-customer.tsx
index 41757cd0d..04c48943d 100644
--- a/framework/local/customer/use-customer.tsx
+++ b/packages/local/src/customer/use-customer.tsx
@@ -1,5 +1,7 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, {
+  UseCustomer,
+} from '@vercel/commerce/customer/use-customer'
 
 export default useCustomer as UseCustomer<typeof handler>
 export const handler: SWRHook<any> = {
diff --git a/framework/local/data.json b/packages/local/src/data.json
similarity index 100%
rename from framework/local/data.json
rename to packages/local/src/data.json
diff --git a/framework/local/fetcher.ts b/packages/local/src/fetcher.ts
similarity index 78%
rename from framework/local/fetcher.ts
rename to packages/local/src/fetcher.ts
index 69943d1df..27f3ceb0c 100644
--- a/framework/local/fetcher.ts
+++ b/packages/local/src/fetcher.ts
@@ -1,4 +1,4 @@
-import { Fetcher } from '@commerce/utils/types'
+import { Fetcher } from '@vercel/commerce/utils/types'
 
 export const fetcher: Fetcher = async () => {
   console.log('FETCHER')
diff --git a/framework/local/index.tsx b/packages/local/src/index.tsx
similarity index 73%
rename from framework/local/index.tsx
rename to packages/local/src/index.tsx
index dcc713e69..ae3df810e 100644
--- a/framework/local/index.tsx
+++ b/packages/local/src/index.tsx
@@ -1,4 +1,7 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import {
+  getCommerceProvider,
+  useCommerce as useCoreCommerce,
+} from '@vercel/commerce'
 import { localProvider, LocalProvider } from './provider'
 
 export { localProvider }
diff --git a/framework/local/next.config.js b/packages/local/src/next.config.cjs
similarity index 100%
rename from framework/local/next.config.js
rename to packages/local/src/next.config.cjs
diff --git a/framework/local/product/index.ts b/packages/local/src/product/index.ts
similarity index 100%
rename from framework/local/product/index.ts
rename to packages/local/src/product/index.ts
diff --git a/packages/local/src/product/use-price.tsx b/packages/local/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/local/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/local/product/use-search.tsx b/packages/local/src/product/use-search.tsx
similarity index 67%
rename from framework/local/product/use-search.tsx
rename to packages/local/src/product/use-search.tsx
index 30e699537..b84889cca 100644
--- a/framework/local/product/use-search.tsx
+++ b/packages/local/src/product/use-search.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 export default useSearch as UseSearch<typeof handler>
 
 export const handler: SWRHook<any> = {
diff --git a/framework/local/provider.ts b/packages/local/src/provider.ts
similarity index 100%
rename from framework/local/provider.ts
rename to packages/local/src/provider.ts
diff --git a/framework/local/wishlist/use-add-item.tsx b/packages/local/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/local/wishlist/use-add-item.tsx
rename to packages/local/src/wishlist/use-add-item.tsx
diff --git a/framework/local/wishlist/use-remove-item.tsx b/packages/local/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/local/wishlist/use-remove-item.tsx
rename to packages/local/src/wishlist/use-remove-item.tsx
diff --git a/framework/ordercloud/wishlist/use-wishlist.tsx b/packages/local/src/wishlist/use-wishlist.tsx
similarity index 86%
rename from framework/ordercloud/wishlist/use-wishlist.tsx
rename to packages/local/src/wishlist/use-wishlist.tsx
index 9fe0e758f..b2785d46f 100644
--- a/framework/ordercloud/wishlist/use-wishlist.tsx
+++ b/packages/local/src/wishlist/use-wishlist.tsx
@@ -1,5 +1,5 @@
-import { HookFetcher } from '@commerce/utils/types'
-import type { Product } from '@commerce/types/product'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import type { Product } from '@vercel/commerce/types/product'
 
 const defaultOpts = {}
 
diff --git a/packages/local/tsconfig.json b/packages/local/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/local/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/ordercloud/.env.template b/packages/ordercloud/.env.template
similarity index 100%
rename from framework/ordercloud/.env.template
rename to packages/ordercloud/.env.template
diff --git a/packages/ordercloud/.prettierignore b/packages/ordercloud/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/ordercloud/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/ordercloud/.prettierrc b/packages/ordercloud/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/ordercloud/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/ordercloud/README.md b/packages/ordercloud/README.md
similarity index 100%
rename from framework/ordercloud/README.md
rename to packages/ordercloud/README.md
diff --git a/packages/ordercloud/package.json b/packages/ordercloud/package.json
new file mode 100644
index 000000000..a749b90d9
--- /dev/null
+++ b/packages/ordercloud/package.json
@@ -0,0 +1,73 @@
+{
+  "name": "@vercel/commerce-ordercloud",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1",
+    "stripe": "^8.197.0"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/ordercloud/api/endpoints/cart/add-item.ts b/packages/ordercloud/src/api/endpoints/cart/add-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/cart/add-item.ts
rename to packages/ordercloud/src/api/endpoints/cart/add-item.ts
diff --git a/framework/ordercloud/api/endpoints/cart/get-cart.ts b/packages/ordercloud/src/api/endpoints/cart/get-cart.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/cart/get-cart.ts
rename to packages/ordercloud/src/api/endpoints/cart/get-cart.ts
diff --git a/framework/ordercloud/api/endpoints/cart/index.ts b/packages/ordercloud/src/api/endpoints/cart/index.ts
similarity index 81%
rename from framework/ordercloud/api/endpoints/cart/index.ts
rename to packages/ordercloud/src/api/endpoints/cart/index.ts
index 756bce9fe..f36364c46 100644
--- a/framework/ordercloud/api/endpoints/cart/index.ts
+++ b/packages/ordercloud/src/api/endpoints/cart/index.ts
@@ -1,8 +1,8 @@
 import type { CartSchema } from '../../../types/cart'
 import type { OrdercloudAPI } from '../..'
 
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import cartEndpoint from '@commerce/api/endpoints/cart'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import cartEndpoint from '@vercel/commerce/api/endpoints/cart'
 
 import getCart from './get-cart'
 import addItem from './add-item'
diff --git a/framework/ordercloud/api/endpoints/cart/remove-item.ts b/packages/ordercloud/src/api/endpoints/cart/remove-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/cart/remove-item.ts
rename to packages/ordercloud/src/api/endpoints/cart/remove-item.ts
diff --git a/framework/ordercloud/api/endpoints/cart/update-item.ts b/packages/ordercloud/src/api/endpoints/cart/update-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/cart/update-item.ts
rename to packages/ordercloud/src/api/endpoints/cart/update-item.ts
diff --git a/framework/ordercloud/api/endpoints/catalog/products/get-products.ts b/packages/ordercloud/src/api/endpoints/catalog/products/get-products.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/catalog/products/get-products.ts
rename to packages/ordercloud/src/api/endpoints/catalog/products/get-products.ts
diff --git a/framework/ordercloud/api/endpoints/catalog/products/index.ts b/packages/ordercloud/src/api/endpoints/catalog/products/index.ts
similarity index 66%
rename from framework/ordercloud/api/endpoints/catalog/products/index.ts
rename to packages/ordercloud/src/api/endpoints/catalog/products/index.ts
index 98727a3d3..d775d6fc1 100644
--- a/framework/ordercloud/api/endpoints/catalog/products/index.ts
+++ b/packages/ordercloud/src/api/endpoints/catalog/products/index.ts
@@ -1,9 +1,9 @@
 import type { OrdercloudAPI } from '../../../../api'
 
-import { createEndpoint, GetAPISchema } from '@commerce/api'
-import { ProductsSchema } from '@commerce/types/product'
+import { createEndpoint, GetAPISchema } from '@vercel/commerce/api'
+import { ProductsSchema } from '@vercel/commerce/types/product'
 import getProducts from './get-products'
-import productsEndpoint from '@commerce/api/endpoints/catalog/products'
+import productsEndpoint from '@vercel/commerce/api/endpoints/catalog/products'
 
 export type ProductsAPI = GetAPISchema<OrdercloudAPI, ProductsSchema>
 
diff --git a/framework/ordercloud/api/endpoints/checkout/get-checkout.ts b/packages/ordercloud/src/api/endpoints/checkout/get-checkout.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/checkout/get-checkout.ts
rename to packages/ordercloud/src/api/endpoints/checkout/get-checkout.ts
diff --git a/framework/ordercloud/api/endpoints/checkout/index.ts b/packages/ordercloud/src/api/endpoints/checkout/index.ts
similarity index 79%
rename from framework/ordercloud/api/endpoints/checkout/index.ts
rename to packages/ordercloud/src/api/endpoints/checkout/index.ts
index e1b8a9f1c..44a9a6933 100644
--- a/framework/ordercloud/api/endpoints/checkout/index.ts
+++ b/packages/ordercloud/src/api/endpoints/checkout/index.ts
@@ -1,8 +1,8 @@
 import type { CheckoutSchema } from '../../../types/checkout'
 import type { OrdercloudAPI } from '../..'
 
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 
 import getCheckout from './get-checkout'
 import submitCheckout from './submit-checkout'
diff --git a/framework/ordercloud/api/endpoints/checkout/submit-checkout.ts b/packages/ordercloud/src/api/endpoints/checkout/submit-checkout.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/checkout/submit-checkout.ts
rename to packages/ordercloud/src/api/endpoints/checkout/submit-checkout.ts
diff --git a/framework/ordercloud/api/endpoints/customer/address/add-item.ts b/packages/ordercloud/src/api/endpoints/customer/address/add-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/address/add-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/address/add-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/address/get-addresses.ts b/packages/ordercloud/src/api/endpoints/customer/address/get-addresses.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/address/get-addresses.ts
rename to packages/ordercloud/src/api/endpoints/customer/address/get-addresses.ts
diff --git a/framework/ordercloud/api/endpoints/customer/address/index.ts b/packages/ordercloud/src/api/endpoints/customer/address/index.ts
similarity index 82%
rename from framework/ordercloud/api/endpoints/customer/address/index.ts
rename to packages/ordercloud/src/api/endpoints/customer/address/index.ts
index 0691fd1db..f6ab7e306 100644
--- a/framework/ordercloud/api/endpoints/customer/address/index.ts
+++ b/packages/ordercloud/src/api/endpoints/customer/address/index.ts
@@ -1,8 +1,8 @@
 import type { CustomerAddressSchema } from '../../../../types/customer/address'
 import type { OrdercloudAPI } from '../../..'
 
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import customerAddressEndpoint from '@commerce/api/endpoints/customer/address'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import customerAddressEndpoint from '@vercel/commerce/api/endpoints/customer/address'
 
 import getAddresses from './get-addresses'
 import addItem from './add-item'
diff --git a/framework/ordercloud/api/endpoints/customer/address/remove-item.ts b/packages/ordercloud/src/api/endpoints/customer/address/remove-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/address/remove-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/address/remove-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/address/update-item.ts b/packages/ordercloud/src/api/endpoints/customer/address/update-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/address/update-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/address/update-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/card/add-item.ts b/packages/ordercloud/src/api/endpoints/customer/card/add-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/card/add-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/card/add-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/card/get-cards.ts b/packages/ordercloud/src/api/endpoints/customer/card/get-cards.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/card/get-cards.ts
rename to packages/ordercloud/src/api/endpoints/customer/card/get-cards.ts
diff --git a/framework/ordercloud/api/endpoints/customer/card/index.ts b/packages/ordercloud/src/api/endpoints/customer/card/index.ts
similarity index 81%
rename from framework/ordercloud/api/endpoints/customer/card/index.ts
rename to packages/ordercloud/src/api/endpoints/customer/card/index.ts
index 672939a8b..7116e3cb5 100644
--- a/framework/ordercloud/api/endpoints/customer/card/index.ts
+++ b/packages/ordercloud/src/api/endpoints/customer/card/index.ts
@@ -1,8 +1,8 @@
 import type { CustomerCardSchema } from '../../../../types/customer/card'
 import type { OrdercloudAPI } from '../../..'
 
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import customerCardEndpoint from '@commerce/api/endpoints/customer/card'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import customerCardEndpoint from '@vercel/commerce/api/endpoints/customer/card'
 
 import getCards from './get-cards'
 import addItem from './add-item'
diff --git a/framework/ordercloud/api/endpoints/customer/card/remove-item.ts b/packages/ordercloud/src/api/endpoints/customer/card/remove-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/card/remove-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/card/remove-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/card/update-item.ts b/packages/ordercloud/src/api/endpoints/customer/card/update-item.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/card/update-item.ts
rename to packages/ordercloud/src/api/endpoints/customer/card/update-item.ts
diff --git a/framework/ordercloud/api/endpoints/customer/index.ts b/packages/ordercloud/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/customer/index.ts
rename to packages/ordercloud/src/api/endpoints/customer/index.ts
diff --git a/framework/ordercloud/api/endpoints/login/index.ts b/packages/ordercloud/src/api/endpoints/login/index.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/login/index.ts
rename to packages/ordercloud/src/api/endpoints/login/index.ts
diff --git a/framework/ordercloud/api/endpoints/logout/index.ts b/packages/ordercloud/src/api/endpoints/logout/index.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/logout/index.ts
rename to packages/ordercloud/src/api/endpoints/logout/index.ts
diff --git a/framework/ordercloud/api/endpoints/signup/index.ts b/packages/ordercloud/src/api/endpoints/signup/index.ts
similarity index 100%
rename from framework/ordercloud/api/endpoints/signup/index.ts
rename to packages/ordercloud/src/api/endpoints/signup/index.ts
diff --git a/framework/ordercloud/api/endpoints/wishlist/index.tsx b/packages/ordercloud/src/api/endpoints/wishlist/index.tsx
similarity index 100%
rename from framework/ordercloud/api/endpoints/wishlist/index.tsx
rename to packages/ordercloud/src/api/endpoints/wishlist/index.tsx
diff --git a/framework/ordercloud/api/index.ts b/packages/ordercloud/src/api/index.ts
similarity index 92%
rename from framework/ordercloud/api/index.ts
rename to packages/ordercloud/src/api/index.ts
index df62843ab..d1a809eca 100644
--- a/framework/ordercloud/api/index.ts
+++ b/packages/ordercloud/src/api/index.ts
@@ -1,5 +1,5 @@
-import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
-import { getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
+import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
 import { createBuyerFetcher, createMiddlewareFetcher } from './utils/fetch-rest'
 import createGraphqlFetcher from './utils/fetch-graphql'
 
diff --git a/framework/ordercloud/api/operations/get-all-pages.ts b/packages/ordercloud/src/api/operations/get-all-pages.ts
similarity index 87%
rename from framework/ordercloud/api/operations/get-all-pages.ts
rename to packages/ordercloud/src/api/operations/get-all-pages.ts
index 1727532e2..2720e5244 100644
--- a/framework/ordercloud/api/operations/get-all-pages.ts
+++ b/packages/ordercloud/src/api/operations/get-all-pages.ts
@@ -1,6 +1,6 @@
 import type { OrdercloudConfig } from '../'
 
-import { GetAllPagesOperation } from '@commerce/types/page'
+import { GetAllPagesOperation } from '@vercel/commerce/types/page'
 
 export type Page = { url: string }
 export type GetAllPagesResult = { pages: Page[] }
diff --git a/framework/ordercloud/api/operations/get-all-product-paths.ts b/packages/ordercloud/src/api/operations/get-all-product-paths.ts
similarity index 85%
rename from framework/ordercloud/api/operations/get-all-product-paths.ts
rename to packages/ordercloud/src/api/operations/get-all-product-paths.ts
index 1ac23c033..8a79bee1e 100644
--- a/framework/ordercloud/api/operations/get-all-product-paths.ts
+++ b/packages/ordercloud/src/api/operations/get-all-product-paths.ts
@@ -1,5 +1,5 @@
-import type { OperationContext } from '@commerce/api/operations'
-import type { GetAllProductPathsOperation } from '@commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import type { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
 
 import type { RawProduct } from '../../types/product'
 import type { OrdercloudConfig, Provider } from '../'
diff --git a/framework/ordercloud/api/operations/get-all-products.ts b/packages/ordercloud/src/api/operations/get-all-products.ts
similarity index 86%
rename from framework/ordercloud/api/operations/get-all-products.ts
rename to packages/ordercloud/src/api/operations/get-all-products.ts
index 6af24d945..5b4861f8d 100644
--- a/framework/ordercloud/api/operations/get-all-products.ts
+++ b/packages/ordercloud/src/api/operations/get-all-products.ts
@@ -1,5 +1,5 @@
-import type { GetAllProductsOperation } from '@commerce/types/product'
-import type { OperationContext } from '@commerce/api/operations'
+import type { GetAllProductsOperation } from '@vercel/commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 
 import type { RawProduct } from '../../types/product'
 import type { OrdercloudConfig, Provider } from '../index'
diff --git a/framework/ordercloud/api/operations/get-page.ts b/packages/ordercloud/src/api/operations/get-page.ts
similarity index 82%
rename from framework/ordercloud/api/operations/get-page.ts
rename to packages/ordercloud/src/api/operations/get-page.ts
index 529f130e2..e403d1660 100644
--- a/framework/ordercloud/api/operations/get-page.ts
+++ b/packages/ordercloud/src/api/operations/get-page.ts
@@ -1,4 +1,4 @@
-import { GetPageOperation } from '@commerce/types/page'
+import { GetPageOperation } from '@vercel/commerce/types/page'
 
 export type Page = any
 export type GetPageResult = { page?: Page }
diff --git a/framework/ordercloud/api/operations/get-product.ts b/packages/ordercloud/src/api/operations/get-product.ts
similarity index 91%
rename from framework/ordercloud/api/operations/get-product.ts
rename to packages/ordercloud/src/api/operations/get-product.ts
index 864f931d4..b63b86c23 100644
--- a/framework/ordercloud/api/operations/get-product.ts
+++ b/packages/ordercloud/src/api/operations/get-product.ts
@@ -1,5 +1,5 @@
-import type { OperationContext } from '@commerce/api/operations'
-import type { GetProductOperation } from '@commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import type { GetProductOperation } from '@vercel/commerce/types/product'
 
 import type { RawProduct, RawSpec, RawVariant } from '../../types/product'
 import type { OrdercloudConfig, Provider } from '../index'
diff --git a/framework/ordercloud/api/operations/get-site-info.ts b/packages/ordercloud/src/api/operations/get-site-info.ts
similarity index 87%
rename from framework/ordercloud/api/operations/get-site-info.ts
rename to packages/ordercloud/src/api/operations/get-site-info.ts
index 95188c58e..ec0ed5dd3 100644
--- a/framework/ordercloud/api/operations/get-site-info.ts
+++ b/packages/ordercloud/src/api/operations/get-site-info.ts
@@ -1,5 +1,5 @@
-import type { OperationContext } from '@commerce/api/operations'
-import type { Category, GetSiteInfoOperation } from '@commerce/types/site'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import type { Category, GetSiteInfoOperation } from '@vercel/commerce/types/site'
 
 import type { RawCategory } from '../../types/category'
 import type { OrdercloudConfig, Provider } from '../index'
diff --git a/framework/ordercloud/api/operations/index.ts b/packages/ordercloud/src/api/operations/index.ts
similarity index 100%
rename from framework/ordercloud/api/operations/index.ts
rename to packages/ordercloud/src/api/operations/index.ts
diff --git a/framework/ordercloud/api/utils/cart.ts b/packages/ordercloud/src/api/utils/cart.ts
similarity index 100%
rename from framework/ordercloud/api/utils/cart.ts
rename to packages/ordercloud/src/api/utils/cart.ts
diff --git a/framework/ordercloud/api/utils/fetch-graphql.ts b/packages/ordercloud/src/api/utils/fetch-graphql.ts
similarity index 71%
rename from framework/ordercloud/api/utils/fetch-graphql.ts
rename to packages/ordercloud/src/api/utils/fetch-graphql.ts
index af72a337c..3c1058deb 100644
--- a/framework/ordercloud/api/utils/fetch-graphql.ts
+++ b/packages/ordercloud/src/api/utils/fetch-graphql.ts
@@ -1,7 +1,7 @@
-import type { GraphQLFetcher } from '@commerce/api'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import type { OrdercloudConfig } from '../'
 
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 const fetchGraphqlApi: (getConfig: () => OrdercloudConfig) => GraphQLFetcher =
   () => async () => {
diff --git a/framework/ordercloud/api/utils/fetch-rest.ts b/packages/ordercloud/src/api/utils/fetch-rest.ts
similarity index 98%
rename from framework/ordercloud/api/utils/fetch-rest.ts
rename to packages/ordercloud/src/api/utils/fetch-rest.ts
index 61461f72b..5b70b9dff 100644
--- a/framework/ordercloud/api/utils/fetch-rest.ts
+++ b/packages/ordercloud/src/api/utils/fetch-rest.ts
@@ -1,5 +1,5 @@
 import vercelFetch from '@vercel/fetch'
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import { CustomNodeJsGlobal } from '../../types/node';
 
 import { OrdercloudConfig } from '../index'
diff --git a/framework/ordercloud/auth/index.ts b/packages/ordercloud/src/auth/index.ts
similarity index 100%
rename from framework/ordercloud/auth/index.ts
rename to packages/ordercloud/src/auth/index.ts
diff --git a/framework/ordercloud/auth/use-login.tsx b/packages/ordercloud/src/auth/use-login.tsx
similarity index 65%
rename from framework/ordercloud/auth/use-login.tsx
rename to packages/ordercloud/src/auth/use-login.tsx
index 28351dc7f..20e3ed229 100644
--- a/framework/ordercloud/auth/use-login.tsx
+++ b/packages/ordercloud/src/auth/use-login.tsx
@@ -1,5 +1,5 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 
 export default useLogin as UseLogin<typeof handler>
 
diff --git a/framework/ordercloud/auth/use-logout.tsx b/packages/ordercloud/src/auth/use-logout.tsx
similarity index 64%
rename from framework/ordercloud/auth/use-logout.tsx
rename to packages/ordercloud/src/auth/use-logout.tsx
index 9b3fc3e44..4e74908f3 100644
--- a/framework/ordercloud/auth/use-logout.tsx
+++ b/packages/ordercloud/src/auth/use-logout.tsx
@@ -1,5 +1,5 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 
 export default useLogout as UseLogout<typeof handler>
 
diff --git a/framework/local/auth/use-signup.tsx b/packages/ordercloud/src/auth/use-signup.tsx
similarity index 70%
rename from framework/local/auth/use-signup.tsx
rename to packages/ordercloud/src/auth/use-signup.tsx
index e9ad13458..e48811403 100644
--- a/framework/local/auth/use-signup.tsx
+++ b/packages/ordercloud/src/auth/use-signup.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
 import useCustomer from '../customer/use-customer'
-import { MutationHook } from '@commerce/utils/types'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 
 export default useSignup as UseSignup<typeof handler>
 
diff --git a/framework/ordercloud/cart/index.ts b/packages/ordercloud/src/cart/index.ts
similarity index 100%
rename from framework/ordercloud/cart/index.ts
rename to packages/ordercloud/src/cart/index.ts
diff --git a/framework/ordercloud/cart/use-add-item.tsx b/packages/ordercloud/src/cart/use-add-item.tsx
similarity index 77%
rename from framework/ordercloud/cart/use-add-item.tsx
rename to packages/ordercloud/src/cart/use-add-item.tsx
index 4699202c3..c9d315301 100644
--- a/framework/ordercloud/cart/use-add-item.tsx
+++ b/packages/ordercloud/src/cart/use-add-item.tsx
@@ -1,9 +1,9 @@
-import type { AddItemHook } from '@commerce/types/cart'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 import { useCallback } from 'react'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
 import useCart from './use-cart'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/ordercloud/cart/use-cart.tsx b/packages/ordercloud/src/cart/use-cart.tsx
similarity index 78%
rename from framework/ordercloud/cart/use-cart.tsx
rename to packages/ordercloud/src/cart/use-cart.tsx
index d194f4097..01c3a1cab 100644
--- a/framework/ordercloud/cart/use-cart.tsx
+++ b/packages/ordercloud/src/cart/use-cart.tsx
@@ -1,8 +1,8 @@
-import type { GetCartHook } from '@commerce/types/cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 
 export default useCart as UseCart<typeof handler>
 
diff --git a/framework/ordercloud/cart/use-remove-item.tsx b/packages/ordercloud/src/cart/use-remove-item.tsx
similarity index 84%
rename from framework/ordercloud/cart/use-remove-item.tsx
rename to packages/ordercloud/src/cart/use-remove-item.tsx
index 748ba963d..fba15f8d5 100644
--- a/framework/ordercloud/cart/use-remove-item.tsx
+++ b/packages/ordercloud/src/cart/use-remove-item.tsx
@@ -1,13 +1,13 @@
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import type { Cart, LineItem, RemoveItemHook } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import type { Cart, LineItem, RemoveItemHook } from '@vercel/commerce/types/cart'
 
 import { useCallback } from 'react'
 
-import { ValidationError } from '@commerce/utils/errors'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
 
 import useCart from './use-cart'
 
diff --git a/framework/ordercloud/cart/use-update-item.tsx b/packages/ordercloud/src/cart/use-update-item.tsx
similarity index 87%
rename from framework/ordercloud/cart/use-update-item.tsx
rename to packages/ordercloud/src/cart/use-update-item.tsx
index cc9d93b03..7a5f6fcf7 100644
--- a/framework/ordercloud/cart/use-update-item.tsx
+++ b/packages/ordercloud/src/cart/use-update-item.tsx
@@ -1,15 +1,15 @@
 import type {
   HookFetcherContext,
   MutationHookContext,
-} from '@commerce/utils/types'
-import type { UpdateItemHook, LineItem } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import type { UpdateItemHook, LineItem } from '@vercel/commerce/types/cart'
 
 import { useCallback } from 'react'
 import debounce from 'lodash.debounce'
 
-import { MutationHook } from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
 
 import { handler as removeItemHandler } from './use-remove-item'
 import useCart from './use-cart'
diff --git a/framework/ordercloud/checkout/index.ts b/packages/ordercloud/src/checkout/index.ts
similarity index 100%
rename from framework/ordercloud/checkout/index.ts
rename to packages/ordercloud/src/checkout/index.ts
diff --git a/framework/ordercloud/checkout/use-checkout.tsx b/packages/ordercloud/src/checkout/use-checkout.tsx
similarity index 81%
rename from framework/ordercloud/checkout/use-checkout.tsx
rename to packages/ordercloud/src/checkout/use-checkout.tsx
index f9892bbc1..f60ebfdd9 100644
--- a/framework/ordercloud/checkout/use-checkout.tsx
+++ b/packages/ordercloud/src/checkout/use-checkout.tsx
@@ -1,8 +1,8 @@
-import type { GetCheckoutHook } from '@commerce/types/checkout'
+import type { GetCheckoutHook } from '@vercel/commerce/types/checkout'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
 import useSubmitCheckout from './use-submit-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
diff --git a/framework/ordercloud/checkout/use-submit-checkout.tsx b/packages/ordercloud/src/checkout/use-submit-checkout.tsx
similarity index 75%
rename from framework/ordercloud/checkout/use-submit-checkout.tsx
rename to packages/ordercloud/src/checkout/use-submit-checkout.tsx
index 91d734208..79c438499 100644
--- a/framework/ordercloud/checkout/use-submit-checkout.tsx
+++ b/packages/ordercloud/src/checkout/use-submit-checkout.tsx
@@ -1,10 +1,10 @@
-import type { SubmitCheckoutHook } from '@commerce/types/checkout'
-import type { MutationHook } from '@commerce/utils/types'
+import type { SubmitCheckoutHook } from '@vercel/commerce/types/checkout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 import { useCallback } from 'react'
 import useSubmitCheckout, {
   UseSubmitCheckout,
-} from '@commerce/checkout/use-submit-checkout'
+} from '@vercel/commerce/checkout/use-submit-checkout'
 
 export default useSubmitCheckout as UseSubmitCheckout<typeof handler>
 
@@ -14,7 +14,7 @@ export const handler: MutationHook<SubmitCheckoutHook> = {
     method: 'POST',
   },
   async fetcher({ input: item, options, fetch }) {
-    // @TODO: Make form validations in here, import generic error like import { CommerceError } from '@commerce/utils/errors'
+    // @TODO: Make form validations in here, import generic error like import { CommerceError } from '@vercel/commerce/utils/errors'
     // Get payment and delivery information in here
 
     const data = await fetch({
diff --git a/framework/ordercloud/commerce.config.json b/packages/ordercloud/src/commerce.config.json
similarity index 100%
rename from framework/ordercloud/commerce.config.json
rename to packages/ordercloud/src/commerce.config.json
diff --git a/framework/ordercloud/constants.ts b/packages/ordercloud/src/constants.ts
similarity index 100%
rename from framework/ordercloud/constants.ts
rename to packages/ordercloud/src/constants.ts
diff --git a/framework/ordercloud/customer/address/index.ts b/packages/ordercloud/src/customer/address/index.ts
similarity index 100%
rename from framework/ordercloud/customer/address/index.ts
rename to packages/ordercloud/src/customer/address/index.ts
diff --git a/framework/ordercloud/customer/address/use-add-item.tsx b/packages/ordercloud/src/customer/address/use-add-item.tsx
similarity index 76%
rename from framework/ordercloud/customer/address/use-add-item.tsx
rename to packages/ordercloud/src/customer/address/use-add-item.tsx
index cf3f22c46..798f5fe22 100644
--- a/framework/ordercloud/customer/address/use-add-item.tsx
+++ b/packages/ordercloud/src/customer/address/use-add-item.tsx
@@ -1,8 +1,8 @@
-import type { AddItemHook } from '@commerce/types/customer/address'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/customer/address'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 import { useCallback } from 'react'
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
 import useAddresses from './use-addresses'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/ordercloud/customer/address/use-addresses.tsx b/packages/ordercloud/src/customer/address/use-addresses.tsx
similarity index 79%
rename from framework/ordercloud/customer/address/use-addresses.tsx
rename to packages/ordercloud/src/customer/address/use-addresses.tsx
index e9ddc7001..fd6807a25 100644
--- a/framework/ordercloud/customer/address/use-addresses.tsx
+++ b/packages/ordercloud/src/customer/address/use-addresses.tsx
@@ -1,10 +1,10 @@
-import type { GetAddressesHook } from '@commerce/types/customer/address'
+import type { GetAddressesHook } from '@vercel/commerce/types/customer/address'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import useAddresses, {
   UseAddresses,
-} from '@commerce/customer/address/use-addresses'
+} from '@vercel/commerce/customer/address/use-addresses'
 
 export default useAddresses as UseAddresses<typeof handler>
 
diff --git a/framework/ordercloud/customer/address/use-remove-item.tsx b/packages/ordercloud/src/customer/address/use-remove-item.tsx
similarity index 86%
rename from framework/ordercloud/customer/address/use-remove-item.tsx
rename to packages/ordercloud/src/customer/address/use-remove-item.tsx
index 4e6282c99..ac805dbc5 100644
--- a/framework/ordercloud/customer/address/use-remove-item.tsx
+++ b/packages/ordercloud/src/customer/address/use-remove-item.tsx
@@ -1,15 +1,15 @@
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import type { Address, RemoveItemHook } from '@commerce/types/customer/address'
+} from '@vercel/commerce/utils/types'
+import type { Address, RemoveItemHook } from '@vercel/commerce/types/customer/address'
 
 import { useCallback } from 'react'
 
-import { ValidationError } from '@commerce/utils/errors'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import useRemoveItem, {
   UseRemoveItem,
-} from '@commerce/customer/address/use-remove-item'
+} from '@vercel/commerce/customer/address/use-remove-item'
 
 import useAddresses from './use-addresses'
 
diff --git a/framework/ordercloud/customer/address/use-update-item.tsx b/packages/ordercloud/src/customer/address/use-update-item.tsx
similarity index 81%
rename from framework/ordercloud/customer/address/use-update-item.tsx
rename to packages/ordercloud/src/customer/address/use-update-item.tsx
index 720a339d8..d65956b7b 100644
--- a/framework/ordercloud/customer/address/use-update-item.tsx
+++ b/packages/ordercloud/src/customer/address/use-update-item.tsx
@@ -1,15 +1,15 @@
 import type {
   HookFetcherContext,
   MutationHookContext,
-} from '@commerce/utils/types'
-import type { UpdateItemHook, Address } from '@commerce/types/customer/address'
+} from '@vercel/commerce/utils/types'
+import type { UpdateItemHook, Address } from '@vercel/commerce/types/customer/address'
 
 import { useCallback } from 'react'
 
-import { MutationHook } from '@commerce/utils/types'
+import { MutationHook } from '@vercel/commerce/utils/types'
 import useUpdateItem, {
   UseUpdateItem,
-} from '@commerce/customer/address/use-update-item'
+} from '@vercel/commerce/customer/address/use-update-item'
 
 import useAddresses from './use-addresses'
 
diff --git a/framework/ordercloud/customer/card/index.ts b/packages/ordercloud/src/customer/card/index.ts
similarity index 100%
rename from framework/ordercloud/customer/card/index.ts
rename to packages/ordercloud/src/customer/card/index.ts
diff --git a/framework/ordercloud/customer/card/use-add-item.tsx b/packages/ordercloud/src/customer/card/use-add-item.tsx
similarity index 76%
rename from framework/ordercloud/customer/card/use-add-item.tsx
rename to packages/ordercloud/src/customer/card/use-add-item.tsx
index 6c6a6d7fd..8e7d27885 100644
--- a/framework/ordercloud/customer/card/use-add-item.tsx
+++ b/packages/ordercloud/src/customer/card/use-add-item.tsx
@@ -1,8 +1,8 @@
-import type { AddItemHook } from '@commerce/types/customer/card'
-import type { MutationHook } from '@commerce/utils/types'
+import type { AddItemHook } from '@vercel/commerce/types/customer/card'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 import { useCallback } from 'react'
-import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
 import useCards from './use-cards'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/ordercloud/customer/card/use-cards.tsx b/packages/ordercloud/src/customer/card/use-cards.tsx
similarity index 76%
rename from framework/ordercloud/customer/card/use-cards.tsx
rename to packages/ordercloud/src/customer/card/use-cards.tsx
index 92236deb2..6438543e1 100644
--- a/framework/ordercloud/customer/card/use-cards.tsx
+++ b/packages/ordercloud/src/customer/card/use-cards.tsx
@@ -1,8 +1,8 @@
-import type { GetCardsHook } from '@commerce/types/customer/card'
+import type { GetCardsHook } from '@vercel/commerce/types/customer/card'
 
 import { useMemo } from 'react'
-import { SWRHook } from '@commerce/utils/types'
-import useCard, { UseCards } from '@commerce/customer/card/use-cards'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCard, { UseCards } from '@vercel/commerce/customer/card/use-cards'
 
 export default useCard as UseCards<typeof handler>
 
diff --git a/framework/ordercloud/customer/card/use-remove-item.tsx b/packages/ordercloud/src/customer/card/use-remove-item.tsx
similarity index 86%
rename from framework/ordercloud/customer/card/use-remove-item.tsx
rename to packages/ordercloud/src/customer/card/use-remove-item.tsx
index dc0781b95..23979bf3f 100644
--- a/framework/ordercloud/customer/card/use-remove-item.tsx
+++ b/packages/ordercloud/src/customer/card/use-remove-item.tsx
@@ -1,15 +1,15 @@
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import type { Card, RemoveItemHook } from '@commerce/types/customer/card'
+} from '@vercel/commerce/utils/types'
+import type { Card, RemoveItemHook } from '@vercel/commerce/types/customer/card'
 
 import { useCallback } from 'react'
 
-import { ValidationError } from '@commerce/utils/errors'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import useRemoveItem, {
   UseRemoveItem,
-} from '@commerce/customer/card/use-remove-item'
+} from '@vercel/commerce/customer/card/use-remove-item'
 
 import useCards from './use-cards'
 
diff --git a/framework/ordercloud/customer/card/use-update-item.tsx b/packages/ordercloud/src/customer/card/use-update-item.tsx
similarity index 81%
rename from framework/ordercloud/customer/card/use-update-item.tsx
rename to packages/ordercloud/src/customer/card/use-update-item.tsx
index 0dfb218d5..faa900744 100644
--- a/framework/ordercloud/customer/card/use-update-item.tsx
+++ b/packages/ordercloud/src/customer/card/use-update-item.tsx
@@ -1,15 +1,15 @@
 import type {
   HookFetcherContext,
   MutationHookContext,
-} from '@commerce/utils/types'
-import type { UpdateItemHook, Card } from '@commerce/types/customer/card'
+} from '@vercel/commerce/utils/types'
+import type { UpdateItemHook, Card } from '@vercel/commerce/types/customer/card'
 
 import { useCallback } from 'react'
 
-import { MutationHook } from '@commerce/utils/types'
+import { MutationHook } from '@vercel/commerce/utils/types'
 import useUpdateItem, {
   UseUpdateItem,
-} from '@commerce/customer/card/use-update-item'
+} from '@vercel/commerce/customer/card/use-update-item'
 
 import useCards from './use-cards'
 
diff --git a/framework/ordercloud/customer/index.ts b/packages/ordercloud/src/customer/index.ts
similarity index 100%
rename from framework/ordercloud/customer/index.ts
rename to packages/ordercloud/src/customer/index.ts
diff --git a/framework/ordercloud/customer/use-customer.tsx b/packages/ordercloud/src/customer/use-customer.tsx
similarity index 66%
rename from framework/ordercloud/customer/use-customer.tsx
rename to packages/ordercloud/src/customer/use-customer.tsx
index 41757cd0d..6eaede14f 100644
--- a/framework/ordercloud/customer/use-customer.tsx
+++ b/packages/ordercloud/src/customer/use-customer.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
 
 export default useCustomer as UseCustomer<typeof handler>
 export const handler: SWRHook<any> = {
diff --git a/framework/ordercloud/fetcher.ts b/packages/ordercloud/src/fetcher.ts
similarity index 87%
rename from framework/ordercloud/fetcher.ts
rename to packages/ordercloud/src/fetcher.ts
index 6f314a71e..1da35718e 100644
--- a/framework/ordercloud/fetcher.ts
+++ b/packages/ordercloud/src/fetcher.ts
@@ -1,4 +1,4 @@
-import { Fetcher } from '@commerce/utils/types'
+import { Fetcher } from '@vercel/commerce/utils/types'
 
 const clientFetcher: Fetcher = async ({ method, url, body }) => {
   const response = await fetch(url!, {
diff --git a/framework/ordercloud/index.tsx b/packages/ordercloud/src/index.tsx
similarity index 93%
rename from framework/ordercloud/index.tsx
rename to packages/ordercloud/src/index.tsx
index 6a01c2ee4..b282942e8 100644
--- a/framework/ordercloud/index.tsx
+++ b/packages/ordercloud/src/index.tsx
@@ -1,5 +1,5 @@
 import { ordercloudProvider, OrdercloudProvider } from './provider'
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
 
 export { ordercloudProvider }
 export type { OrdercloudProvider }
diff --git a/framework/ordercloud/next.config.js b/packages/ordercloud/src/next.config.cjs
similarity index 100%
rename from framework/ordercloud/next.config.js
rename to packages/ordercloud/src/next.config.cjs
diff --git a/framework/ordercloud/product/index.ts b/packages/ordercloud/src/product/index.ts
similarity index 100%
rename from framework/ordercloud/product/index.ts
rename to packages/ordercloud/src/product/index.ts
diff --git a/packages/ordercloud/src/product/use-price.tsx b/packages/ordercloud/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/ordercloud/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/ordercloud/product/use-search.tsx b/packages/ordercloud/src/product/use-search.tsx
similarity index 84%
rename from framework/ordercloud/product/use-search.tsx
rename to packages/ordercloud/src/product/use-search.tsx
index 390e84ba1..0cb54e92c 100644
--- a/framework/ordercloud/product/use-search.tsx
+++ b/packages/ordercloud/src/product/use-search.tsx
@@ -1,6 +1,6 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
-import { SearchProductsHook } from '@commerce/types/product'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
+import { SearchProductsHook } from '@vercel/commerce/types/product'
 export default useSearch as UseSearch<typeof handler>
 
 export const handler: SWRHook<SearchProductsHook> = {
diff --git a/framework/ordercloud/provider.ts b/packages/ordercloud/src/provider.ts
similarity index 100%
rename from framework/ordercloud/provider.ts
rename to packages/ordercloud/src/provider.ts
diff --git a/framework/ordercloud/types/cart.ts b/packages/ordercloud/src/types/cart.ts
similarity index 96%
rename from framework/ordercloud/types/cart.ts
rename to packages/ordercloud/src/types/cart.ts
index 4716c355d..389a5a666 100644
--- a/framework/ordercloud/types/cart.ts
+++ b/packages/ordercloud/src/types/cart.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/cart'
+import * as Core from '@vercel/commerce/types/cart'
 
-export * from '@commerce/types/cart'
+export * from '@vercel/commerce/types/cart'
 
 export interface OrdercloudCart {
   ID: string
diff --git a/framework/ordercloud/types/category.ts b/packages/ordercloud/src/types/category.ts
similarity index 100%
rename from framework/ordercloud/types/category.ts
rename to packages/ordercloud/src/types/category.ts
diff --git a/framework/ordercloud/types/checkout.ts b/packages/ordercloud/src/types/checkout.ts
similarity index 66%
rename from framework/ordercloud/types/checkout.ts
rename to packages/ordercloud/src/types/checkout.ts
index 17cbf43de..976d78e7a 100644
--- a/framework/ordercloud/types/checkout.ts
+++ b/packages/ordercloud/src/types/checkout.ts
@@ -1,4 +1,4 @@
-import * as Core from '@commerce/types/checkout'
+import * as Core from '@vercel/commerce/types/checkout'
 
 export type CheckoutTypes = Core.CheckoutTypes
 export type CheckoutSchema = Core.CheckoutSchema<CheckoutTypes>
diff --git a/framework/ordercloud/types/customer/address.ts b/packages/ordercloud/src/types/customer/address.ts
similarity index 91%
rename from framework/ordercloud/types/customer/address.ts
rename to packages/ordercloud/src/types/customer/address.ts
index 9c7f4bd33..3576b676c 100644
--- a/framework/ordercloud/types/customer/address.ts
+++ b/packages/ordercloud/src/types/customer/address.ts
@@ -1,4 +1,4 @@
-import * as Core from '@commerce/types/customer/address'
+import * as Core from '@vercel/commerce/types/customer/address'
 
 export type CustomerAddressTypes = Core.CustomerAddressTypes
 export type CustomerAddressSchema =
diff --git a/framework/ordercloud/types/customer/card.ts b/packages/ordercloud/src/types/customer/card.ts
similarity index 85%
rename from framework/ordercloud/types/customer/card.ts
rename to packages/ordercloud/src/types/customer/card.ts
index 6bf575332..293d5041a 100644
--- a/framework/ordercloud/types/customer/card.ts
+++ b/packages/ordercloud/src/types/customer/card.ts
@@ -1,4 +1,4 @@
-import * as Core from '@commerce/types/customer/card'
+import * as Core from '@vercel/commerce/types/customer/card'
 
 export type CustomerCardTypes = Core.CustomerCardTypes
 export type CustomerCardSchema = Core.CustomerCardSchema<CustomerCardTypes>
diff --git a/framework/ordercloud/types/node.d.ts b/packages/ordercloud/src/types/node.d.ts
similarity index 100%
rename from framework/ordercloud/types/node.d.ts
rename to packages/ordercloud/src/types/node.d.ts
diff --git a/framework/ordercloud/types/product.ts b/packages/ordercloud/src/types/product.ts
similarity index 100%
rename from framework/ordercloud/types/product.ts
rename to packages/ordercloud/src/types/product.ts
diff --git a/framework/ordercloud/utils/product.ts b/packages/ordercloud/src/utils/product.ts
similarity index 95%
rename from framework/ordercloud/utils/product.ts
rename to packages/ordercloud/src/utils/product.ts
index ee334f175..6da3bf86b 100644
--- a/framework/ordercloud/utils/product.ts
+++ b/packages/ordercloud/src/utils/product.ts
@@ -1,4 +1,4 @@
-import type { Product } from '@commerce/types/product'
+import type { Product } from '@vercel/commerce/types/product'
 
 import type { RawProduct } from '../types/product'
 
diff --git a/framework/ordercloud/wishlist/use-add-item.tsx b/packages/ordercloud/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/ordercloud/wishlist/use-add-item.tsx
rename to packages/ordercloud/src/wishlist/use-add-item.tsx
diff --git a/framework/ordercloud/wishlist/use-remove-item.tsx b/packages/ordercloud/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/ordercloud/wishlist/use-remove-item.tsx
rename to packages/ordercloud/src/wishlist/use-remove-item.tsx
diff --git a/framework/local/wishlist/use-wishlist.tsx b/packages/ordercloud/src/wishlist/use-wishlist.tsx
similarity index 86%
rename from framework/local/wishlist/use-wishlist.tsx
rename to packages/ordercloud/src/wishlist/use-wishlist.tsx
index 9fe0e758f..b2785d46f 100644
--- a/framework/local/wishlist/use-wishlist.tsx
+++ b/packages/ordercloud/src/wishlist/use-wishlist.tsx
@@ -1,5 +1,5 @@
-import { HookFetcher } from '@commerce/utils/types'
-import type { Product } from '@commerce/types/product'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import type { Product } from '@vercel/commerce/types/product'
 
 const defaultOpts = {}
 
diff --git a/packages/ordercloud/tsconfig.json b/packages/ordercloud/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/ordercloud/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/saleor/.env.template b/packages/saleor/.env.template
similarity index 100%
rename from framework/saleor/.env.template
rename to packages/saleor/.env.template
diff --git a/packages/saleor/.prettierignore b/packages/saleor/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/saleor/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/saleor/.prettierrc b/packages/saleor/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/saleor/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/saleor/README.md b/packages/saleor/README.md
similarity index 93%
rename from framework/saleor/README.md
rename to packages/saleor/README.md
index dba25a243..277639622 100644
--- a/framework/saleor/README.md
+++ b/packages/saleor/README.md
@@ -9,7 +9,7 @@ This provider requires Saleor **3.x** or higher.
 Copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git):
 
 ```bash
-cp framework/saleor/.env.template .env.local
+cp packages/saleor/.env.template .env.local
 ```
 
 Then, set the environment following variables in your `.env.local`. Both, `NEXT_PUBLIC_SALEOR_API_URL` and `COMMERCE_IMAGE_HOST` must point to your own Saleor instance.
diff --git a/codegen.json b/packages/saleor/codegen.json
similarity index 59%
rename from codegen.json
rename to packages/saleor/codegen.json
index d9a5c09ce..abbbbf142 100644
--- a/codegen.json
+++ b/packages/saleor/codegen.json
@@ -4,26 +4,26 @@
   },
   "documents": [
     {
-      "./framework/saleor/utils/queries/get-all-products-query.ts": {
+      "./src/utils/queries/get-all-products-query.ts": {
         "noRequire": true
       }
     },
     {
-      "./framework/saleor/utils/queries/get-all-products-paths-query.ts": {
+      "./src/utils/queries/get-all-products-paths-query.ts": {
         "noRequire": true
       }
     },
     {
-      "./framework/saleor/utils/queries/get-products.ts": {
+      "./src/utils/queries/get-products.ts": {
         "noRequire": true
       }
     }
   ],
   "generates": {
-    "./framework/saleor/schema.d.ts": {
+    "./schema.d.ts": {
       "plugins": ["typescript", "typescript-operations"]
     },
-    "./framework/saleor/schema.graphql": {
+    "./schema.graphql": {
       "plugins": ["schema-ast"]
     }
   },
diff --git a/packages/saleor/package.json b/packages/saleor/package.json
new file mode 100644
index 000000000..6a7118149
--- /dev/null
+++ b/packages/saleor/package.json
@@ -0,0 +1,78 @@
+{
+  "name": "@vercel/commerce-saleor",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write .",
+    "generate": "graphql-codegen"
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist",
+    "schema.d.ts"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@graphql-codegen/cli": "^2.3.1",
+    "@graphql-codegen/schema-ast": "^2.4.1",
+    "@graphql-codegen/typescript": "^2.4.2",
+    "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/saleor/schema.d.ts b/packages/saleor/schema.d.ts
similarity index 100%
rename from framework/saleor/schema.d.ts
rename to packages/saleor/schema.d.ts
diff --git a/framework/saleor/schema.graphql b/packages/saleor/schema.graphql
similarity index 100%
rename from framework/saleor/schema.graphql
rename to packages/saleor/schema.graphql
diff --git a/framework/saleor/api/cart.ts b/packages/saleor/src/api/cart.ts
similarity index 100%
rename from framework/saleor/api/cart.ts
rename to packages/saleor/src/api/cart.ts
diff --git a/framework/saleor/api/catalog/products.ts b/packages/saleor/src/api/catalog/products.ts
similarity index 100%
rename from framework/saleor/api/catalog/products.ts
rename to packages/saleor/src/api/catalog/products.ts
diff --git a/framework/saleor/api/checkout.ts b/packages/saleor/src/api/checkout.ts
similarity index 100%
rename from framework/saleor/api/checkout.ts
rename to packages/saleor/src/api/checkout.ts
diff --git a/framework/saleor/api/customers/index.ts b/packages/saleor/src/api/customers/index.ts
similarity index 100%
rename from framework/saleor/api/customers/index.ts
rename to packages/saleor/src/api/customers/index.ts
diff --git a/framework/saleor/api/customers/login.ts b/packages/saleor/src/api/customers/login.ts
similarity index 100%
rename from framework/saleor/api/customers/login.ts
rename to packages/saleor/src/api/customers/login.ts
diff --git a/framework/saleor/api/customers/logout.ts b/packages/saleor/src/api/customers/logout.ts
similarity index 100%
rename from framework/saleor/api/customers/logout.ts
rename to packages/saleor/src/api/customers/logout.ts
diff --git a/framework/saleor/api/customers/signup.ts b/packages/saleor/src/api/customers/signup.ts
similarity index 100%
rename from framework/saleor/api/customers/signup.ts
rename to packages/saleor/src/api/customers/signup.ts
diff --git a/framework/saleor/api/endpoints/cart.ts b/packages/saleor/src/api/endpoints/cart.ts
similarity index 100%
rename from framework/saleor/api/endpoints/cart.ts
rename to packages/saleor/src/api/endpoints/cart.ts
diff --git a/framework/saleor/api/endpoints/catalog/products.ts b/packages/saleor/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/saleor/api/endpoints/catalog/products.ts
rename to packages/saleor/src/api/endpoints/catalog/products.ts
diff --git a/framework/saleor/api/endpoints/checkout/index.ts b/packages/saleor/src/api/endpoints/checkout/index.ts
similarity index 88%
rename from framework/saleor/api/endpoints/checkout/index.ts
rename to packages/saleor/src/api/endpoints/checkout/index.ts
index 2113a64d3..2468c8d97 100644
--- a/framework/saleor/api/endpoints/checkout/index.ts
+++ b/packages/saleor/src/api/endpoints/checkout/index.ts
@@ -1,6 +1,6 @@
-import { CommerceAPI, GetAPISchema, createEndpoint } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
-import { CheckoutSchema } from '@commerce/types/checkout'
+import { CommerceAPI, GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
+import { CheckoutSchema } from '@vercel/commerce/types/checkout'
 
 export type CheckoutAPI = GetAPISchema<CommerceAPI, CheckoutSchema>
 
diff --git a/framework/saleor/api/endpoints/customer/address.ts b/packages/saleor/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/saleor/api/endpoints/customer/address.ts
rename to packages/saleor/src/api/endpoints/customer/address.ts
diff --git a/framework/saleor/api/endpoints/customer/card.ts b/packages/saleor/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/saleor/api/endpoints/customer/card.ts
rename to packages/saleor/src/api/endpoints/customer/card.ts
diff --git a/framework/saleor/api/endpoints/customer/index.ts b/packages/saleor/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/saleor/api/endpoints/customer/index.ts
rename to packages/saleor/src/api/endpoints/customer/index.ts
diff --git a/framework/saleor/api/endpoints/login.ts b/packages/saleor/src/api/endpoints/login.ts
similarity index 100%
rename from framework/saleor/api/endpoints/login.ts
rename to packages/saleor/src/api/endpoints/login.ts
diff --git a/framework/saleor/api/endpoints/logout.ts b/packages/saleor/src/api/endpoints/logout.ts
similarity index 100%
rename from framework/saleor/api/endpoints/logout.ts
rename to packages/saleor/src/api/endpoints/logout.ts
diff --git a/framework/saleor/api/endpoints/signup.ts b/packages/saleor/src/api/endpoints/signup.ts
similarity index 100%
rename from framework/saleor/api/endpoints/signup.ts
rename to packages/saleor/src/api/endpoints/signup.ts
diff --git a/framework/saleor/api/endpoints/wishlist.ts b/packages/saleor/src/api/endpoints/wishlist.ts
similarity index 100%
rename from framework/saleor/api/endpoints/wishlist.ts
rename to packages/saleor/src/api/endpoints/wishlist.ts
diff --git a/framework/saleor/api/index.ts b/packages/saleor/src/api/index.ts
similarity index 96%
rename from framework/saleor/api/index.ts
rename to packages/saleor/src/api/index.ts
index 074607666..7ee17f693 100644
--- a/framework/saleor/api/index.ts
+++ b/packages/saleor/src/api/index.ts
@@ -1,4 +1,4 @@
-import { CommerceAPI, CommerceAPIConfig, getCommerceApi as commerceApi } from '@commerce/api'
+import { CommerceAPI, CommerceAPIConfig, getCommerceApi as commerceApi } from '@vercel/commerce/api'
 import * as operations from './operations'
 import * as Const from '../const'
 
diff --git a/framework/saleor/api/operations/get-all-pages.ts b/packages/saleor/src/api/operations/get-all-pages.ts
similarity index 88%
rename from framework/saleor/api/operations/get-all-pages.ts
rename to packages/saleor/src/api/operations/get-all-pages.ts
index 7ba07450d..37f2e3ab2 100644
--- a/framework/saleor/api/operations/get-all-pages.ts
+++ b/packages/saleor/src/api/operations/get-all-pages.ts
@@ -1,6 +1,6 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 
-import { QueryPagesArgs, PageCountableEdge } from '../../schema'
+import { QueryPagesArgs, PageCountableEdge } from '../../../schema'
 import type { SaleorConfig, Provider } from '..'
 import * as Query from '../../utils/queries'
 
diff --git a/framework/saleor/api/operations/get-all-product-paths.ts b/packages/saleor/src/api/operations/get-all-product-paths.ts
similarity index 87%
rename from framework/saleor/api/operations/get-all-product-paths.ts
rename to packages/saleor/src/api/operations/get-all-product-paths.ts
index c04964147..66e8f95c9 100644
--- a/framework/saleor/api/operations/get-all-product-paths.ts
+++ b/packages/saleor/src/api/operations/get-all-product-paths.ts
@@ -1,5 +1,5 @@
-import type { OperationContext } from '@commerce/api/operations'
-import { ProductCountableEdge } from '../../schema'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import { ProductCountableEdge } from '../../../schema'
 import type { Provider, SaleorConfig } from '..'
 
 import { getAllProductsPathsQuery } from '../../utils/queries'
diff --git a/framework/saleor/api/operations/get-all-products.ts b/packages/saleor/src/api/operations/get-all-products.ts
similarity index 84%
rename from framework/saleor/api/operations/get-all-products.ts
rename to packages/saleor/src/api/operations/get-all-products.ts
index 4cb7555d6..f7982adee 100644
--- a/framework/saleor/api/operations/get-all-products.ts
+++ b/packages/saleor/src/api/operations/get-all-products.ts
@@ -1,12 +1,12 @@
-import type { OperationContext } from '@commerce/api/operations'
-import { Product } from '@commerce/types/product'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
 
-import { ProductCountableEdge } from '../../schema'
+import { ProductCountableEdge } from '../../../schema'
 import type { Provider, SaleorConfig } from '..'
 import { normalizeProduct } from '../../utils'
 
 import * as Query from '../../utils/queries'
-import { GraphQLFetcherResult } from '@commerce/api'
+import { GraphQLFetcherResult } from '@vercel/commerce/api'
 
 type ReturnType = {
   products: Product[]
diff --git a/framework/saleor/api/operations/get-page.ts b/packages/saleor/src/api/operations/get-page.ts
similarity index 89%
rename from framework/saleor/api/operations/get-page.ts
rename to packages/saleor/src/api/operations/get-page.ts
index 1e6c8cf2b..bab9d92c5 100644
--- a/framework/saleor/api/operations/get-page.ts
+++ b/packages/saleor/src/api/operations/get-page.ts
@@ -1,6 +1,6 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { Provider, SaleorConfig } from '..'
-import { QueryPageArgs } from '../../schema'
+import { QueryPageArgs } from '../../../schema'
 
 import * as Query from '../../utils/queries'
 
diff --git a/framework/saleor/api/operations/get-product.ts b/packages/saleor/src/api/operations/get-product.ts
similarity index 92%
rename from framework/saleor/api/operations/get-product.ts
rename to packages/saleor/src/api/operations/get-product.ts
index e5e8e596f..5a33dec7b 100644
--- a/framework/saleor/api/operations/get-product.ts
+++ b/packages/saleor/src/api/operations/get-product.ts
@@ -1,4 +1,4 @@
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import { normalizeProduct } from '../../utils'
 import type { Provider, SaleorConfig } from '..'
 
diff --git a/framework/saleor/api/operations/get-site-info.ts b/packages/saleor/src/api/operations/get-site-info.ts
similarity index 84%
rename from framework/saleor/api/operations/get-site-info.ts
rename to packages/saleor/src/api/operations/get-site-info.ts
index 917b96ce4..6ce7408e4 100644
--- a/framework/saleor/api/operations/get-site-info.ts
+++ b/packages/saleor/src/api/operations/get-site-info.ts
@@ -1,5 +1,5 @@
-import type { OperationContext } from '@commerce/api/operations'
-import { Category } from '@commerce/types/site'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import { Category } from '@vercel/commerce/types/site'
 import type { SaleorConfig, Provider } from '..'
 
 import { getCategories, getVendors } from '../../utils'
diff --git a/framework/saleor/api/operations/index.ts b/packages/saleor/src/api/operations/index.ts
similarity index 100%
rename from framework/saleor/api/operations/index.ts
rename to packages/saleor/src/api/operations/index.ts
diff --git a/framework/saleor/api/operations/login.ts b/packages/saleor/src/api/operations/login.ts
similarity index 93%
rename from framework/saleor/api/operations/login.ts
rename to packages/saleor/src/api/operations/login.ts
index 9d3a7fe9f..76d1e7844 100644
--- a/framework/saleor/api/operations/login.ts
+++ b/packages/saleor/src/api/operations/login.ts
@@ -1,5 +1,5 @@
 import type { ServerResponse } from 'http'
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { Provider, SaleorConfig } from '..'
 import { throwUserErrors } from '../../utils'
 
diff --git a/framework/saleor/api/utils/fetch-all-products.ts b/packages/saleor/src/api/utils/fetch-all-products.ts
similarity index 93%
rename from framework/saleor/api/utils/fetch-all-products.ts
rename to packages/saleor/src/api/utils/fetch-all-products.ts
index 1cfb3157c..761e1271d 100644
--- a/framework/saleor/api/utils/fetch-all-products.ts
+++ b/packages/saleor/src/api/utils/fetch-all-products.ts
@@ -1,4 +1,4 @@
-import { ProductCountableEdge } from '../../schema'
+import { ProductCountableEdge } from '../../../schema'
 import { SaleorConfig } from '..'
 
 const fetchAllProducts = async ({
diff --git a/framework/saleor/api/utils/fetch-graphql-api.ts b/packages/saleor/src/api/utils/fetch-graphql-api.ts
similarity index 93%
rename from framework/saleor/api/utils/fetch-graphql-api.ts
rename to packages/saleor/src/api/utils/fetch-graphql-api.ts
index 3145409ad..de4d45aae 100644
--- a/framework/saleor/api/utils/fetch-graphql-api.ts
+++ b/packages/saleor/src/api/utils/fetch-graphql-api.ts
@@ -1,4 +1,4 @@
-import type { GraphQLFetcher } from '@commerce/api'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import fetch from './fetch'
 
 import { API_URL } from '../../const'
diff --git a/framework/saleor/api/utils/fetch.ts b/packages/saleor/src/api/utils/fetch.ts
similarity index 100%
rename from framework/saleor/api/utils/fetch.ts
rename to packages/saleor/src/api/utils/fetch.ts
diff --git a/framework/saleor/api/utils/is-allowed-method.ts b/packages/saleor/src/api/utils/is-allowed-method.ts
similarity index 100%
rename from framework/saleor/api/utils/is-allowed-method.ts
rename to packages/saleor/src/api/utils/is-allowed-method.ts
diff --git a/framework/saleor/api/wishlist.ts b/packages/saleor/src/api/wishlist.ts
similarity index 100%
rename from framework/saleor/api/wishlist.ts
rename to packages/saleor/src/api/wishlist.ts
diff --git a/framework/saleor/auth/use-login.tsx b/packages/saleor/src/auth/use-login.tsx
similarity index 82%
rename from framework/saleor/auth/use-login.tsx
rename to packages/saleor/src/auth/use-login.tsx
index b8b7e35e0..33f95da2b 100644
--- a/framework/saleor/auth/use-login.tsx
+++ b/packages/saleor/src/auth/use-login.tsx
@@ -1,13 +1,13 @@
 import { useCallback } from 'react'
 
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 import useCustomer from '../customer/use-customer'
 import * as mutation from '../utils/mutations'
-import { Mutation, MutationTokenCreateArgs } from '../schema'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import { Mutation, MutationTokenCreateArgs } from '../../schema'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 import { setCSRFToken, setToken, throwUserErrors, checkoutAttach, getCheckoutId } from '../utils'
-import { LoginHook } from '@commerce/types/login'
+import { LoginHook } from '@vercel/commerce/types/login'
 
 export default useLogin as UseLogin<typeof handler>
 
diff --git a/framework/saleor/auth/use-logout.tsx b/packages/saleor/src/auth/use-logout.tsx
similarity index 81%
rename from framework/saleor/auth/use-logout.tsx
rename to packages/saleor/src/auth/use-logout.tsx
index fe75df84b..396cb472a 100644
--- a/framework/saleor/auth/use-logout.tsx
+++ b/packages/saleor/src/auth/use-logout.tsx
@@ -1,10 +1,10 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import useCustomer from '../customer/use-customer'
 import * as mutation from '../utils/mutations'
 import { setCSRFToken, setToken, setCheckoutToken } from '../utils/customer-token'
-import { LogoutHook } from '@commerce/types/logout'
+import { LogoutHook } from '@vercel/commerce/types/logout'
 
 export default useLogout as UseLogout<typeof handler>
 
diff --git a/framework/saleor/auth/use-signup.tsx b/packages/saleor/src/auth/use-signup.tsx
similarity index 82%
rename from framework/saleor/auth/use-signup.tsx
rename to packages/saleor/src/auth/use-signup.tsx
index bad3d60b1..e29ee3b1a 100644
--- a/framework/saleor/auth/use-signup.tsx
+++ b/packages/saleor/src/auth/use-signup.tsx
@@ -1,13 +1,13 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import useCustomer from '../customer/use-customer'
-import { AccountRegisterInput, Mutation, MutationAccountRegisterArgs } from '../schema'
+import { AccountRegisterInput, Mutation, MutationAccountRegisterArgs } from '../../schema'
 
 import * as mutation from '../utils/mutations'
 import { handleAutomaticLogin, throwUserErrors } from '../utils'
-import { SignupHook } from '@commerce/types/signup'
+import { SignupHook } from '@vercel/commerce/types/signup'
 
 export default useSignup as UseSignup<typeof handler>
 
diff --git a/framework/saleor/cart/index.ts b/packages/saleor/src/cart/index.ts
similarity index 100%
rename from framework/saleor/cart/index.ts
rename to packages/saleor/src/cart/index.ts
diff --git a/framework/saleor/cart/use-add-item.tsx b/packages/saleor/src/cart/use-add-item.tsx
similarity index 79%
rename from framework/saleor/cart/use-add-item.tsx
rename to packages/saleor/src/cart/use-add-item.tsx
index 3af368e70..2db070233 100644
--- a/framework/saleor/cart/use-add-item.tsx
+++ b/packages/saleor/src/cart/use-add-item.tsx
@@ -1,15 +1,15 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
 import useCart from './use-cart'
 
 import * as mutation from '../utils/mutations'
 
 import { getCheckoutId, checkoutToCart } from '../utils'
 
-import { Mutation, MutationCheckoutLinesAddArgs } from '../schema'
-import { AddItemHook } from '@commerce/types/cart'
+import { Mutation, MutationCheckoutLinesAddArgs } from '../../schema'
+import { AddItemHook } from '@vercel/commerce/types/cart'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/saleor/cart/use-cart.tsx b/packages/saleor/src/cart/use-cart.tsx
similarity index 86%
rename from framework/saleor/cart/use-cart.tsx
rename to packages/saleor/src/cart/use-cart.tsx
index ab80ea395..9360875d4 100644
--- a/framework/saleor/cart/use-cart.tsx
+++ b/packages/saleor/src/cart/use-cart.tsx
@@ -1,10 +1,10 @@
 import { useMemo } from 'react'
-import useCommerceCart, { UseCart } from '@commerce/cart/use-cart'
+import useCommerceCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 
-import { SWRHook } from '@commerce/utils/types'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import { checkoutCreate, checkoutToCart, getCheckoutId } from '../utils'
 import * as query from '../utils/queries'
-import { GetCartHook } from '@commerce/types/cart'
+import { GetCartHook } from '@vercel/commerce/types/cart'
 
 export default useCommerceCart as UseCart<typeof handler>
 
diff --git a/framework/saleor/cart/use-remove-item.tsx b/packages/saleor/src/cart/use-remove-item.tsx
similarity index 85%
rename from framework/saleor/cart/use-remove-item.tsx
rename to packages/saleor/src/cart/use-remove-item.tsx
index 17be31e0c..09d1acab7 100644
--- a/framework/saleor/cart/use-remove-item.tsx
+++ b/packages/saleor/src/cart/use-remove-item.tsx
@@ -1,10 +1,10 @@
 import { useCallback } from 'react'
-import type { MutationHookContext, HookFetcherContext, MutationHook } from '@commerce/utils/types'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
+import type { MutationHookContext, HookFetcherContext, MutationHook } from '@vercel/commerce/utils/types'
+import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
 import useCart from './use-cart'
 import * as mutation from '../utils/mutations'
 import { getCheckoutId, checkoutToCart } from '../utils'
-import { Mutation, MutationCheckoutLineDeleteArgs } from '../schema'
+import { Mutation, MutationCheckoutLineDeleteArgs } from '../../schema'
 import { LineItem, RemoveItemHook } from '../types/cart'
 
 export default useRemoveItem as UseRemoveItem<typeof handler>
diff --git a/framework/saleor/cart/use-update-item.tsx b/packages/saleor/src/cart/use-update-item.tsx
similarity index 89%
rename from framework/saleor/cart/use-update-item.tsx
rename to packages/saleor/src/cart/use-update-item.tsx
index bd596132d..ffca9b2f8 100644
--- a/framework/saleor/cart/use-update-item.tsx
+++ b/packages/saleor/src/cart/use-update-item.tsx
@@ -1,15 +1,15 @@
 import { useCallback } from 'react'
 import debounce from 'lodash.debounce'
-import type { HookFetcherContext, MutationHookContext } from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+import type { HookFetcherContext, MutationHookContext } from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
 
 import useCart from './use-cart'
 import { handler as removeItemHandler } from './use-remove-item'
 import type { LineItem } from '../types'
 import { checkoutToCart } from '../utils'
 import { getCheckoutId } from '../utils'
-import { Mutation, MutationCheckoutLinesUpdateArgs } from '../schema'
+import { Mutation, MutationCheckoutLinesUpdateArgs } from '../../schema'
 
 import * as mutation from '../utils/mutations'
 
diff --git a/framework/local/checkout/use-checkout.tsx b/packages/saleor/src/checkout/use-checkout.tsx
similarity index 64%
rename from framework/local/checkout/use-checkout.tsx
rename to packages/saleor/src/checkout/use-checkout.tsx
index 942f85b83..cab52bb60 100644
--- a/framework/local/checkout/use-checkout.tsx
+++ b/packages/saleor/src/checkout/use-checkout.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
 
diff --git a/framework/saleor/commerce.config.json b/packages/saleor/src/commerce.config.json
similarity index 100%
rename from framework/saleor/commerce.config.json
rename to packages/saleor/src/commerce.config.json
diff --git a/framework/saleor/const.ts b/packages/saleor/src/const.ts
similarity index 100%
rename from framework/saleor/const.ts
rename to packages/saleor/src/const.ts
diff --git a/packages/saleor/src/customer/address/use-add-item.tsx b/packages/saleor/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..fabd11b1d
--- /dev/null
+++ b/packages/saleor/src/customer/address/use-add-item.tsx
@@ -0,0 +1,15 @@
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/bigcommerce/customer/address/use-add-item.tsx b/packages/saleor/src/customer/card/use-add-item.tsx
similarity index 63%
rename from framework/bigcommerce/customer/address/use-add-item.tsx
rename to packages/saleor/src/customer/card/use-add-item.tsx
index ac9dcd5cf..938e6cd61 100644
--- a/framework/bigcommerce/customer/address/use-add-item.tsx
+++ b/packages/saleor/src/customer/card/use-add-item.tsx
@@ -1,5 +1,5 @@
-import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/saleor/customer/index.ts b/packages/saleor/src/customer/index.ts
similarity index 100%
rename from framework/saleor/customer/index.ts
rename to packages/saleor/src/customer/index.ts
diff --git a/framework/saleor/customer/use-customer.tsx b/packages/saleor/src/customer/use-customer.tsx
similarity index 73%
rename from framework/saleor/customer/use-customer.tsx
rename to packages/saleor/src/customer/use-customer.tsx
index 1e0e63d5a..841793886 100644
--- a/framework/saleor/customer/use-customer.tsx
+++ b/packages/saleor/src/customer/use-customer.tsx
@@ -1,6 +1,6 @@
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
-import { CustomerHook } from '@commerce/types/customer'
-import { SWRHook } from '@commerce/utils/types'
+import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
+import { CustomerHook } from '@vercel/commerce/types/customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
 
 import * as query from '../utils/queries'
 
diff --git a/framework/saleor/fetcher.ts b/packages/saleor/src/fetcher.ts
similarity index 89%
rename from framework/saleor/fetcher.ts
rename to packages/saleor/src/fetcher.ts
index 9d3c0bf89..c1be921c5 100644
--- a/framework/saleor/fetcher.ts
+++ b/packages/saleor/src/fetcher.ts
@@ -1,4 +1,4 @@
-import { Fetcher } from '@commerce/utils/types'
+import { Fetcher } from '@vercel/commerce/utils/types'
 import { API_URL } from './const'
 import { getToken, handleFetchResponse } from './utils'
 
diff --git a/framework/saleor/index.tsx b/packages/saleor/src/index.tsx
similarity index 93%
rename from framework/saleor/index.tsx
rename to packages/saleor/src/index.tsx
index 0fa217943..cf9aaf6e8 100644
--- a/framework/saleor/index.tsx
+++ b/packages/saleor/src/index.tsx
@@ -1,4 +1,4 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import { getCommerceProvider, useCommerce as useCoreCommerce } from '@vercel/commerce'
 import { saleorProvider, SaleorProvider } from './provider'
 
 export { saleorProvider }
diff --git a/framework/saleor/next.config.js b/packages/saleor/src/next.config.cjs
similarity index 100%
rename from framework/saleor/next.config.js
rename to packages/saleor/src/next.config.cjs
diff --git a/packages/saleor/src/product/use-price.tsx b/packages/saleor/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/saleor/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/saleor/product/use-search.tsx b/packages/saleor/src/product/use-search.tsx
similarity index 84%
rename from framework/saleor/product/use-search.tsx
rename to packages/saleor/src/product/use-search.tsx
index cc763c4b7..69212cba1 100644
--- a/framework/saleor/product/use-search.tsx
+++ b/packages/saleor/src/product/use-search.tsx
@@ -1,12 +1,12 @@
-import { SWRHook } from '@commerce/utils/types'
-import { Product } from '@commerce/types/product'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import { Product } from '@vercel/commerce/types/product'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 
-import { ProductCountableEdge } from '../schema'
+import { ProductCountableEdge } from '../../schema'
 import { getSearchVariables, normalizeProduct } from '../utils'
 
 import * as query from '../utils/queries'
-import { SearchProductsHook } from '@commerce/types/product'
+import { SearchProductsHook } from '@vercel/commerce/types/product'
 
 export default useSearch as UseSearch<typeof handler>
 
diff --git a/framework/saleor/provider.ts b/packages/saleor/src/provider.ts
similarity index 100%
rename from framework/saleor/provider.ts
rename to packages/saleor/src/provider.ts
diff --git a/framework/saleor/types.ts b/packages/saleor/src/types.ts
similarity index 90%
rename from framework/saleor/types.ts
rename to packages/saleor/src/types.ts
index 2025b8898..1bbf94cf3 100644
--- a/framework/saleor/types.ts
+++ b/packages/saleor/src/types.ts
@@ -1,5 +1,5 @@
-import type { Cart as CoreCart } from '@commerce/types'
-import { CheckoutLine } from './schema'
+import type { Cart as CoreCart } from '@vercel/commerce/types'
+import { CheckoutLine } from '../schema'
 
 export type SaleorCheckout = {
   id: string
diff --git a/framework/saleor/types/cart.ts b/packages/saleor/src/types/cart.ts
similarity index 88%
rename from framework/saleor/types/cart.ts
rename to packages/saleor/src/types/cart.ts
index 1f4ba61df..9a4d29387 100644
--- a/framework/saleor/types/cart.ts
+++ b/packages/saleor/src/types/cart.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/cart'
+import * as Core from '@vercel/commerce/types/cart'
 
-export * from '@commerce/types/cart'
+export * from '@vercel/commerce/types/cart'
 
 export type SaleorCart = {}
 
diff --git a/framework/saleor/utils/checkout-attach.ts b/packages/saleor/src/utils/checkout-attach.ts
similarity index 83%
rename from framework/saleor/utils/checkout-attach.ts
rename to packages/saleor/src/utils/checkout-attach.ts
index 476c73e77..c7ab44ab0 100644
--- a/framework/saleor/utils/checkout-attach.ts
+++ b/packages/saleor/src/utils/checkout-attach.ts
@@ -1,5 +1,5 @@
 import * as mutation from './mutations'
-import { CheckoutCustomerAttach } from '../schema'
+import { CheckoutCustomerAttach } from '../../schema'
 
 export const checkoutAttach = async (fetch: any, { variables, headers }: any): Promise<CheckoutCustomerAttach> => {
   const data = await fetch({
diff --git a/framework/saleor/utils/checkout-create.ts b/packages/saleor/src/utils/checkout-create.ts
similarity index 85%
rename from framework/saleor/utils/checkout-create.ts
rename to packages/saleor/src/utils/checkout-create.ts
index c1b6e4023..0e86c1335 100644
--- a/framework/saleor/utils/checkout-create.ts
+++ b/packages/saleor/src/utils/checkout-create.ts
@@ -1,8 +1,8 @@
 import Cookies from 'js-cookie'
 
 import * as mutation from './mutations'
-import { CheckoutCreate } from '../schema'
-import { CHECKOUT_ID_COOKIE } from '@framework/const'
+import { CheckoutCreate } from '../../schema'
+import { CHECKOUT_ID_COOKIE } from '../const'
 
 export const checkoutCreate = async (fetch: any): Promise<CheckoutCreate> => {
   const data = await fetch({ query: mutation.CheckoutCreate })
diff --git a/framework/saleor/utils/checkout-to-cart.ts b/packages/saleor/src/utils/checkout-to-cart.ts
similarity index 91%
rename from framework/saleor/utils/checkout-to-cart.ts
rename to packages/saleor/src/utils/checkout-to-cart.ts
index 0bfcf6ed9..4c228adea 100644
--- a/framework/saleor/utils/checkout-to-cart.ts
+++ b/packages/saleor/src/utils/checkout-to-cart.ts
@@ -1,5 +1,5 @@
 import { Cart } from '../types'
-import { CommerceError } from '@commerce/utils/errors'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 
 import {
   CheckoutLinesAdd,
@@ -9,7 +9,7 @@ import {
   Checkout,
   Maybe,
   CheckoutLineDelete,
-} from '../schema'
+} from '../../schema'
 
 import { normalizeCart } from './normalize'
 import throwUserErrors from './throw-user-errors'
diff --git a/framework/saleor/utils/customer-token.ts b/packages/saleor/src/utils/customer-token.ts
similarity index 100%
rename from framework/saleor/utils/customer-token.ts
rename to packages/saleor/src/utils/customer-token.ts
diff --git a/framework/saleor/utils/fragments/checkout-details.ts b/packages/saleor/src/utils/fragments/checkout-details.ts
similarity index 100%
rename from framework/saleor/utils/fragments/checkout-details.ts
rename to packages/saleor/src/utils/fragments/checkout-details.ts
diff --git a/framework/saleor/utils/fragments/index.ts b/packages/saleor/src/utils/fragments/index.ts
similarity index 100%
rename from framework/saleor/utils/fragments/index.ts
rename to packages/saleor/src/utils/fragments/index.ts
diff --git a/framework/saleor/utils/fragments/product.ts b/packages/saleor/src/utils/fragments/product.ts
similarity index 100%
rename from framework/saleor/utils/fragments/product.ts
rename to packages/saleor/src/utils/fragments/product.ts
diff --git a/framework/saleor/utils/get-categories.ts b/packages/saleor/src/utils/get-categories.ts
similarity index 81%
rename from framework/saleor/utils/get-categories.ts
rename to packages/saleor/src/utils/get-categories.ts
index 990c0a404..e2cc72533 100644
--- a/framework/saleor/utils/get-categories.ts
+++ b/packages/saleor/src/utils/get-categories.ts
@@ -1,6 +1,6 @@
-import { Category } from '@commerce/types/site'
+import { Category } from '@vercel/commerce/types/site'
 import { SaleorConfig } from '../api'
-import { CollectionCountableEdge } from '../schema'
+import { CollectionCountableEdge } from '../../schema'
 import * as query from './queries'
 
 const getCategories = async (config: SaleorConfig): Promise<Category[]> => {
diff --git a/framework/saleor/utils/get-checkout-id.ts b/packages/saleor/src/utils/get-checkout-id.ts
similarity index 100%
rename from framework/saleor/utils/get-checkout-id.ts
rename to packages/saleor/src/utils/get-checkout-id.ts
diff --git a/framework/saleor/utils/get-search-variables.ts b/packages/saleor/src/utils/get-search-variables.ts
similarity index 100%
rename from framework/saleor/utils/get-search-variables.ts
rename to packages/saleor/src/utils/get-search-variables.ts
diff --git a/framework/saleor/utils/get-sort-variables.ts b/packages/saleor/src/utils/get-sort-variables.ts
similarity index 100%
rename from framework/saleor/utils/get-sort-variables.ts
rename to packages/saleor/src/utils/get-sort-variables.ts
diff --git a/framework/saleor/utils/get-vendors.ts b/packages/saleor/src/utils/get-vendors.ts
similarity index 100%
rename from framework/saleor/utils/get-vendors.ts
rename to packages/saleor/src/utils/get-vendors.ts
diff --git a/framework/saleor/utils/handle-fetch-response.ts b/packages/saleor/src/utils/handle-fetch-response.ts
similarity index 90%
rename from framework/saleor/utils/handle-fetch-response.ts
rename to packages/saleor/src/utils/handle-fetch-response.ts
index 6a2b5f57b..33fe15c17 100644
--- a/framework/saleor/utils/handle-fetch-response.ts
+++ b/packages/saleor/src/utils/handle-fetch-response.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 export function getError(errors: any[], status: number) {
   errors = errors ?? [{ message: 'Failed to fetch Saleor API' }]
diff --git a/framework/saleor/utils/handle-login.ts b/packages/saleor/src/utils/handle-login.ts
similarity index 91%
rename from framework/saleor/utils/handle-login.ts
rename to packages/saleor/src/utils/handle-login.ts
index 4ef390174..b1beaeda9 100644
--- a/framework/saleor/utils/handle-login.ts
+++ b/packages/saleor/src/utils/handle-login.ts
@@ -1,5 +1,5 @@
-import { FetcherOptions } from '@commerce/utils/types'
-import { CreateToken, Mutation, MutationTokenCreateArgs } from '../schema'
+import { FetcherOptions } from '@vercel/commerce/utils/types'
+import { CreateToken, Mutation, MutationTokenCreateArgs } from '../../schema'
 import { setToken, setCSRFToken } from './customer-token'
 import * as mutation from './mutations'
 import throwUserErrors from './throw-user-errors'
diff --git a/framework/saleor/utils/index.ts b/packages/saleor/src/utils/index.ts
similarity index 100%
rename from framework/saleor/utils/index.ts
rename to packages/saleor/src/utils/index.ts
diff --git a/framework/saleor/utils/mutations/account-create.ts b/packages/saleor/src/utils/mutations/account-create.ts
similarity index 100%
rename from framework/saleor/utils/mutations/account-create.ts
rename to packages/saleor/src/utils/mutations/account-create.ts
diff --git a/framework/saleor/utils/mutations/checkout-attach.ts b/packages/saleor/src/utils/mutations/checkout-attach.ts
similarity index 100%
rename from framework/saleor/utils/mutations/checkout-attach.ts
rename to packages/saleor/src/utils/mutations/checkout-attach.ts
diff --git a/framework/saleor/utils/mutations/checkout-create.ts b/packages/saleor/src/utils/mutations/checkout-create.ts
similarity index 100%
rename from framework/saleor/utils/mutations/checkout-create.ts
rename to packages/saleor/src/utils/mutations/checkout-create.ts
diff --git a/framework/saleor/utils/mutations/checkout-line-add.ts b/packages/saleor/src/utils/mutations/checkout-line-add.ts
similarity index 100%
rename from framework/saleor/utils/mutations/checkout-line-add.ts
rename to packages/saleor/src/utils/mutations/checkout-line-add.ts
diff --git a/framework/saleor/utils/mutations/checkout-line-remove.ts b/packages/saleor/src/utils/mutations/checkout-line-remove.ts
similarity index 100%
rename from framework/saleor/utils/mutations/checkout-line-remove.ts
rename to packages/saleor/src/utils/mutations/checkout-line-remove.ts
diff --git a/framework/saleor/utils/mutations/checkout-line-update.ts b/packages/saleor/src/utils/mutations/checkout-line-update.ts
similarity index 100%
rename from framework/saleor/utils/mutations/checkout-line-update.ts
rename to packages/saleor/src/utils/mutations/checkout-line-update.ts
diff --git a/framework/saleor/utils/mutations/index.ts b/packages/saleor/src/utils/mutations/index.ts
similarity index 100%
rename from framework/saleor/utils/mutations/index.ts
rename to packages/saleor/src/utils/mutations/index.ts
diff --git a/framework/saleor/utils/mutations/session-create.ts b/packages/saleor/src/utils/mutations/session-create.ts
similarity index 100%
rename from framework/saleor/utils/mutations/session-create.ts
rename to packages/saleor/src/utils/mutations/session-create.ts
diff --git a/framework/saleor/utils/mutations/session-destroy.ts b/packages/saleor/src/utils/mutations/session-destroy.ts
similarity index 100%
rename from framework/saleor/utils/mutations/session-destroy.ts
rename to packages/saleor/src/utils/mutations/session-destroy.ts
diff --git a/framework/saleor/utils/normalize.ts b/packages/saleor/src/utils/normalize.ts
similarity index 97%
rename from framework/saleor/utils/normalize.ts
rename to packages/saleor/src/utils/normalize.ts
index 56091db15..a4ff4b52c 100644
--- a/framework/saleor/utils/normalize.ts
+++ b/packages/saleor/src/utils/normalize.ts
@@ -1,6 +1,6 @@
-import { Product } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
 
-import { Product as SaleorProduct, Checkout, CheckoutLine, Money, ProductVariant } from '../schema'
+import { Product as SaleorProduct, Checkout, CheckoutLine, Money, ProductVariant } from '../../schema'
 
 import type { Cart, LineItem } from '../types'
 
diff --git a/framework/saleor/utils/queries/checkout-one.ts b/packages/saleor/src/utils/queries/checkout-one.ts
similarity index 100%
rename from framework/saleor/utils/queries/checkout-one.ts
rename to packages/saleor/src/utils/queries/checkout-one.ts
diff --git a/framework/saleor/utils/queries/collection-many.ts b/packages/saleor/src/utils/queries/collection-many.ts
similarity index 100%
rename from framework/saleor/utils/queries/collection-many.ts
rename to packages/saleor/src/utils/queries/collection-many.ts
diff --git a/framework/saleor/utils/queries/collection-one.ts b/packages/saleor/src/utils/queries/collection-one.ts
similarity index 100%
rename from framework/saleor/utils/queries/collection-one.ts
rename to packages/saleor/src/utils/queries/collection-one.ts
diff --git a/framework/saleor/utils/queries/customer-current.ts b/packages/saleor/src/utils/queries/customer-current.ts
similarity index 100%
rename from framework/saleor/utils/queries/customer-current.ts
rename to packages/saleor/src/utils/queries/customer-current.ts
diff --git a/framework/saleor/utils/queries/customer-one.ts b/packages/saleor/src/utils/queries/customer-one.ts
similarity index 100%
rename from framework/saleor/utils/queries/customer-one.ts
rename to packages/saleor/src/utils/queries/customer-one.ts
diff --git a/framework/saleor/utils/queries/get-all-product-vendors-query.ts b/packages/saleor/src/utils/queries/get-all-product-vendors-query.ts
similarity index 100%
rename from framework/saleor/utils/queries/get-all-product-vendors-query.ts
rename to packages/saleor/src/utils/queries/get-all-product-vendors-query.ts
diff --git a/framework/saleor/utils/queries/get-all-products-paths-query.ts b/packages/saleor/src/utils/queries/get-all-products-paths-query.ts
similarity index 100%
rename from framework/saleor/utils/queries/get-all-products-paths-query.ts
rename to packages/saleor/src/utils/queries/get-all-products-paths-query.ts
diff --git a/framework/saleor/utils/queries/index.ts b/packages/saleor/src/utils/queries/index.ts
similarity index 100%
rename from framework/saleor/utils/queries/index.ts
rename to packages/saleor/src/utils/queries/index.ts
diff --git a/framework/saleor/utils/queries/page-many.ts b/packages/saleor/src/utils/queries/page-many.ts
similarity index 100%
rename from framework/saleor/utils/queries/page-many.ts
rename to packages/saleor/src/utils/queries/page-many.ts
diff --git a/framework/saleor/utils/queries/page-one.ts b/packages/saleor/src/utils/queries/page-one.ts
similarity index 100%
rename from framework/saleor/utils/queries/page-one.ts
rename to packages/saleor/src/utils/queries/page-one.ts
diff --git a/framework/saleor/utils/queries/product-many.ts b/packages/saleor/src/utils/queries/product-many.ts
similarity index 100%
rename from framework/saleor/utils/queries/product-many.ts
rename to packages/saleor/src/utils/queries/product-many.ts
diff --git a/framework/saleor/utils/queries/product-one-by-slug.ts b/packages/saleor/src/utils/queries/product-one-by-slug.ts
similarity index 100%
rename from framework/saleor/utils/queries/product-one-by-slug.ts
rename to packages/saleor/src/utils/queries/product-one-by-slug.ts
diff --git a/framework/saleor/utils/throw-user-errors.ts b/packages/saleor/src/utils/throw-user-errors.ts
similarity index 83%
rename from framework/saleor/utils/throw-user-errors.ts
rename to packages/saleor/src/utils/throw-user-errors.ts
index 2991d78a6..59345e748 100644
--- a/framework/saleor/utils/throw-user-errors.ts
+++ b/packages/saleor/src/utils/throw-user-errors.ts
@@ -1,6 +1,6 @@
-import { ValidationError } from '@commerce/utils/errors'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 
-import { CheckoutError, CheckoutErrorCode, AppError, AccountError, AccountErrorCode } from '../schema'
+import { CheckoutError, CheckoutErrorCode, AppError, AccountError, AccountErrorCode } from '../../schema'
 
 export type UserErrors = Array<CheckoutError | AccountError | AppError>
 
diff --git a/framework/saleor/wishlist/use-add-item.tsx b/packages/saleor/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/saleor/wishlist/use-add-item.tsx
rename to packages/saleor/src/wishlist/use-add-item.tsx
diff --git a/framework/saleor/wishlist/use-remove-item.tsx b/packages/saleor/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/saleor/wishlist/use-remove-item.tsx
rename to packages/saleor/src/wishlist/use-remove-item.tsx
diff --git a/framework/saleor/wishlist/use-wishlist.tsx b/packages/saleor/src/wishlist/use-wishlist.tsx
similarity index 90%
rename from framework/saleor/wishlist/use-wishlist.tsx
rename to packages/saleor/src/wishlist/use-wishlist.tsx
index cdd9a643d..56e7ea0e7 100644
--- a/framework/saleor/wishlist/use-wishlist.tsx
+++ b/packages/saleor/src/wishlist/use-wishlist.tsx
@@ -1,8 +1,8 @@
 // TODO: replace this hook and other wishlist hooks with a handler, or remove them if
 // Saleor doesn't have a wishlist
 
-import { HookFetcher } from '@commerce/utils/types'
-import { Product } from '../schema'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import { Product } from '../../schema'
 
 const defaultOpts = {}
 
diff --git a/packages/saleor/tsconfig.json b/packages/saleor/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/saleor/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/shopify/.env.template b/packages/shopify/.env.template
similarity index 100%
rename from framework/shopify/.env.template
rename to packages/shopify/.env.template
diff --git a/packages/shopify/.prettierignore b/packages/shopify/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/shopify/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/shopify/.prettierrc b/packages/shopify/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/shopify/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/shopify/README.md b/packages/shopify/README.md
similarity index 98%
rename from framework/shopify/README.md
rename to packages/shopify/README.md
index 82d90fc55..15a6e1f11 100644
--- a/framework/shopify/README.md
+++ b/packages/shopify/README.md
@@ -7,7 +7,7 @@ Before getting started, a [Shopify](https://www.shopify.com/) account and store
 Next, copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git):
 
 ```bash
-cp framework/shopify/.env.template .env.local
+cp packages/shopify/.env.template .env.local
 ```
 
 Then, set the environment variables in `.env.local` to match the ones from your store.
diff --git a/framework/shopify/codegen.json b/packages/shopify/codegen.json
similarity index 81%
rename from framework/shopify/codegen.json
rename to packages/shopify/codegen.json
index 9d7dcf8a9..4b1dd2087 100644
--- a/framework/shopify/codegen.json
+++ b/packages/shopify/codegen.json
@@ -8,13 +8,13 @@
   },
   "documents": [
     {
-      "./framework/shopify/**/*.{ts,tsx}": {
+      "./src/**/*.{ts,tsx}": {
         "noRequire": true
       }
     }
   ],
   "generates": {
-    "./framework/shopify/schema.d.ts": {
+    "./schema.d.ts": {
       "plugins": ["typescript", "typescript-operations"],
       "config": {
         "scalars": {
@@ -22,7 +22,7 @@
         }
       }
     },
-    "./framework/shopify/schema.graphql": {
+    "./schema.graphql": {
       "plugins": ["schema-ast"]
     }
   },
diff --git a/packages/shopify/package.json b/packages/shopify/package.json
new file mode 100644
index 000000000..b406fc7c4
--- /dev/null
+++ b/packages/shopify/package.json
@@ -0,0 +1,79 @@
+{
+  "name": "@vercel/commerce-shopify",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write .",
+    "generate": "DOTENV_CONFIG_PATH=./.env graphql-codegen -r dotenv/config"
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist",
+    "schema.d.ts"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@graphql-codegen/cli": "^2.3.1",
+    "@graphql-codegen/schema-ast": "^2.4.1",
+    "@graphql-codegen/typescript": "^2.4.2",
+    "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "dotenv": "^12.0.3",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/shopify/schema.d.ts b/packages/shopify/schema.d.ts
similarity index 100%
rename from framework/shopify/schema.d.ts
rename to packages/shopify/schema.d.ts
diff --git a/framework/shopify/schema.graphql b/packages/shopify/schema.graphql
similarity index 100%
rename from framework/shopify/schema.graphql
rename to packages/shopify/schema.graphql
diff --git a/framework/shopify/api/endpoints/cart.ts b/packages/shopify/src/api/endpoints/cart.ts
similarity index 100%
rename from framework/shopify/api/endpoints/cart.ts
rename to packages/shopify/src/api/endpoints/cart.ts
diff --git a/framework/shopify/api/endpoints/catalog/products.ts b/packages/shopify/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/shopify/api/endpoints/catalog/products.ts
rename to packages/shopify/src/api/endpoints/catalog/products.ts
diff --git a/framework/shopify/api/endpoints/checkout/get-checkout.ts b/packages/shopify/src/api/endpoints/checkout/get-checkout.ts
similarity index 100%
rename from framework/shopify/api/endpoints/checkout/get-checkout.ts
rename to packages/shopify/src/api/endpoints/checkout/get-checkout.ts
diff --git a/framework/shopify/api/endpoints/checkout/index.ts b/packages/shopify/src/api/endpoints/checkout/index.ts
similarity index 76%
rename from framework/shopify/api/endpoints/checkout/index.ts
rename to packages/shopify/src/api/endpoints/checkout/index.ts
index 863564697..64020810d 100644
--- a/framework/shopify/api/endpoints/checkout/index.ts
+++ b/packages/shopify/src/api/endpoints/checkout/index.ts
@@ -1,5 +1,5 @@
-import { GetAPISchema, createEndpoint } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 import type { CheckoutSchema } from '../../../types/checkout'
 import type { ShopifyAPI } from '../..'
 import getCheckout from './get-checkout'
diff --git a/framework/shopify/api/endpoints/customer/address.ts b/packages/shopify/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/shopify/api/endpoints/customer/address.ts
rename to packages/shopify/src/api/endpoints/customer/address.ts
diff --git a/framework/shopify/api/endpoints/customer/card.ts b/packages/shopify/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/shopify/api/endpoints/customer/card.ts
rename to packages/shopify/src/api/endpoints/customer/card.ts
diff --git a/framework/shopify/api/endpoints/customer/index.ts b/packages/shopify/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/shopify/api/endpoints/customer/index.ts
rename to packages/shopify/src/api/endpoints/customer/index.ts
diff --git a/framework/shopify/api/endpoints/login.ts b/packages/shopify/src/api/endpoints/login.ts
similarity index 100%
rename from framework/shopify/api/endpoints/login.ts
rename to packages/shopify/src/api/endpoints/login.ts
diff --git a/framework/shopify/api/endpoints/logout.ts b/packages/shopify/src/api/endpoints/logout.ts
similarity index 100%
rename from framework/shopify/api/endpoints/logout.ts
rename to packages/shopify/src/api/endpoints/logout.ts
diff --git a/framework/shopify/api/endpoints/signup.ts b/packages/shopify/src/api/endpoints/signup.ts
similarity index 100%
rename from framework/shopify/api/endpoints/signup.ts
rename to packages/shopify/src/api/endpoints/signup.ts
diff --git a/framework/shopify/api/endpoints/wishlist.ts b/packages/shopify/src/api/endpoints/wishlist.ts
similarity index 100%
rename from framework/shopify/api/endpoints/wishlist.ts
rename to packages/shopify/src/api/endpoints/wishlist.ts
diff --git a/framework/shopify/api/index.ts b/packages/shopify/src/api/index.ts
similarity index 97%
rename from framework/shopify/api/index.ts
rename to packages/shopify/src/api/index.ts
index 28c7d34b3..7ae6a4206 100644
--- a/framework/shopify/api/index.ts
+++ b/packages/shopify/src/api/index.ts
@@ -2,7 +2,7 @@ import {
   CommerceAPI,
   CommerceAPIConfig,
   getCommerceApi as commerceApi,
-} from '@commerce/api'
+} from '@vercel/commerce/api'
 
 import {
   API_URL,
diff --git a/framework/shopify/api/operations/get-all-pages.ts b/packages/shopify/src/api/operations/get-all-pages.ts
similarity index 96%
rename from framework/shopify/api/operations/get-all-pages.ts
rename to packages/shopify/src/api/operations/get-all-pages.ts
index 38285ccca..2f6cc0916 100644
--- a/framework/shopify/api/operations/get-all-pages.ts
+++ b/packages/shopify/src/api/operations/get-all-pages.ts
@@ -1,12 +1,12 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import {
   GetAllPagesQuery,
   GetAllPagesQueryVariables,
   PageEdge,
-} from '../../schema'
+} from '../../../schema'
 import { normalizePages } from '../../utils'
 import type { ShopifyConfig, Provider } from '..'
 import type { GetAllPagesOperation, Page } from '../../types/page'
diff --git a/framework/shopify/api/operations/get-all-product-paths.ts b/packages/shopify/src/api/operations/get-all-product-paths.ts
similarity index 95%
rename from framework/shopify/api/operations/get-all-product-paths.ts
rename to packages/shopify/src/api/operations/get-all-product-paths.ts
index c84f8c90a..e5a7d2d8e 100644
--- a/framework/shopify/api/operations/get-all-product-paths.ts
+++ b/packages/shopify/src/api/operations/get-all-product-paths.ts
@@ -1,13 +1,13 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import { GetAllProductPathsOperation } from '../../types/product'
 import {
   GetAllProductPathsQuery,
   GetAllProductPathsQueryVariables,
   ProductEdge,
-} from '../../schema'
+} from '../../../schema'
 import type { ShopifyConfig, Provider } from '..'
 import { getAllProductsQuery } from '../../utils'
 
diff --git a/framework/shopify/api/operations/get-all-products.ts b/packages/shopify/src/api/operations/get-all-products.ts
similarity index 96%
rename from framework/shopify/api/operations/get-all-products.ts
rename to packages/shopify/src/api/operations/get-all-products.ts
index 08d781d5c..003e27204 100644
--- a/framework/shopify/api/operations/get-all-products.ts
+++ b/packages/shopify/src/api/operations/get-all-products.ts
@@ -1,13 +1,13 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import { GetAllProductsOperation } from '../../types/product'
 import {
   GetAllProductsQuery,
   GetAllProductsQueryVariables,
   Product as ShopifyProduct,
-} from '../../schema'
+} from '../../../schema'
 import type { ShopifyConfig, Provider } from '..'
 import getAllProductsQuery from '../../utils/queries/get-all-products-query'
 import { normalizeProduct } from '../../utils'
diff --git a/framework/shopify/api/operations/get-page.ts b/packages/shopify/src/api/operations/get-page.ts
similarity index 95%
rename from framework/shopify/api/operations/get-page.ts
rename to packages/shopify/src/api/operations/get-page.ts
index 023ebeeb7..2cea52194 100644
--- a/framework/shopify/api/operations/get-page.ts
+++ b/packages/shopify/src/api/operations/get-page.ts
@@ -1,14 +1,14 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import { normalizePage } from '../../utils'
 import type { ShopifyConfig, Provider } from '..'
 import {
   GetPageQuery,
   GetPageQueryVariables,
   Page as ShopifyPage,
-} from '../../schema'
+} from '../../../schema'
 import { GetPageOperation } from '../../types/page'
 import getPageQuery from '../../utils/queries/get-page-query'
 
diff --git a/framework/shopify/api/operations/get-product.ts b/packages/shopify/src/api/operations/get-product.ts
similarity index 91%
rename from framework/shopify/api/operations/get-product.ts
rename to packages/shopify/src/api/operations/get-product.ts
index 447b5c792..1697b0feb 100644
--- a/framework/shopify/api/operations/get-product.ts
+++ b/packages/shopify/src/api/operations/get-product.ts
@@ -1,11 +1,14 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import { GetProductOperation } from '../../types/product'
 import { normalizeProduct, getProductQuery } from '../../utils'
 import type { ShopifyConfig, Provider } from '..'
-import { GetProductBySlugQuery, Product as ShopifyProduct } from '../../schema'
+import {
+  GetProductBySlugQuery,
+  Product as ShopifyProduct,
+} from '../../../schema'
 
 export default function getProductOperation({
   commerce,
diff --git a/framework/shopify/api/operations/get-site-info.ts b/packages/shopify/src/api/operations/get-site-info.ts
similarity index 93%
rename from framework/shopify/api/operations/get-site-info.ts
rename to packages/shopify/src/api/operations/get-site-info.ts
index 7f51d1d5c..6bb6de4b0 100644
--- a/framework/shopify/api/operations/get-site-info.ts
+++ b/packages/shopify/src/api/operations/get-site-info.ts
@@ -1,8 +1,8 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import { GetSiteInfoQueryVariables } from '../../schema'
+} from '@vercel/commerce/api/operations'
+import { GetSiteInfoQueryVariables } from '../../../schema'
 import type { ShopifyConfig, Provider } from '..'
 import { GetSiteInfoOperation } from '../../types/site'
 
diff --git a/framework/shopify/api/operations/index.ts b/packages/shopify/src/api/operations/index.ts
similarity index 100%
rename from framework/shopify/api/operations/index.ts
rename to packages/shopify/src/api/operations/index.ts
diff --git a/framework/shopify/api/operations/login.ts b/packages/shopify/src/api/operations/login.ts
similarity index 89%
rename from framework/shopify/api/operations/login.ts
rename to packages/shopify/src/api/operations/login.ts
index 41e837a3f..5fad769bd 100644
--- a/framework/shopify/api/operations/login.ts
+++ b/packages/shopify/src/api/operations/login.ts
@@ -1,5 +1,5 @@
 import type { ServerResponse } from 'http'
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { LoginOperation } from '../../types/login'
 import type { ShopifyConfig, Provider } from '..'
 import {
@@ -7,7 +7,7 @@ import {
   setCustomerToken,
   throwUserErrors,
 } from '../../utils'
-import { CustomerAccessTokenCreateMutation } from '../../schema'
+import { CustomerAccessTokenCreateMutation } from '../../../schema'
 
 export default function loginOperation({
   commerce,
diff --git a/framework/shopify/api/utils/fetch-graphql-api.ts b/packages/shopify/src/api/utils/fetch-graphql-api.ts
similarity index 94%
rename from framework/shopify/api/utils/fetch-graphql-api.ts
rename to packages/shopify/src/api/utils/fetch-graphql-api.ts
index c45d57e70..1970db572 100644
--- a/framework/shopify/api/utils/fetch-graphql-api.ts
+++ b/packages/shopify/src/api/utils/fetch-graphql-api.ts
@@ -1,4 +1,4 @@
-import type { GraphQLFetcher } from '@commerce/api'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import fetch from './fetch'
 
 import { API_URL, API_TOKEN } from '../../const'
diff --git a/framework/shopify/api/utils/fetch.ts b/packages/shopify/src/api/utils/fetch.ts
similarity index 100%
rename from framework/shopify/api/utils/fetch.ts
rename to packages/shopify/src/api/utils/fetch.ts
diff --git a/framework/shopify/auth/use-login.tsx b/packages/shopify/src/auth/use-login.tsx
similarity index 87%
rename from framework/shopify/auth/use-login.tsx
rename to packages/shopify/src/auth/use-login.tsx
index 449dfa1f6..c9d183e33 100644
--- a/framework/shopify/auth/use-login.tsx
+++ b/packages/shopify/src/auth/use-login.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 import type { LoginHook } from '../types/login'
 import useCustomer from '../customer/use-customer'
 
@@ -10,7 +10,7 @@ import {
   throwUserErrors,
   customerAccessTokenCreateMutation,
 } from '../utils'
-import { Mutation, MutationCustomerAccessTokenCreateArgs } from '../schema'
+import { Mutation, MutationCustomerAccessTokenCreateArgs } from '../../schema'
 
 export default useLogin as UseLogin<typeof handler>
 
diff --git a/framework/shopify/auth/use-logout.tsx b/packages/shopify/src/auth/use-logout.tsx
similarity index 87%
rename from framework/shopify/auth/use-logout.tsx
rename to packages/shopify/src/auth/use-logout.tsx
index fdba8df84..c37b0fcc9 100644
--- a/framework/shopify/auth/use-logout.tsx
+++ b/packages/shopify/src/auth/use-logout.tsx
@@ -1,6 +1,6 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import type { LogoutHook } from '../types/logout'
 import useCustomer from '../customer/use-customer'
 import customerAccessTokenDeleteMutation from '../utils/mutations/customer-access-token-delete'
diff --git a/framework/shopify/auth/use-signup.tsx b/packages/shopify/src/auth/use-signup.tsx
similarity index 83%
rename from framework/shopify/auth/use-signup.tsx
rename to packages/shopify/src/auth/use-signup.tsx
index d241c61d8..8af0fec7d 100644
--- a/framework/shopify/auth/use-signup.tsx
+++ b/packages/shopify/src/auth/use-signup.tsx
@@ -1,10 +1,10 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import type { SignupHook } from '../types/signup'
 import useCustomer from '../customer/use-customer'
-import { Mutation, MutationCustomerCreateArgs } from '../schema'
+import { Mutation, MutationCustomerCreateArgs } from '../../schema'
 
 import {
   handleAutomaticLogin,
diff --git a/framework/shopify/cart/index.ts b/packages/shopify/src/cart/index.ts
similarity index 100%
rename from framework/shopify/cart/index.ts
rename to packages/shopify/src/cart/index.ts
diff --git a/framework/shopify/cart/use-add-item.tsx b/packages/shopify/src/cart/use-add-item.tsx
similarity index 84%
rename from framework/shopify/cart/use-add-item.tsx
rename to packages/shopify/src/cart/use-add-item.tsx
index 367f90e24..5460bd726 100644
--- a/framework/shopify/cart/use-add-item.tsx
+++ b/packages/shopify/src/cart/use-add-item.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
 import type { AddItemHook } from '../types/cart'
 import useCart from './use-cart'
 
@@ -11,7 +11,7 @@ import {
   checkoutToCart,
   checkoutCreate,
 } from '../utils'
-import { Mutation, MutationCheckoutLineItemsAddArgs } from '../schema'
+import { Mutation, MutationCheckoutLineItemsAddArgs } from '../../schema'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/shopify/cart/use-cart.tsx b/packages/shopify/src/cart/use-cart.tsx
similarity index 91%
rename from framework/shopify/cart/use-cart.tsx
rename to packages/shopify/src/cart/use-cart.tsx
index 0b8c6657b..2fe68beef 100644
--- a/framework/shopify/cart/use-cart.tsx
+++ b/packages/shopify/src/cart/use-cart.tsx
@@ -1,7 +1,7 @@
 import { useMemo } from 'react'
-import useCommerceCart, { UseCart } from '@commerce/cart/use-cart'
+import useCommerceCart, { UseCart } from '@vercel/commerce/cart/use-cart'
 
-import { SWRHook } from '@commerce/utils/types'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import { checkoutToCart } from '../utils'
 import getCheckoutQuery from '../utils/queries/get-checkout-query'
 import { GetCartHook } from '../types/cart'
diff --git a/framework/shopify/cart/use-remove-item.tsx b/packages/shopify/src/cart/use-remove-item.tsx
similarity index 90%
rename from framework/shopify/cart/use-remove-item.tsx
rename to packages/shopify/src/cart/use-remove-item.tsx
index 5e193358b..d04c7c5d2 100644
--- a/framework/shopify/cart/use-remove-item.tsx
+++ b/packages/shopify/src/cart/use-remove-item.tsx
@@ -2,9 +2,11 @@ import { useCallback } from 'react'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useRemoveItem, {
+  UseRemoveItem,
+} from '@vercel/commerce/cart/use-remove-item'
 import type { Cart, LineItem, RemoveItemHook } from '../types/cart'
 import useCart from './use-cart'
 
@@ -24,7 +26,7 @@ import {
   checkoutToCart,
 } from '../utils'
 
-import { Mutation, MutationCheckoutLineItemsRemoveArgs } from '../schema'
+import { Mutation, MutationCheckoutLineItemsRemoveArgs } from '../../schema'
 
 export const handler = {
   fetchOptions: {
diff --git a/framework/shopify/cart/use-update-item.tsx b/packages/shopify/src/cart/use-update-item.tsx
similarity index 93%
rename from framework/shopify/cart/use-update-item.tsx
rename to packages/shopify/src/cart/use-update-item.tsx
index 83d0a220a..0e8258a51 100644
--- a/framework/shopify/cart/use-update-item.tsx
+++ b/packages/shopify/src/cart/use-update-item.tsx
@@ -3,9 +3,11 @@ import debounce from 'lodash.debounce'
 import type {
   HookFetcherContext,
   MutationHookContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, {
+  UseUpdateItem,
+} from '@vercel/commerce/cart/use-update-item'
 
 import useCart from './use-cart'
 import { handler as removeItemHandler } from './use-remove-item'
@@ -15,7 +17,7 @@ import {
   checkoutLineItemUpdateMutation,
   checkoutToCart,
 } from '../utils'
-import { Mutation, MutationCheckoutLineItemsUpdateArgs } from '../schema'
+import { Mutation, MutationCheckoutLineItemsUpdateArgs } from '../../schema'
 
 export type UpdateItemActionInput<T = any> = T extends LineItem
   ? Partial<UpdateItemHook['actionInput']>
diff --git a/packages/shopify/src/checkout/use-checkout.tsx b/packages/shopify/src/checkout/use-checkout.tsx
new file mode 100644
index 000000000..76997be73
--- /dev/null
+++ b/packages/shopify/src/checkout/use-checkout.tsx
@@ -0,0 +1,16 @@
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, {
+  UseCheckout,
+} from '@vercel/commerce/checkout/use-checkout'
+
+export default useCheckout as UseCheckout<typeof handler>
+
+export const handler: SWRHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ useData }) =>
+    async (input) => ({}),
+}
diff --git a/framework/shopify/commerce.config.json b/packages/shopify/src/commerce.config.json
similarity index 100%
rename from framework/shopify/commerce.config.json
rename to packages/shopify/src/commerce.config.json
diff --git a/framework/shopify/const.ts b/packages/shopify/src/const.ts
similarity index 100%
rename from framework/shopify/const.ts
rename to packages/shopify/src/const.ts
diff --git a/packages/shopify/src/customer/address/use-add-item.tsx b/packages/shopify/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..4f85c8472
--- /dev/null
+++ b/packages/shopify/src/customer/address/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/packages/shopify/src/customer/card/use-add-item.tsx b/packages/shopify/src/customer/card/use-add-item.tsx
new file mode 100644
index 000000000..77d149eff
--- /dev/null
+++ b/packages/shopify/src/customer/card/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/shopify/customer/index.ts b/packages/shopify/src/customer/index.ts
similarity index 100%
rename from framework/shopify/customer/index.ts
rename to packages/shopify/src/customer/index.ts
diff --git a/framework/shopify/customer/use-customer.tsx b/packages/shopify/src/customer/use-customer.tsx
similarity index 85%
rename from framework/shopify/customer/use-customer.tsx
rename to packages/shopify/src/customer/use-customer.tsx
index 5c470e7de..6fc9a53a7 100644
--- a/framework/shopify/customer/use-customer.tsx
+++ b/packages/shopify/src/customer/use-customer.tsx
@@ -1,8 +1,10 @@
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
+import useCustomer, {
+  UseCustomer,
+} from '@vercel/commerce/customer/use-customer'
 import type { CustomerHook } from '../types/customer'
-import { SWRHook } from '@commerce/utils/types'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import { getCustomerQuery, getCustomerToken } from '../utils'
-import { GetCustomerQuery, GetCustomerQueryVariables } from '../schema'
+import { GetCustomerQuery, GetCustomerQueryVariables } from '../../schema'
 
 export default useCustomer as UseCustomer<typeof handler>
 
diff --git a/framework/shopify/fetcher.ts b/packages/shopify/src/fetcher.ts
similarity index 91%
rename from framework/shopify/fetcher.ts
rename to packages/shopify/src/fetcher.ts
index 9a8d2d8d5..64f492620 100644
--- a/framework/shopify/fetcher.ts
+++ b/packages/shopify/src/fetcher.ts
@@ -1,4 +1,4 @@
-import { Fetcher } from '@commerce/utils/types'
+import { Fetcher } from '@vercel/commerce/utils/types'
 import { API_TOKEN, API_URL } from './const'
 import { handleFetchResponse } from './utils'
 
diff --git a/framework/shopify/index.tsx b/packages/shopify/src/index.tsx
similarity index 73%
rename from framework/shopify/index.tsx
rename to packages/shopify/src/index.tsx
index 6a8c6aa8b..51199bbe6 100644
--- a/framework/shopify/index.tsx
+++ b/packages/shopify/src/index.tsx
@@ -1,4 +1,7 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import {
+  getCommerceProvider,
+  useCommerce as useCoreCommerce,
+} from '@vercel/commerce'
 import { shopifyProvider, ShopifyProvider } from './provider'
 
 export { shopifyProvider }
diff --git a/framework/shopify/next.config.js b/packages/shopify/src/next.config.cjs
similarity index 100%
rename from framework/shopify/next.config.js
rename to packages/shopify/src/next.config.cjs
diff --git a/packages/shopify/src/product/use-price.tsx b/packages/shopify/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/shopify/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/shopify/product/use-search.tsx b/packages/shopify/src/product/use-search.tsx
similarity index 93%
rename from framework/shopify/product/use-search.tsx
rename to packages/shopify/src/product/use-search.tsx
index b975c03fe..582423e9f 100644
--- a/framework/shopify/product/use-search.tsx
+++ b/packages/shopify/src/product/use-search.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 
 import {
   CollectionEdge,
@@ -7,7 +7,7 @@ import {
   GetProductsFromCollectionQueryVariables,
   Product as ShopifyProduct,
   ProductEdge,
-} from '../schema'
+} from '../../schema'
 
 import {
   getAllProductsQuery,
diff --git a/framework/shopify/provider.ts b/packages/shopify/src/provider.ts
similarity index 100%
rename from framework/shopify/provider.ts
rename to packages/shopify/src/provider.ts
diff --git a/framework/shopify/types/cart.ts b/packages/shopify/src/types/cart.ts
similarity index 88%
rename from framework/shopify/types/cart.ts
rename to packages/shopify/src/types/cart.ts
index 09410740a..243d369a5 100644
--- a/framework/shopify/types/cart.ts
+++ b/packages/shopify/src/types/cart.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/cart'
+import * as Core from '@vercel/commerce/types/cart'
 
-export * from '@commerce/types/cart'
+export * from '@vercel/commerce/types/cart'
 
 export type ShopifyCart = {}
 
diff --git a/packages/shopify/src/types/checkout.ts b/packages/shopify/src/types/checkout.ts
new file mode 100644
index 000000000..d139db685
--- /dev/null
+++ b/packages/shopify/src/types/checkout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/checkout'
diff --git a/packages/shopify/src/types/common.ts b/packages/shopify/src/types/common.ts
new file mode 100644
index 000000000..23b8daa11
--- /dev/null
+++ b/packages/shopify/src/types/common.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/common'
diff --git a/packages/shopify/src/types/customer.ts b/packages/shopify/src/types/customer.ts
new file mode 100644
index 000000000..6e66366be
--- /dev/null
+++ b/packages/shopify/src/types/customer.ts
@@ -0,0 +1,5 @@
+import * as Core from '@vercel/commerce/types/customer'
+
+export * from '@vercel/commerce/types/customer'
+
+export type CustomerSchema = Core.CustomerSchema
diff --git a/framework/shopify/types/index.ts b/packages/shopify/src/types/index.ts
similarity index 100%
rename from framework/shopify/types/index.ts
rename to packages/shopify/src/types/index.ts
diff --git a/packages/shopify/src/types/login.ts b/packages/shopify/src/types/login.ts
new file mode 100644
index 000000000..ab99bf8cd
--- /dev/null
+++ b/packages/shopify/src/types/login.ts
@@ -0,0 +1,8 @@
+import * as Core from '@vercel/commerce/types/login'
+import type { CustomerAccessTokenCreateInput } from '../../schema'
+
+export * from '@vercel/commerce/types/login'
+
+export type LoginOperation = Core.LoginOperation & {
+  variables: CustomerAccessTokenCreateInput
+}
diff --git a/packages/shopify/src/types/logout.ts b/packages/shopify/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/shopify/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/framework/shopify/types/page.ts b/packages/shopify/src/types/page.ts
similarity index 68%
rename from framework/shopify/types/page.ts
rename to packages/shopify/src/types/page.ts
index 2bccfade2..ccbc29f7b 100644
--- a/framework/shopify/types/page.ts
+++ b/packages/shopify/src/types/page.ts
@@ -1,5 +1,5 @@
-import * as Core from '@commerce/types/page'
-export * from '@commerce/types/page'
+import * as Core from '@vercel/commerce/types/page'
+export * from '@vercel/commerce/types/page'
 
 export type Page = Core.Page
 
diff --git a/packages/shopify/src/types/product.ts b/packages/shopify/src/types/product.ts
new file mode 100644
index 000000000..72ca02f02
--- /dev/null
+++ b/packages/shopify/src/types/product.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/product'
diff --git a/packages/shopify/src/types/signup.ts b/packages/shopify/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/shopify/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/packages/shopify/src/types/site.ts b/packages/shopify/src/types/site.ts
new file mode 100644
index 000000000..96a2e476e
--- /dev/null
+++ b/packages/shopify/src/types/site.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/site'
diff --git a/packages/shopify/src/types/wishlist.ts b/packages/shopify/src/types/wishlist.ts
new file mode 100644
index 000000000..af92d9f63
--- /dev/null
+++ b/packages/shopify/src/types/wishlist.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/wishlist'
diff --git a/framework/shopify/utils/checkout-create.ts b/packages/shopify/src/utils/checkout-create.ts
similarity index 92%
rename from framework/shopify/utils/checkout-create.ts
rename to packages/shopify/src/utils/checkout-create.ts
index 36624ed05..2f681c95d 100644
--- a/framework/shopify/utils/checkout-create.ts
+++ b/packages/shopify/src/utils/checkout-create.ts
@@ -12,8 +12,8 @@ import {
   CheckoutLineItemInput,
   Mutation,
   MutationCheckoutCreateArgs,
-} from '../schema'
-import { FetcherOptions } from '@commerce/utils/types'
+} from '../../schema'
+import { FetcherOptions } from '@vercel/commerce/utils/types'
 
 export const checkoutCreate = async (
   fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>,
diff --git a/framework/shopify/utils/checkout-to-cart.ts b/packages/shopify/src/utils/checkout-to-cart.ts
similarity index 91%
rename from framework/shopify/utils/checkout-to-cart.ts
rename to packages/shopify/src/utils/checkout-to-cart.ts
index 159cf0d7d..97b3f0a21 100644
--- a/framework/shopify/utils/checkout-to-cart.ts
+++ b/packages/shopify/src/utils/checkout-to-cart.ts
@@ -1,5 +1,5 @@
 import type { Cart } from '../types/cart'
-import { CommerceError } from '@commerce/utils/errors'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 
 import {
   CheckoutLineItemsAddPayload,
@@ -9,7 +9,7 @@ import {
   CheckoutUserError,
   Checkout,
   Maybe,
-} from '../schema'
+} from '../../schema'
 
 import { normalizeCart } from './normalize'
 import throwUserErrors from './throw-user-errors'
diff --git a/packages/shopify/src/utils/colors.ts b/packages/shopify/src/utils/colors.ts
new file mode 100644
index 000000000..f9822c486
--- /dev/null
+++ b/packages/shopify/src/utils/colors.ts
@@ -0,0 +1,154 @@
+export const colorMap: Record<string, string> = {
+  aliceblue: '#F0F8FF',
+  antiquewhite: '#FAEBD7',
+  aqua: '#00FFFF',
+  aquamarine: '#7FFFD4',
+  azure: '#F0FFFF',
+  beige: '#F5F5DC',
+  bisque: '#FFE4C4',
+  black: '#000000',
+  blanchedalmond: '#FFEBCD',
+  blue: '#0000FF',
+  blueviolet: '#8A2BE2',
+  brown: '#A52A2A',
+  burlywood: '#DEB887',
+  burgandy: '#800020',
+  burgundy: '#800020',
+  cadetblue: '#5F9EA0',
+  chartreuse: '#7FFF00',
+  chocolate: '#D2691E',
+  coral: '#FF7F50',
+  cornflowerblue: '#6495ED',
+  cornsilk: '#FFF8DC',
+  crimson: '#DC143C',
+  cyan: '#00FFFF',
+  darkblue: '#00008B',
+  darkcyan: '#008B8B',
+  darkgoldenrod: '#B8860B',
+  darkgray: '#A9A9A9',
+  darkgreen: '#006400',
+  darkgrey: '#A9A9A9',
+  darkkhaki: '#BDB76B',
+  darkmagenta: '#8B008B',
+  darkolivegreen: '#556B2F',
+  darkorange: '#FF8C00',
+  darkorchid: '#9932CC',
+  darkred: '#8B0000',
+  darksalmon: '#E9967A',
+  darkseagreen: '#8FBC8F',
+  darkslateblue: '#483D8B',
+  darkslategray: '#2F4F4F',
+  darkslategrey: '#2F4F4F',
+  darkturquoise: '#00CED1',
+  darkviolet: '#9400D3',
+  deeppink: '#FF1493',
+  deepskyblue: '#00BFFF',
+  dimgray: '#696969',
+  dimgrey: '#696969',
+  dodgerblue: '#1E90FF',
+  firebrick: '#B22222',
+  floralwhite: '#FFFAF0',
+  forestgreen: '#228B22',
+  fuchsia: '#FF00FF',
+  gainsboro: '#DCDCDC',
+  ghostwhite: '#F8F8FF',
+  gold: '#FFD700',
+  goldenrod: '#DAA520',
+  gray: '#808080',
+  green: '#008000',
+  greenyellow: '#ADFF2F',
+  grey: '#808080',
+  honeydew: '#F0FFF0',
+  hotpink: '#FF69B4',
+  indianred: '#CD5C5C',
+  indigo: '#4B0082',
+  ivory: '#FFFFF0',
+  khaki: '#F0E68C',
+  lavender: '#E6E6FA',
+  lavenderblush: '#FFF0F5',
+  lawngreen: '#7CFC00',
+  lemonchiffon: '#FFFACD',
+  lightblue: '#ADD8E6',
+  lightcoral: '#F08080',
+  lightcyan: '#E0FFFF',
+  lightgoldenrodyellow: '#FAFAD2',
+  lightgray: '#D3D3D3',
+  lightgreen: '#90EE90',
+  lightgrey: '#D3D3D3',
+  lightpink: '#FFB6C1',
+  lightsalmon: '#FFA07A',
+  lightseagreen: '#20B2AA',
+  lightskyblue: '#87CEFA',
+  lightslategray: '#778899',
+  lightslategrey: '#778899',
+  lightsteelblue: '#B0C4DE',
+  lightyellow: '#FFFFE0',
+  lime: '#00FF00',
+  limegreen: '#32CD32',
+  linen: '#FAF0E6',
+  magenta: '#FF00FF',
+  maroon: '#800000',
+  mediumaquamarine: '#66CDAA',
+  mediumblue: '#0000CD',
+  mediumorchid: '#BA55D3',
+  mediumpurple: '#9370DB',
+  mediumseagreen: '#3CB371',
+  mediumslateblue: '#7B68EE',
+  mediumspringgreen: '#00FA9A',
+  mediumturquoise: '#48D1CC',
+  mediumvioletred: '#C71585',
+  midnightblue: '#191970',
+  mintcream: '#F5FFFA',
+  mistyrose: '#FFE4E1',
+  moccasin: '#FFE4B5',
+  navajowhite: '#FFDEAD',
+  navy: '#000080',
+  oldlace: '#FDF5E6',
+  olive: '#808000',
+  olivedrab: '#6B8E23',
+  orange: '#FFA500',
+  orangered: '#FF4500',
+  orchid: '#DA70D6',
+  palegoldenrod: '#EEE8AA',
+  palegreen: '#98FB98',
+  paleturquoise: '#AFEEEE',
+  palevioletred: '#DB7093',
+  papayawhip: '#FFEFD5',
+  peachpuff: '#FFDAB9',
+  peru: '#CD853F',
+  pink: '#FFC0CB',
+  plum: '#DDA0DD',
+  powderblue: '#B0E0E6',
+  purple: '#800080',
+  rebeccapurple: '#663399',
+  red: '#FF0000',
+  rosybrown: '#BC8F8F',
+  royalblue: '#4169E1',
+  saddlebrown: '#8B4513',
+  salmon: '#FA8072',
+  sandybrown: '#F4A460',
+  seagreen: '#2E8B57',
+  seashell: '#FFF5EE',
+  sienna: '#A0522D',
+  silver: '#C0C0C0',
+  skyblue: '#87CEEB',
+  slateblue: '#6A5ACD',
+  slategray: '#708090',
+  slategrey: '#708090',
+  spacegrey: '#65737e',
+  spacegray: '#65737e',
+  snow: '#FFFAFA',
+  springgreen: '#00FF7F',
+  steelblue: '#4682B4',
+  tan: '#D2B48C',
+  teal: '#008080',
+  thistle: '#D8BFD8',
+  tomato: '#FF6347',
+  turquoise: '#40E0D0',
+  violet: '#EE82EE',
+  wheat: '#F5DEB3',
+  white: '#FFFFFF',
+  whitesmoke: '#F5F5F5',
+  yellow: '#FFFF00',
+  yellowgreen: '#9ACD32',
+}
diff --git a/framework/shopify/utils/customer-token.ts b/packages/shopify/src/utils/customer-token.ts
similarity index 100%
rename from framework/shopify/utils/customer-token.ts
rename to packages/shopify/src/utils/customer-token.ts
diff --git a/framework/shopify/utils/get-brands.ts b/packages/shopify/src/utils/get-brands.ts
similarity index 97%
rename from framework/shopify/utils/get-brands.ts
rename to packages/shopify/src/utils/get-brands.ts
index 3065e4ae8..eb87b519d 100644
--- a/framework/shopify/utils/get-brands.ts
+++ b/packages/shopify/src/utils/get-brands.ts
@@ -1,7 +1,7 @@
 import {
   GetAllProductVendorsQuery,
   GetAllProductVendorsQueryVariables,
-} from '../schema'
+} from '../../schema'
 import { ShopifyConfig } from '../api'
 import getAllProductVendors from './queries/get-all-product-vendors-query'
 
diff --git a/framework/shopify/utils/get-categories.ts b/packages/shopify/src/utils/get-categories.ts
similarity index 93%
rename from framework/shopify/utils/get-categories.ts
rename to packages/shopify/src/utils/get-categories.ts
index 543ee2fa1..e5ca16dad 100644
--- a/framework/shopify/utils/get-categories.ts
+++ b/packages/shopify/src/utils/get-categories.ts
@@ -1,6 +1,6 @@
 import type { Category } from '../types/site'
 import { ShopifyConfig } from '../api'
-import { CollectionEdge } from '../schema'
+import { CollectionEdge } from '../../schema'
 import { normalizeCategory } from './normalize'
 import getSiteCollectionsQuery from './queries/get-all-collections-query'
 
diff --git a/framework/shopify/utils/get-checkout-id.ts b/packages/shopify/src/utils/get-checkout-id.ts
similarity index 100%
rename from framework/shopify/utils/get-checkout-id.ts
rename to packages/shopify/src/utils/get-checkout-id.ts
diff --git a/framework/shopify/utils/get-search-variables.ts b/packages/shopify/src/utils/get-search-variables.ts
similarity index 100%
rename from framework/shopify/utils/get-search-variables.ts
rename to packages/shopify/src/utils/get-search-variables.ts
diff --git a/framework/shopify/utils/get-sort-variables.ts b/packages/shopify/src/utils/get-sort-variables.ts
similarity index 100%
rename from framework/shopify/utils/get-sort-variables.ts
rename to packages/shopify/src/utils/get-sort-variables.ts
diff --git a/framework/shopify/utils/handle-account-activation.ts b/packages/shopify/src/utils/handle-account-activation.ts
similarity index 84%
rename from framework/shopify/utils/handle-account-activation.ts
rename to packages/shopify/src/utils/handle-account-activation.ts
index d11f80ba1..2519590c0 100644
--- a/framework/shopify/utils/handle-account-activation.ts
+++ b/packages/shopify/src/utils/handle-account-activation.ts
@@ -1,11 +1,11 @@
-import { FetcherOptions } from '@commerce/utils/types'
+import { FetcherOptions } from '@vercel/commerce/utils/types'
 import throwUserErrors from './throw-user-errors'
 
 import {
   MutationCustomerActivateArgs,
   MutationCustomerActivateByUrlArgs,
-} from '../schema'
-import { Mutation } from '../schema'
+} from '../../schema'
+import { Mutation } from '../../schema'
 import { customerActivateByUrlMutation } from './mutations'
 
 const handleAccountActivation = async (
diff --git a/framework/shopify/utils/handle-fetch-response.ts b/packages/shopify/src/utils/handle-fetch-response.ts
similarity index 90%
rename from framework/shopify/utils/handle-fetch-response.ts
rename to packages/shopify/src/utils/handle-fetch-response.ts
index 91d362d7d..927ab54f1 100644
--- a/framework/shopify/utils/handle-fetch-response.ts
+++ b/packages/shopify/src/utils/handle-fetch-response.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 export function getError(errors: any[] | null, status: number) {
   errors = errors ?? [{ message: 'Failed to fetch Shopify API' }]
diff --git a/framework/shopify/utils/handle-login.ts b/packages/shopify/src/utils/handle-login.ts
similarity index 87%
rename from framework/shopify/utils/handle-login.ts
rename to packages/shopify/src/utils/handle-login.ts
index de86fa1d2..dda6f6ebe 100644
--- a/framework/shopify/utils/handle-login.ts
+++ b/packages/shopify/src/utils/handle-login.ts
@@ -1,5 +1,5 @@
-import { FetcherOptions } from '@commerce/utils/types'
-import { CustomerAccessTokenCreateInput } from '../schema'
+import { FetcherOptions } from '@vercel/commerce/utils/types'
+import { CustomerAccessTokenCreateInput } from '../../schema'
 import { setCustomerToken } from './customer-token'
 import { customerAccessTokenCreateMutation } from './mutations'
 import throwUserErrors from './throw-user-errors'
diff --git a/framework/shopify/utils/index.ts b/packages/shopify/src/utils/index.ts
similarity index 100%
rename from framework/shopify/utils/index.ts
rename to packages/shopify/src/utils/index.ts
diff --git a/framework/shopify/utils/mutations/associate-customer-with-checkout.ts b/packages/shopify/src/utils/mutations/associate-customer-with-checkout.ts
similarity index 100%
rename from framework/shopify/utils/mutations/associate-customer-with-checkout.ts
rename to packages/shopify/src/utils/mutations/associate-customer-with-checkout.ts
diff --git a/framework/shopify/utils/mutations/checkout-create.ts b/packages/shopify/src/utils/mutations/checkout-create.ts
similarity index 100%
rename from framework/shopify/utils/mutations/checkout-create.ts
rename to packages/shopify/src/utils/mutations/checkout-create.ts
diff --git a/framework/shopify/utils/mutations/checkout-line-item-add.ts b/packages/shopify/src/utils/mutations/checkout-line-item-add.ts
similarity index 100%
rename from framework/shopify/utils/mutations/checkout-line-item-add.ts
rename to packages/shopify/src/utils/mutations/checkout-line-item-add.ts
diff --git a/framework/shopify/utils/mutations/checkout-line-item-remove.ts b/packages/shopify/src/utils/mutations/checkout-line-item-remove.ts
similarity index 100%
rename from framework/shopify/utils/mutations/checkout-line-item-remove.ts
rename to packages/shopify/src/utils/mutations/checkout-line-item-remove.ts
diff --git a/framework/shopify/utils/mutations/checkout-line-item-update.ts b/packages/shopify/src/utils/mutations/checkout-line-item-update.ts
similarity index 100%
rename from framework/shopify/utils/mutations/checkout-line-item-update.ts
rename to packages/shopify/src/utils/mutations/checkout-line-item-update.ts
diff --git a/framework/shopify/utils/mutations/customer-access-token-create.ts b/packages/shopify/src/utils/mutations/customer-access-token-create.ts
similarity index 100%
rename from framework/shopify/utils/mutations/customer-access-token-create.ts
rename to packages/shopify/src/utils/mutations/customer-access-token-create.ts
diff --git a/framework/shopify/utils/mutations/customer-access-token-delete.ts b/packages/shopify/src/utils/mutations/customer-access-token-delete.ts
similarity index 100%
rename from framework/shopify/utils/mutations/customer-access-token-delete.ts
rename to packages/shopify/src/utils/mutations/customer-access-token-delete.ts
diff --git a/framework/shopify/utils/mutations/customer-activate-by-url.ts b/packages/shopify/src/utils/mutations/customer-activate-by-url.ts
similarity index 100%
rename from framework/shopify/utils/mutations/customer-activate-by-url.ts
rename to packages/shopify/src/utils/mutations/customer-activate-by-url.ts
diff --git a/framework/shopify/utils/mutations/customer-activate.ts b/packages/shopify/src/utils/mutations/customer-activate.ts
similarity index 100%
rename from framework/shopify/utils/mutations/customer-activate.ts
rename to packages/shopify/src/utils/mutations/customer-activate.ts
diff --git a/framework/shopify/utils/mutations/customer-create.ts b/packages/shopify/src/utils/mutations/customer-create.ts
similarity index 100%
rename from framework/shopify/utils/mutations/customer-create.ts
rename to packages/shopify/src/utils/mutations/customer-create.ts
diff --git a/framework/shopify/utils/mutations/index.ts b/packages/shopify/src/utils/mutations/index.ts
similarity index 100%
rename from framework/shopify/utils/mutations/index.ts
rename to packages/shopify/src/utils/mutations/index.ts
diff --git a/framework/shopify/utils/normalize.ts b/packages/shopify/src/utils/normalize.ts
similarity index 98%
rename from framework/shopify/utils/normalize.ts
rename to packages/shopify/src/utils/normalize.ts
index 96262f418..2782f59dd 100644
--- a/framework/shopify/utils/normalize.ts
+++ b/packages/shopify/src/utils/normalize.ts
@@ -15,8 +15,8 @@ import {
   Page as ShopifyPage,
   PageEdge,
   Collection,
-} from '../schema'
-import { colorMap } from '@lib/colors'
+} from '../../schema'
+import { colorMap } from './colors'
 
 const money = ({ amount, currencyCode }: MoneyV2) => {
   return {
diff --git a/framework/shopify/utils/queries/get-all-collections-query.ts b/packages/shopify/src/utils/queries/get-all-collections-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-all-collections-query.ts
rename to packages/shopify/src/utils/queries/get-all-collections-query.ts
diff --git a/framework/shopify/utils/queries/get-all-pages-query.ts b/packages/shopify/src/utils/queries/get-all-pages-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-all-pages-query.ts
rename to packages/shopify/src/utils/queries/get-all-pages-query.ts
diff --git a/framework/shopify/utils/queries/get-all-product-vendors-query.ts b/packages/shopify/src/utils/queries/get-all-product-vendors-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-all-product-vendors-query.ts
rename to packages/shopify/src/utils/queries/get-all-product-vendors-query.ts
diff --git a/framework/shopify/utils/queries/get-all-products-paths-query.ts b/packages/shopify/src/utils/queries/get-all-products-paths-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-all-products-paths-query.ts
rename to packages/shopify/src/utils/queries/get-all-products-paths-query.ts
diff --git a/framework/shopify/utils/queries/get-all-products-query.ts b/packages/shopify/src/utils/queries/get-all-products-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-all-products-query.ts
rename to packages/shopify/src/utils/queries/get-all-products-query.ts
diff --git a/framework/shopify/utils/queries/get-checkout-query.ts b/packages/shopify/src/utils/queries/get-checkout-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-checkout-query.ts
rename to packages/shopify/src/utils/queries/get-checkout-query.ts
diff --git a/framework/shopify/utils/queries/get-collection-products-query.ts b/packages/shopify/src/utils/queries/get-collection-products-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-collection-products-query.ts
rename to packages/shopify/src/utils/queries/get-collection-products-query.ts
diff --git a/framework/shopify/utils/queries/get-customer-id-query.ts b/packages/shopify/src/utils/queries/get-customer-id-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-customer-id-query.ts
rename to packages/shopify/src/utils/queries/get-customer-id-query.ts
diff --git a/framework/shopify/utils/queries/get-customer-query.ts b/packages/shopify/src/utils/queries/get-customer-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-customer-query.ts
rename to packages/shopify/src/utils/queries/get-customer-query.ts
diff --git a/framework/shopify/utils/queries/get-page-query.ts b/packages/shopify/src/utils/queries/get-page-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-page-query.ts
rename to packages/shopify/src/utils/queries/get-page-query.ts
diff --git a/framework/shopify/utils/queries/get-product-query.ts b/packages/shopify/src/utils/queries/get-product-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-product-query.ts
rename to packages/shopify/src/utils/queries/get-product-query.ts
diff --git a/framework/shopify/utils/queries/get-site-info-query.ts b/packages/shopify/src/utils/queries/get-site-info-query.ts
similarity index 100%
rename from framework/shopify/utils/queries/get-site-info-query.ts
rename to packages/shopify/src/utils/queries/get-site-info-query.ts
diff --git a/framework/shopify/utils/queries/index.ts b/packages/shopify/src/utils/queries/index.ts
similarity index 100%
rename from framework/shopify/utils/queries/index.ts
rename to packages/shopify/src/utils/queries/index.ts
diff --git a/framework/shopify/utils/throw-user-errors.ts b/packages/shopify/src/utils/throw-user-errors.ts
similarity index 90%
rename from framework/shopify/utils/throw-user-errors.ts
rename to packages/shopify/src/utils/throw-user-errors.ts
index 5488ba282..2173b2b40 100644
--- a/framework/shopify/utils/throw-user-errors.ts
+++ b/packages/shopify/src/utils/throw-user-errors.ts
@@ -1,11 +1,11 @@
-import { ValidationError } from '@commerce/utils/errors'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 
 import {
   CheckoutErrorCode,
   CheckoutUserError,
   CustomerErrorCode,
   CustomerUserError,
-} from '../schema'
+} from '../../schema'
 
 export type UserErrors = Array<CheckoutUserError | CustomerUserError>
 
diff --git a/framework/shopify/wishlist/use-add-item.tsx b/packages/shopify/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/shopify/wishlist/use-add-item.tsx
rename to packages/shopify/src/wishlist/use-add-item.tsx
diff --git a/framework/shopify/wishlist/use-remove-item.tsx b/packages/shopify/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/shopify/wishlist/use-remove-item.tsx
rename to packages/shopify/src/wishlist/use-remove-item.tsx
diff --git a/framework/shopify/wishlist/use-wishlist.tsx b/packages/shopify/src/wishlist/use-wishlist.tsx
similarity index 90%
rename from framework/shopify/wishlist/use-wishlist.tsx
rename to packages/shopify/src/wishlist/use-wishlist.tsx
index d2ce9db5b..c95195040 100644
--- a/framework/shopify/wishlist/use-wishlist.tsx
+++ b/packages/shopify/src/wishlist/use-wishlist.tsx
@@ -1,8 +1,8 @@
 // TODO: replace this hook and other wishlist hooks with a handler, or remove them if
 // Shopify doesn't have a wishlist
 
-import { HookFetcher } from '@commerce/utils/types'
-import { Product } from '../schema'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import { Product } from '../../schema'
 
 const defaultOpts = {}
 
diff --git a/packages/shopify/tsconfig.json b/packages/shopify/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/shopify/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/spree/.env.template b/packages/spree/.env.template
similarity index 100%
rename from framework/spree/.env.template
rename to packages/spree/.env.template
diff --git a/packages/spree/.prettierignore b/packages/spree/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/spree/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/spree/.prettierrc b/packages/spree/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/spree/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/spree/README-assets/screenshots.png b/packages/spree/README-assets/screenshots.png
similarity index 100%
rename from framework/spree/README-assets/screenshots.png
rename to packages/spree/README-assets/screenshots.png
diff --git a/framework/spree/README.md b/packages/spree/README.md
similarity index 88%
rename from framework/spree/README.md
rename to packages/spree/README.md
index 7bbc733ab..0b172cb19 100644
--- a/framework/spree/README.md
+++ b/packages/spree/README.md
@@ -12,10 +12,10 @@ An integration of [Spree Commerce](https://spreecommerce.org/) within NextJS Com
 
 1. Setup Nextjs Commerce - [instructions for setting up NextJS Commerce][2].
 
-1. Copy the `.env.template` file in this directory (`/framework/spree`) to `.env.local` in the main directory
+1. Copy the `.env.template` file in this directory (`/packages/spree`) to `.env.local` in the main directory
 
    ```bash
-   cp framework/spree/.env.template .env.local
+   cp packages/spree/.env.template .env.local
    ```
 
 1. Set `NEXT_PUBLIC_SPREE_CATEGORIES_TAXONOMY_PERMALINK` and `NEXT_PUBLIC_SPREE_BRANDS_TAXONOMY_PERMALINK` environment variables:
diff --git a/packages/spree/package.json b/packages/spree/package.json
new file mode 100644
index 000000000..cbdfa208a
--- /dev/null
+++ b/packages/spree/package.json
@@ -0,0 +1,74 @@
+{
+  "name": "@vercel/commerce-spree",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@spree/storefront-api-v2-sdk": "^5.1.1",
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1",
+    "swr": "^1.2.0"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/spree/api/endpoints/cart/index.ts b/packages/spree/src/api/endpoints/cart/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/cart/index.ts
rename to packages/spree/src/api/endpoints/cart/index.ts
diff --git a/framework/spree/api/endpoints/catalog/index.ts b/packages/spree/src/api/endpoints/catalog/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/catalog/index.ts
rename to packages/spree/src/api/endpoints/catalog/index.ts
diff --git a/framework/spree/api/endpoints/catalog/products.ts b/packages/spree/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/spree/api/endpoints/catalog/products.ts
rename to packages/spree/src/api/endpoints/catalog/products.ts
diff --git a/framework/spree/api/endpoints/checkout/get-checkout.ts b/packages/spree/src/api/endpoints/checkout/get-checkout.ts
similarity index 100%
rename from framework/spree/api/endpoints/checkout/get-checkout.ts
rename to packages/spree/src/api/endpoints/checkout/get-checkout.ts
diff --git a/framework/spree/api/endpoints/checkout/index.ts b/packages/spree/src/api/endpoints/checkout/index.ts
similarity index 61%
rename from framework/spree/api/endpoints/checkout/index.ts
rename to packages/spree/src/api/endpoints/checkout/index.ts
index 0a5ee9e72..2be2a5ded 100644
--- a/framework/spree/api/endpoints/checkout/index.ts
+++ b/packages/spree/src/api/endpoints/checkout/index.ts
@@ -1,7 +1,7 @@
-import { createEndpoint } from '@commerce/api'
-import type { GetAPISchema, CommerceAPI } from '@commerce/api'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
-import type { CheckoutSchema } from '@commerce/types/checkout'
+import { createEndpoint } from '@vercel/commerce/api'
+import type { GetAPISchema, CommerceAPI } from '@vercel/commerce/api'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
+import type { CheckoutSchema } from '@vercel/commerce/types/checkout'
 import getCheckout from './get-checkout'
 import type { SpreeApiProvider } from '../..'
 
diff --git a/framework/spree/api/endpoints/customer/address.ts b/packages/spree/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/spree/api/endpoints/customer/address.ts
rename to packages/spree/src/api/endpoints/customer/address.ts
diff --git a/framework/spree/api/endpoints/customer/card.ts b/packages/spree/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/spree/api/endpoints/customer/card.ts
rename to packages/spree/src/api/endpoints/customer/card.ts
diff --git a/framework/spree/api/endpoints/customer/index.ts b/packages/spree/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/customer/index.ts
rename to packages/spree/src/api/endpoints/customer/index.ts
diff --git a/framework/spree/api/endpoints/login/index.ts b/packages/spree/src/api/endpoints/login/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/login/index.ts
rename to packages/spree/src/api/endpoints/login/index.ts
diff --git a/framework/spree/api/endpoints/logout/index.ts b/packages/spree/src/api/endpoints/logout/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/logout/index.ts
rename to packages/spree/src/api/endpoints/logout/index.ts
diff --git a/framework/spree/api/endpoints/signup/index.ts b/packages/spree/src/api/endpoints/signup/index.ts
similarity index 100%
rename from framework/spree/api/endpoints/signup/index.ts
rename to packages/spree/src/api/endpoints/signup/index.ts
diff --git a/framework/spree/api/endpoints/wishlist/index.tsx b/packages/spree/src/api/endpoints/wishlist/index.tsx
similarity index 100%
rename from framework/spree/api/endpoints/wishlist/index.tsx
rename to packages/spree/src/api/endpoints/wishlist/index.tsx
diff --git a/framework/spree/api/index.ts b/packages/spree/src/api/index.ts
similarity index 89%
rename from framework/spree/api/index.ts
rename to packages/spree/src/api/index.ts
index d9ef79e1a..3971ed540 100644
--- a/framework/spree/api/index.ts
+++ b/packages/spree/src/api/index.ts
@@ -1,5 +1,5 @@
-import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
-import { getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
+import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
 import createApiFetch from './utils/create-api-fetch'
 
 import getAllPages from './operations/get-all-pages'
diff --git a/framework/spree/api/operations/get-all-pages.ts b/packages/spree/src/api/operations/get-all-pages.ts
similarity index 94%
rename from framework/spree/api/operations/get-all-pages.ts
rename to packages/spree/src/api/operations/get-all-pages.ts
index 580a74999..b5fae62b1 100644
--- a/framework/spree/api/operations/get-all-pages.ts
+++ b/packages/spree/src/api/operations/get-all-pages.ts
@@ -1,8 +1,8 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import type { GetAllPagesOperation, Page } from '@commerce/types/page'
+} from '@vercel/commerce/api/operations'
+import type { GetAllPagesOperation, Page } from '@vercel/commerce/types/page'
 import { requireConfigValue } from '../../isomorphic-config'
 import normalizePage from '../../utils/normalizations/normalize-page'
 import type { IPages } from '@spree/storefront-api-v2-sdk/types/interfaces/Page'
diff --git a/framework/spree/api/operations/get-all-product-paths.ts b/packages/spree/src/api/operations/get-all-product-paths.ts
similarity index 93%
rename from framework/spree/api/operations/get-all-product-paths.ts
rename to packages/spree/src/api/operations/get-all-product-paths.ts
index 4795d1fdb..424f46c4c 100644
--- a/framework/spree/api/operations/get-all-product-paths.ts
+++ b/packages/spree/src/api/operations/get-all-product-paths.ts
@@ -1,9 +1,9 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import type { Product } from '@commerce/types/product'
-import type { GetAllProductPathsOperation } from '@commerce/types/product'
+} from '@vercel/commerce/api/operations'
+import type { Product } from '@vercel/commerce/types/product'
+import type { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
 import { requireConfigValue } from '../../isomorphic-config'
 import type { IProductsSlugs, SpreeSdkVariables } from '../../types'
 import getProductPath from '../../utils/get-product-path'
diff --git a/framework/spree/api/operations/get-all-products.ts b/packages/spree/src/api/operations/get-all-products.ts
similarity index 93%
rename from framework/spree/api/operations/get-all-products.ts
rename to packages/spree/src/api/operations/get-all-products.ts
index a292e6097..2b718d929 100644
--- a/framework/spree/api/operations/get-all-products.ts
+++ b/packages/spree/src/api/operations/get-all-products.ts
@@ -1,9 +1,9 @@
-import type { Product } from '@commerce/types/product'
-import type { GetAllProductsOperation } from '@commerce/types/product'
+import type { Product } from '@vercel/commerce/types/product'
+import type { GetAllProductsOperation } from '@vercel/commerce/types/product'
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { IProducts } from '@spree/storefront-api-v2-sdk/types/interfaces/Product'
 import type { SpreeApiConfig, SpreeApiProvider } from '../index'
 import type { SpreeSdkVariables } from '../../types'
diff --git a/framework/spree/api/operations/get-customer-wishlist.ts b/packages/spree/src/api/operations/get-customer-wishlist.ts
similarity index 100%
rename from framework/spree/api/operations/get-customer-wishlist.ts
rename to packages/spree/src/api/operations/get-customer-wishlist.ts
diff --git a/framework/spree/api/operations/get-page.ts b/packages/spree/src/api/operations/get-page.ts
similarity index 94%
rename from framework/spree/api/operations/get-page.ts
rename to packages/spree/src/api/operations/get-page.ts
index ecb02755d..711870e72 100644
--- a/framework/spree/api/operations/get-page.ts
+++ b/packages/spree/src/api/operations/get-page.ts
@@ -1,8 +1,8 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import type { GetPageOperation } from '@commerce/types/page'
+} from '@vercel/commerce/api/operations'
+import type { GetPageOperation } from '@vercel/commerce/types/page'
 import type { SpreeSdkVariables } from '../../types'
 import type { SpreeApiConfig, SpreeApiProvider } from '..'
 import type { IPage } from '@spree/storefront-api-v2-sdk/types/interfaces/Page'
diff --git a/framework/spree/api/operations/get-product.ts b/packages/spree/src/api/operations/get-product.ts
similarity index 95%
rename from framework/spree/api/operations/get-product.ts
rename to packages/spree/src/api/operations/get-product.ts
index 18e9643cd..bd93791de 100644
--- a/framework/spree/api/operations/get-product.ts
+++ b/packages/spree/src/api/operations/get-product.ts
@@ -1,9 +1,9 @@
 import type { SpreeApiConfig, SpreeApiProvider } from '../index'
-import type { GetProductOperation } from '@commerce/types/product'
+import type { GetProductOperation } from '@vercel/commerce/types/product'
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { IProduct } from '@spree/storefront-api-v2-sdk/types/interfaces/Product'
 import type { SpreeSdkVariables } from '../../types'
 import MissingSlugVariableError from '../../errors/MissingSlugVariableError'
diff --git a/framework/spree/api/operations/get-site-info.ts b/packages/spree/src/api/operations/get-site-info.ts
similarity index 96%
rename from framework/spree/api/operations/get-site-info.ts
rename to packages/spree/src/api/operations/get-site-info.ts
index 4d9aaf0ad..13b11e4a4 100644
--- a/framework/spree/api/operations/get-site-info.ts
+++ b/packages/spree/src/api/operations/get-site-info.ts
@@ -1,8 +1,11 @@
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import type { Category, GetSiteInfoOperation } from '@commerce/types/site'
+} from '@vercel/commerce/api/operations'
+import type {
+  Category,
+  GetSiteInfoOperation,
+} from '@vercel/commerce/types/site'
 import type {
   ITaxons,
   TaxonAttr,
diff --git a/framework/spree/api/operations/index.ts b/packages/spree/src/api/operations/index.ts
similarity index 100%
rename from framework/spree/api/operations/index.ts
rename to packages/spree/src/api/operations/index.ts
diff --git a/framework/spree/api/utils/create-api-fetch.ts b/packages/spree/src/api/utils/create-api-fetch.ts
similarity index 97%
rename from framework/spree/api/utils/create-api-fetch.ts
rename to packages/spree/src/api/utils/create-api-fetch.ts
index f6810592b..b26a2fb11 100644
--- a/framework/spree/api/utils/create-api-fetch.ts
+++ b/packages/spree/src/api/utils/create-api-fetch.ts
@@ -5,7 +5,7 @@ import convertSpreeErrorToGraphQlError from '../../utils/convert-spree-error-to-
 import type { ResultResponse } from '@spree/storefront-api-v2-sdk/types/interfaces/ResultResponse'
 import getSpreeSdkMethodFromEndpointPath from '../../utils/get-spree-sdk-method-from-endpoint-path'
 import SpreeSdkMethodFromEndpointPathError from '../../errors/SpreeSdkMethodFromEndpointPathError'
-import { GraphQLFetcher, GraphQLFetcherResult } from '@commerce/api'
+import { GraphQLFetcher, GraphQLFetcherResult } from '@vercel/commerce/api'
 import createCustomizedFetchFetcher, {
   fetchResponseKey,
 } from '../../utils/create-customized-fetch-fetcher'
diff --git a/framework/spree/api/utils/fetch.ts b/packages/spree/src/api/utils/fetch.ts
similarity index 100%
rename from framework/spree/api/utils/fetch.ts
rename to packages/spree/src/api/utils/fetch.ts
diff --git a/framework/spree/auth/index.ts b/packages/spree/src/auth/index.ts
similarity index 100%
rename from framework/spree/auth/index.ts
rename to packages/spree/src/auth/index.ts
diff --git a/framework/spree/auth/use-login.tsx b/packages/spree/src/auth/use-login.tsx
similarity index 88%
rename from framework/spree/auth/use-login.tsx
rename to packages/spree/src/auth/use-login.tsx
index 7398461e3..b23b8a649 100644
--- a/framework/spree/auth/use-login.tsx
+++ b/packages/spree/src/auth/use-login.tsx
@@ -1,9 +1,9 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
-import type { LoginHook } from '@commerce/types/login'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
+import type { LoginHook } from '@vercel/commerce/types/login'
 import type { AuthTokenAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Authentication'
-import { FetcherError, ValidationError } from '@commerce/utils/errors'
+import { FetcherError, ValidationError } from '@vercel/commerce/utils/errors'
 import useCustomer from '../customer/use-customer'
 import useCart from '../cart/use-cart'
 import useWishlist from '../wishlist/use-wishlist'
diff --git a/framework/spree/auth/use-logout.tsx b/packages/spree/src/auth/use-logout.tsx
similarity index 65%
rename from framework/spree/auth/use-logout.tsx
rename to packages/spree/src/auth/use-logout.tsx
index 0d8eb4bc9..8b2202123 100644
--- a/framework/spree/auth/use-logout.tsx
+++ b/packages/spree/src/auth/use-logout.tsx
@@ -1,6 +1,6 @@
-import { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
-import type { LogoutHook } from '@commerce/types/logout'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
+import type { LogoutHook } from '@vercel/commerce/types/logout'
 import { useCallback } from 'react'
 import useCustomer from '../customer/use-customer'
 import useCart from '../cart/use-cart'
@@ -52,28 +52,29 @@ export const handler: MutationHook<LogoutHook> = {
     return null
   },
   useHook: ({ fetch }) => {
-    const useWrappedHook: ReturnType<MutationHook<LogoutHook>['useHook']> =
-      () => {
-        const customer = useCustomer({
-          swrOptions: { isPaused: () => true },
-        })
-        const cart = useCart({
-          swrOptions: { isPaused: () => true },
-        })
-        const wishlist = useWishlist({
-          swrOptions: { isPaused: () => true },
-        })
+    const useWrappedHook: ReturnType<
+      MutationHook<LogoutHook>['useHook']
+    > = () => {
+      const customer = useCustomer({
+        swrOptions: { isPaused: () => true },
+      })
+      const cart = useCart({
+        swrOptions: { isPaused: () => true },
+      })
+      const wishlist = useWishlist({
+        swrOptions: { isPaused: () => true },
+      })
 
-        return useCallback(async () => {
-          const data = await fetch()
+      return useCallback(async () => {
+        const data = await fetch()
 
-          await customer.mutate(null, false)
-          await cart.mutate(null, false)
-          await wishlist.mutate(null, false)
+        await customer.mutate(null, false)
+        await cart.mutate(null, false)
+        await wishlist.mutate(null, false)
 
-          return data
-        }, [customer, cart, wishlist])
-      }
+        return data
+      }, [customer, cart, wishlist])
+    }
 
     return useWrappedHook
   },
diff --git a/framework/spree/auth/use-signup.tsx b/packages/spree/src/auth/use-signup.tsx
similarity index 87%
rename from framework/spree/auth/use-signup.tsx
rename to packages/spree/src/auth/use-signup.tsx
index 46e87a291..7dd8879eb 100644
--- a/framework/spree/auth/use-signup.tsx
+++ b/packages/spree/src/auth/use-signup.tsx
@@ -1,9 +1,9 @@
 import { useCallback } from 'react'
-import type { GraphQLFetcherResult } from '@commerce/api'
-import type { MutationHook } from '@commerce/utils/types'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
-import type { SignupHook } from '@commerce/types/signup'
-import { ValidationError } from '@commerce/utils/errors'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
+import type { SignupHook } from '@vercel/commerce/types/signup'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import type { IAccount } from '@spree/storefront-api-v2-sdk/types/interfaces/Account'
 import type { AuthTokenAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Authentication'
 import useCustomer from '../customer/use-customer'
diff --git a/framework/spree/cart/index.ts b/packages/spree/src/cart/index.ts
similarity index 100%
rename from framework/spree/cart/index.ts
rename to packages/spree/src/cart/index.ts
diff --git a/framework/spree/cart/use-add-item.tsx b/packages/spree/src/cart/use-add-item.tsx
similarity index 80%
rename from framework/spree/cart/use-add-item.tsx
rename to packages/spree/src/cart/use-add-item.tsx
index 74bdd633f..5f7d1f4d5 100644
--- a/framework/spree/cart/use-add-item.tsx
+++ b/packages/spree/src/cart/use-add-item.tsx
@@ -1,18 +1,18 @@
-import useAddItem from '@commerce/cart/use-add-item'
-import type { UseAddItem } from '@commerce/cart/use-add-item'
-import type { MutationHook } from '@commerce/utils/types'
+import useAddItem from '@vercel/commerce/cart/use-add-item'
+import type { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 import { useCallback } from 'react'
 import useCart from './use-cart'
-import type { AddItemHook } from '@commerce/types/cart'
+import type { AddItemHook } from '@vercel/commerce/types/cart'
 import normalizeCart from '../utils/normalizations/normalize-cart'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
 import type { AddItem } from '@spree/storefront-api-v2-sdk/types/interfaces/endpoints/CartClass'
 import { setCartToken } from '../utils/tokens/cart-token'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import createEmptyCart from '../utils/create-empty-cart'
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import isLoggedIn from '../utils/tokens/is-logged-in'
 
 export default useAddItem as UseAddItem<typeof handler>
@@ -96,21 +96,22 @@ export const handler: MutationHook<AddItemHook> = {
     }
   },
   useHook: ({ fetch }) => {
-    const useWrappedHook: ReturnType<MutationHook<AddItemHook>['useHook']> =
-      () => {
-        const { mutate } = useCart()
+    const useWrappedHook: ReturnType<
+      MutationHook<AddItemHook>['useHook']
+    > = () => {
+      const { mutate } = useCart()
 
-        return useCallback(
-          async (input) => {
-            const data = await fetch({ input })
+      return useCallback(
+        async (input) => {
+          const data = await fetch({ input })
 
-            await mutate(data, false)
+          await mutate(data, false)
 
-            return data
-          },
-          [mutate]
-        )
-      }
+          return data
+        },
+        [mutate]
+      )
+    }
 
     return useWrappedHook
   },
diff --git a/framework/spree/cart/use-cart.tsx b/packages/spree/src/cart/use-cart.tsx
similarity index 89%
rename from framework/spree/cart/use-cart.tsx
rename to packages/spree/src/cart/use-cart.tsx
index e700c27fa..699a023e1 100644
--- a/framework/spree/cart/use-cart.tsx
+++ b/packages/spree/src/cart/use-cart.tsx
@@ -1,13 +1,13 @@
 import { useMemo } from 'react'
-import type { SWRHook } from '@commerce/utils/types'
-import useCart from '@commerce/cart/use-cart'
-import type { UseCart } from '@commerce/cart/use-cart'
-import type { GetCartHook } from '@commerce/types/cart'
+import type { SWRHook } from '@vercel/commerce/utils/types'
+import useCart from '@vercel/commerce/cart/use-cart'
+import type { UseCart } from '@vercel/commerce/cart/use-cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
 import normalizeCart from '../utils/normalizations/normalize-cart'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import { setCartToken } from '../utils/tokens/cart-token'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import isLoggedIn from '../utils/tokens/is-logged-in'
@@ -21,7 +21,7 @@ export default useCart as UseCart<typeof handler>
 
 // This handler avoids calling /api/cart.
 // There doesn't seem to be a good reason to call it.
-// So far, only @framework/bigcommerce uses it.
+// So far, only bigcommerce uses it.
 export const handler: SWRHook<GetCartHook> = {
   // Provide fetchOptions for SWR cache key
   fetchOptions: {
diff --git a/framework/spree/cart/use-remove-item.tsx b/packages/spree/src/cart/use-remove-item.tsx
similarity index 74%
rename from framework/spree/cart/use-remove-item.tsx
rename to packages/spree/src/cart/use-remove-item.tsx
index 42e7536a9..6bbecd32e 100644
--- a/framework/spree/cart/use-remove-item.tsx
+++ b/packages/spree/src/cart/use-remove-item.tsx
@@ -1,18 +1,18 @@
-import type { MutationHook } from '@commerce/utils/types'
-import useRemoveItem from '@commerce/cart/use-remove-item'
-import type { UseRemoveItem } from '@commerce/cart/use-remove-item'
-import type { RemoveItemHook } from '@commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useRemoveItem from '@vercel/commerce/cart/use-remove-item'
+import type { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
+import type { RemoveItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 import { useCallback } from 'react'
 import normalizeCart from '../utils/normalizations/normalize-cart'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { IQuery } from '@spree/storefront-api-v2-sdk/types/interfaces/Query'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import createEmptyCart from '../utils/create-empty-cart'
 import { setCartToken } from '../utils/tokens/cart-token'
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import isLoggedIn from '../utils/tokens/is-logged-in'
 
 export default useRemoveItem as UseRemoveItem<typeof handler>
@@ -94,24 +94,25 @@ export const handler: MutationHook<RemoveItemHook> = {
     }
   },
   useHook: ({ fetch }) => {
-    const useWrappedHook: ReturnType<MutationHook<RemoveItemHook>['useHook']> =
-      () => {
-        const { mutate } = useCart()
+    const useWrappedHook: ReturnType<
+      MutationHook<RemoveItemHook>['useHook']
+    > = () => {
+      const { mutate } = useCart()
 
-        return useCallback(
-          async (input) => {
-            const data = await fetch({ input: { itemId: input.id } })
+      return useCallback(
+        async (input) => {
+          const data = await fetch({ input: { itemId: input.id } })
 
-            // Upon calling cart.removeItem, Spree returns the old version of the cart,
-            // with the already removed line item. Invalidate the useCart mutation
-            // to fetch the cart again.
-            await mutate(data, true)
+          // Upon calling cart.removeItem, Spree returns the old version of the cart,
+          // with the already removed line item. Invalidate the useCart mutation
+          // to fetch the cart again.
+          await mutate(data, true)
 
-            return data
-          },
-          [mutate]
-        )
-      }
+          return data
+        },
+        [mutate]
+      )
+    }
 
     return useWrappedHook
   },
diff --git a/framework/spree/cart/use-update-item.tsx b/packages/spree/src/cart/use-update-item.tsx
similarity index 68%
rename from framework/spree/cart/use-update-item.tsx
rename to packages/spree/src/cart/use-update-item.tsx
index 86b8599fa..679d68ac7 100644
--- a/framework/spree/cart/use-update-item.tsx
+++ b/packages/spree/src/cart/use-update-item.tsx
@@ -1,12 +1,14 @@
-import type { MutationHook } from '@commerce/utils/types'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
-import type { UpdateItemHook } from '@commerce/types/cart'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useUpdateItem, {
+  UseUpdateItem,
+} from '@vercel/commerce/cart/use-update-item'
+import type { UpdateItemHook } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 import { useMemo } from 'react'
-import { FetcherError, ValidationError } from '@commerce/utils/errors'
+import { FetcherError, ValidationError } from '@vercel/commerce/utils/errors'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
 import type { SetQuantity } from '@spree/storefront-api-v2-sdk/types/interfaces/endpoints/CartClass'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
 import normalizeCart from '../utils/normalizations/normalize-cart'
 import debounce from 'lodash.debounce'
@@ -103,42 +105,43 @@ export const handler: MutationHook<UpdateItemHook> = {
     }
   },
   useHook: ({ fetch }) => {
-    const useWrappedHook: ReturnType<MutationHook<UpdateItemHook>['useHook']> =
-      (context) => {
-        const { mutate } = useCart()
+    const useWrappedHook: ReturnType<
+      MutationHook<UpdateItemHook>['useHook']
+    > = (context) => {
+      const { mutate } = useCart()
 
-        return useMemo(
-          () =>
-            debounce(async (input: UpdateItemHook['actionInput']) => {
-              const itemId = context?.item?.id
-              const productId = input.productId ?? context?.item?.productId
-              const variantId = input.variantId ?? context?.item?.variantId
-              const quantity = input.quantity
+      return useMemo(
+        () =>
+          debounce(async (input: UpdateItemHook['actionInput']) => {
+            const itemId = context?.item?.id
+            const productId = input.productId ?? context?.item?.productId
+            const variantId = input.variantId ?? context?.item?.variantId
+            const quantity = input.quantity
 
-              if (!itemId || !productId || !variantId) {
-                throw new ValidationError({
-                  message: 'Invalid input used for this operation',
-                })
-              }
-
-              const data = await fetch({
-                input: {
-                  item: {
-                    productId,
-                    variantId,
-                    quantity,
-                  },
-                  itemId,
-                },
+            if (!itemId || !productId || !variantId) {
+              throw new ValidationError({
+                message: 'Invalid input used for this operation',
               })
+            }
 
-              await mutate(data, false)
+            const data = await fetch({
+              input: {
+                item: {
+                  productId,
+                  variantId,
+                  quantity,
+                },
+                itemId,
+              },
+            })
 
-              return data
-            }, context?.wait ?? 500),
-          [mutate, context]
-        )
-      }
+            await mutate(data, false)
+
+            return data
+          }, context?.wait ?? 500),
+        [mutate, context]
+      )
+    }
 
     return useWrappedHook
   },
diff --git a/framework/spree/checkout/use-checkout.tsx b/packages/spree/src/checkout/use-checkout.tsx
similarity index 71%
rename from framework/spree/checkout/use-checkout.tsx
rename to packages/spree/src/checkout/use-checkout.tsx
index dfd7fe02f..bd8e3ac75 100644
--- a/framework/spree/checkout/use-checkout.tsx
+++ b/packages/spree/src/checkout/use-checkout.tsx
@@ -1,5 +1,7 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, {
+  UseCheckout,
+} from '@vercel/commerce/checkout/use-checkout'
 
 export default useCheckout as UseCheckout<typeof handler>
 
diff --git a/framework/spree/commerce.config.json b/packages/spree/src/commerce.config.json
similarity index 100%
rename from framework/spree/commerce.config.json
rename to packages/spree/src/commerce.config.json
diff --git a/framework/spree/customer/address/use-add-item.tsx b/packages/spree/src/customer/address/use-add-item.tsx
similarity index 60%
rename from framework/spree/customer/address/use-add-item.tsx
rename to packages/spree/src/customer/address/use-add-item.tsx
index c2f645a16..63296809d 100644
--- a/framework/spree/customer/address/use-add-item.tsx
+++ b/packages/spree/src/customer/address/use-add-item.tsx
@@ -1,6 +1,6 @@
-import useAddItem from '@commerce/customer/address/use-add-item'
-import type { UseAddItem } from '@commerce/customer/address/use-add-item'
-import type { MutationHook } from '@commerce/utils/types'
+import useAddItem from '@vercel/commerce/customer/address/use-add-item'
+import type { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/spree/customer/card/use-add-item.tsx b/packages/spree/src/customer/card/use-add-item.tsx
similarity index 62%
rename from framework/spree/customer/card/use-add-item.tsx
rename to packages/spree/src/customer/card/use-add-item.tsx
index a8bb3cd88..402811453 100644
--- a/framework/spree/customer/card/use-add-item.tsx
+++ b/packages/spree/src/customer/card/use-add-item.tsx
@@ -1,6 +1,6 @@
-import useAddItem from '@commerce/customer/address/use-add-item'
-import type { UseAddItem } from '@commerce/customer/address/use-add-item'
-import type { MutationHook } from '@commerce/utils/types'
+import useAddItem from '@vercel/commerce/customer/address/use-add-item'
+import type { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
 
 export default useAddItem as UseAddItem<typeof handler>
 
diff --git a/framework/spree/customer/index.ts b/packages/spree/src/customer/index.ts
similarity index 100%
rename from framework/spree/customer/index.ts
rename to packages/spree/src/customer/index.ts
diff --git a/framework/spree/customer/use-customer.tsx b/packages/spree/src/customer/use-customer.tsx
similarity index 82%
rename from framework/spree/customer/use-customer.tsx
rename to packages/spree/src/customer/use-customer.tsx
index 647645ac2..56f330d26 100644
--- a/framework/spree/customer/use-customer.tsx
+++ b/packages/spree/src/customer/use-customer.tsx
@@ -1,11 +1,11 @@
-import type { SWRHook } from '@commerce/utils/types'
-import useCustomer from '@commerce/customer/use-customer'
-import type { UseCustomer } from '@commerce/customer/use-customer'
-import type { CustomerHook } from '@commerce/types/customer'
+import type { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer from '@vercel/commerce/customer/use-customer'
+import type { UseCustomer } from '@vercel/commerce/customer/use-customer'
+import type { CustomerHook } from '@vercel/commerce/types/customer'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { IAccount } from '@spree/storefront-api-v2-sdk/types/interfaces/Account'
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import normalizeUser from '../utils/normalizations/normalize-user'
 import isLoggedIn from '../utils/tokens/is-logged-in'
 import ensureIToken from '../utils/tokens/ensure-itoken'
diff --git a/framework/spree/errors/AccessTokenError.ts b/packages/spree/src/errors/AccessTokenError.ts
similarity index 100%
rename from framework/spree/errors/AccessTokenError.ts
rename to packages/spree/src/errors/AccessTokenError.ts
diff --git a/framework/spree/errors/MisconfigurationError.ts b/packages/spree/src/errors/MisconfigurationError.ts
similarity index 100%
rename from framework/spree/errors/MisconfigurationError.ts
rename to packages/spree/src/errors/MisconfigurationError.ts
diff --git a/framework/spree/errors/MissingConfigurationValueError.ts b/packages/spree/src/errors/MissingConfigurationValueError.ts
similarity index 100%
rename from framework/spree/errors/MissingConfigurationValueError.ts
rename to packages/spree/src/errors/MissingConfigurationValueError.ts
diff --git a/framework/spree/errors/MissingLineItemVariantError.ts b/packages/spree/src/errors/MissingLineItemVariantError.ts
similarity index 100%
rename from framework/spree/errors/MissingLineItemVariantError.ts
rename to packages/spree/src/errors/MissingLineItemVariantError.ts
diff --git a/framework/spree/errors/MissingOptionValueError.ts b/packages/spree/src/errors/MissingOptionValueError.ts
similarity index 100%
rename from framework/spree/errors/MissingOptionValueError.ts
rename to packages/spree/src/errors/MissingOptionValueError.ts
diff --git a/framework/spree/errors/MissingPrimaryVariantError.ts b/packages/spree/src/errors/MissingPrimaryVariantError.ts
similarity index 100%
rename from framework/spree/errors/MissingPrimaryVariantError.ts
rename to packages/spree/src/errors/MissingPrimaryVariantError.ts
diff --git a/framework/spree/errors/MissingProductError.ts b/packages/spree/src/errors/MissingProductError.ts
similarity index 100%
rename from framework/spree/errors/MissingProductError.ts
rename to packages/spree/src/errors/MissingProductError.ts
diff --git a/framework/spree/errors/MissingSlugVariableError.ts b/packages/spree/src/errors/MissingSlugVariableError.ts
similarity index 100%
rename from framework/spree/errors/MissingSlugVariableError.ts
rename to packages/spree/src/errors/MissingSlugVariableError.ts
diff --git a/framework/spree/errors/MissingVariantError.ts b/packages/spree/src/errors/MissingVariantError.ts
similarity index 100%
rename from framework/spree/errors/MissingVariantError.ts
rename to packages/spree/src/errors/MissingVariantError.ts
diff --git a/framework/spree/errors/RefreshTokenError.ts b/packages/spree/src/errors/RefreshTokenError.ts
similarity index 100%
rename from framework/spree/errors/RefreshTokenError.ts
rename to packages/spree/src/errors/RefreshTokenError.ts
diff --git a/framework/spree/errors/SpreeResponseContentError.ts b/packages/spree/src/errors/SpreeResponseContentError.ts
similarity index 100%
rename from framework/spree/errors/SpreeResponseContentError.ts
rename to packages/spree/src/errors/SpreeResponseContentError.ts
diff --git a/framework/spree/errors/SpreeSdkMethodFromEndpointPathError.ts b/packages/spree/src/errors/SpreeSdkMethodFromEndpointPathError.ts
similarity index 100%
rename from framework/spree/errors/SpreeSdkMethodFromEndpointPathError.ts
rename to packages/spree/src/errors/SpreeSdkMethodFromEndpointPathError.ts
diff --git a/framework/spree/errors/TokensNotRejectedError.ts b/packages/spree/src/errors/TokensNotRejectedError.ts
similarity index 100%
rename from framework/spree/errors/TokensNotRejectedError.ts
rename to packages/spree/src/errors/TokensNotRejectedError.ts
diff --git a/framework/spree/errors/UserTokenResponseParseError.ts b/packages/spree/src/errors/UserTokenResponseParseError.ts
similarity index 100%
rename from framework/spree/errors/UserTokenResponseParseError.ts
rename to packages/spree/src/errors/UserTokenResponseParseError.ts
diff --git a/framework/spree/fetcher.ts b/packages/spree/src/fetcher.ts
similarity index 96%
rename from framework/spree/fetcher.ts
rename to packages/spree/src/fetcher.ts
index 379cd3cb7..cb14c1e61 100644
--- a/framework/spree/fetcher.ts
+++ b/packages/spree/src/fetcher.ts
@@ -1,8 +1,8 @@
-import type { Fetcher } from '@commerce/utils/types'
+import type { Fetcher } from '@vercel/commerce/utils/types'
 import convertSpreeErrorToGraphQlError from './utils/convert-spree-error-to-graph-ql-error'
 import { makeClient, errors } from '@spree/storefront-api-v2-sdk'
 import type { ResultResponse } from '@spree/storefront-api-v2-sdk/types/interfaces/ResultResponse'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import { requireConfigValue } from './isomorphic-config'
 import getSpreeSdkMethodFromEndpointPath from './utils/get-spree-sdk-method-from-endpoint-path'
 import SpreeSdkMethodFromEndpointPathError from './errors/SpreeSdkMethodFromEndpointPathError'
diff --git a/framework/spree/index.tsx b/packages/spree/src/index.tsx
similarity index 93%
rename from framework/spree/index.tsx
rename to packages/spree/src/index.tsx
index f7eff69e9..9291e2b16 100644
--- a/framework/spree/index.tsx
+++ b/packages/spree/src/index.tsx
@@ -4,12 +4,12 @@ import {
   CommerceProviderProps,
   CoreCommerceProvider,
   useCommerce as useCoreCommerce,
-} from '@commerce'
+} from '@vercel/commerce'
 import { spreeProvider } from './provider'
 import type { SpreeProvider } from './provider'
 import { SWRConfig } from 'swr'
 import handleTokenErrors from './utils/handle-token-errors'
-import useLogout from '@commerce/auth/use-logout'
+import useLogout from '@vercel/commerce/auth/use-logout'
 
 export { spreeProvider }
 export type { SpreeProvider }
diff --git a/framework/spree/isomorphic-config.ts b/packages/spree/src/isomorphic-config.ts
similarity index 100%
rename from framework/spree/isomorphic-config.ts
rename to packages/spree/src/isomorphic-config.ts
diff --git a/framework/spree/next.config.js b/packages/spree/src/next.config.cjs
similarity index 100%
rename from framework/spree/next.config.js
rename to packages/spree/src/next.config.cjs
diff --git a/framework/spree/product/index.ts b/packages/spree/src/product/index.ts
similarity index 100%
rename from framework/spree/product/index.ts
rename to packages/spree/src/product/index.ts
diff --git a/packages/spree/src/product/use-price.tsx b/packages/spree/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/spree/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/spree/product/use-search.tsx b/packages/spree/src/product/use-search.tsx
similarity index 89%
rename from framework/spree/product/use-search.tsx
rename to packages/spree/src/product/use-search.tsx
index 5912a72ca..7de5d8258 100644
--- a/framework/spree/product/use-search.tsx
+++ b/packages/spree/src/product/use-search.tsx
@@ -1,9 +1,12 @@
-import type { SWRHook } from '@commerce/utils/types'
-import useSearch from '@commerce/product/use-search'
-import type { Product, SearchProductsHook } from '@commerce/types/product'
-import type { UseSearch } from '@commerce/product/use-search'
+import type { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch from '@vercel/commerce/product/use-search'
+import type {
+  Product,
+  SearchProductsHook,
+} from '@vercel/commerce/types/product'
+import type { UseSearch } from '@vercel/commerce/product/use-search'
 import normalizeProduct from '../utils/normalizations/normalize-product'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import { IProducts } from '@spree/storefront-api-v2-sdk/types/interfaces/Product'
 import { requireConfigValue } from '../isomorphic-config'
 
diff --git a/framework/spree/provider.ts b/packages/spree/src/provider.ts
similarity index 100%
rename from framework/spree/provider.ts
rename to packages/spree/src/provider.ts
diff --git a/framework/spree/types/index.ts b/packages/spree/src/types/index.ts
similarity index 95%
rename from framework/spree/types/index.ts
rename to packages/spree/src/types/index.ts
index 79b75c249..74ddeb52a 100644
--- a/framework/spree/types/index.ts
+++ b/packages/spree/src/types/index.ts
@@ -6,13 +6,13 @@ import type {
 } from '@spree/storefront-api-v2-sdk/types/interfaces/JsonApi'
 import type { ResultResponse } from '@spree/storefront-api-v2-sdk/types/interfaces/ResultResponse'
 import type { Response } from '@vercel/fetch'
-import type { ProductOption, Product } from '@commerce/types/product'
+import type { ProductOption, Product } from '@vercel/commerce/types/product'
 import type {
   AddItemHook,
   RemoveItemHook,
   WishlistItemBody,
   WishlistTypes,
-} from '@commerce/types/wishlist'
+} from '@vercel/commerce/types/wishlist'
 
 export type UnknownObjectValues = Record<string, unknown>
 
@@ -136,7 +136,7 @@ export type UserOAuthTokens = {
 
 // TODO: ExplicitCommerceWishlist is a temporary type
 // derived from tsx views. It will be removed once
-// Wishlist in @commerce/types/wishlist is updated
+// Wishlist in @vercel/commerce/types/wishlist is updated
 // to a more specific type than `any`.
 export type ExplicitCommerceWishlist = {
   id: string
diff --git a/framework/spree/utils/convert-spree-error-to-graph-ql-error.ts b/packages/spree/src/utils/convert-spree-error-to-graph-ql-error.ts
similarity index 95%
rename from framework/spree/utils/convert-spree-error-to-graph-ql-error.ts
rename to packages/spree/src/utils/convert-spree-error-to-graph-ql-error.ts
index def4920ba..f35a00da5 100644
--- a/framework/spree/utils/convert-spree-error-to-graph-ql-error.ts
+++ b/packages/spree/src/utils/convert-spree-error-to-graph-ql-error.ts
@@ -1,4 +1,4 @@
-import { FetcherError } from '@commerce/utils/errors'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 import { errors } from '@spree/storefront-api-v2-sdk'
 
 const convertSpreeErrorToGraphQlError = (
diff --git a/framework/spree/utils/create-customized-fetch-fetcher.ts b/packages/spree/src/utils/create-customized-fetch-fetcher.ts
similarity index 100%
rename from framework/spree/utils/create-customized-fetch-fetcher.ts
rename to packages/spree/src/utils/create-customized-fetch-fetcher.ts
diff --git a/framework/spree/utils/create-empty-cart.ts b/packages/spree/src/utils/create-empty-cart.ts
similarity index 80%
rename from framework/spree/utils/create-empty-cart.ts
rename to packages/spree/src/utils/create-empty-cart.ts
index 0bf0aa522..efbd687f3 100644
--- a/framework/spree/utils/create-empty-cart.ts
+++ b/packages/spree/src/utils/create-empty-cart.ts
@@ -1,5 +1,5 @@
-import type { GraphQLFetcherResult } from '@commerce/api'
-import type { HookFetcherContext } from '@commerce/utils/types'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
+import type { HookFetcherContext } from '@vercel/commerce/utils/types'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
 import ensureIToken from './tokens/ensure-itoken'
diff --git a/framework/spree/utils/create-get-absolute-image-url.ts b/packages/spree/src/utils/create-get-absolute-image-url.ts
similarity index 100%
rename from framework/spree/utils/create-get-absolute-image-url.ts
rename to packages/spree/src/utils/create-get-absolute-image-url.ts
diff --git a/framework/spree/utils/expand-options.ts b/packages/spree/src/utils/expand-options.ts
similarity index 97%
rename from framework/spree/utils/expand-options.ts
rename to packages/spree/src/utils/expand-options.ts
index 29b9d6760..382ea3b5a 100644
--- a/framework/spree/utils/expand-options.ts
+++ b/packages/spree/src/utils/expand-options.ts
@@ -1,4 +1,4 @@
-import type { ProductOptionValues } from '@commerce/types/product'
+import type { ProductOptionValues } from '@vercel/commerce/types/product'
 import type {
   JsonApiDocument,
   JsonApiResponse,
diff --git a/framework/spree/utils/force-isomorphic-config-values.ts b/packages/spree/src/utils/force-isomorphic-config-values.ts
similarity index 100%
rename from framework/spree/utils/force-isomorphic-config-values.ts
rename to packages/spree/src/utils/force-isomorphic-config-values.ts
diff --git a/framework/spree/utils/get-image-url.ts b/packages/spree/src/utils/get-image-url.ts
similarity index 100%
rename from framework/spree/utils/get-image-url.ts
rename to packages/spree/src/utils/get-image-url.ts
diff --git a/framework/spree/utils/get-media-gallery.ts b/packages/spree/src/utils/get-media-gallery.ts
similarity index 90%
rename from framework/spree/utils/get-media-gallery.ts
rename to packages/spree/src/utils/get-media-gallery.ts
index da939c82b..dd2dacb29 100644
--- a/framework/spree/utils/get-media-gallery.ts
+++ b/packages/spree/src/utils/get-media-gallery.ts
@@ -1,6 +1,6 @@
 // Based on https://github.com/spark-solutions/spree2vuestorefront/blob/d88d85ae1bcd2ec99b13b81cd2e3c25600a0216e/src/utils/index.ts
 
-import type { ProductImage } from '@commerce/types/product'
+import type { ProductImage } from '@vercel/commerce/types/product'
 import type { SpreeProductImage } from '../types'
 
 const getMediaGallery = (
diff --git a/framework/spree/utils/get-product-path.ts b/packages/spree/src/utils/get-product-path.ts
similarity index 100%
rename from framework/spree/utils/get-product-path.ts
rename to packages/spree/src/utils/get-product-path.ts
diff --git a/framework/spree/utils/get-spree-sdk-method-from-endpoint-path.ts b/packages/spree/src/utils/get-spree-sdk-method-from-endpoint-path.ts
similarity index 100%
rename from framework/spree/utils/get-spree-sdk-method-from-endpoint-path.ts
rename to packages/spree/src/utils/get-spree-sdk-method-from-endpoint-path.ts
diff --git a/framework/spree/utils/handle-token-errors.ts b/packages/spree/src/utils/handle-token-errors.ts
similarity index 100%
rename from framework/spree/utils/handle-token-errors.ts
rename to packages/spree/src/utils/handle-token-errors.ts
diff --git a/framework/spree/utils/is-json-content-type.ts b/packages/spree/src/utils/is-json-content-type.ts
similarity index 100%
rename from framework/spree/utils/is-json-content-type.ts
rename to packages/spree/src/utils/is-json-content-type.ts
diff --git a/framework/spree/utils/is-server.ts b/packages/spree/src/utils/is-server.ts
similarity index 100%
rename from framework/spree/utils/is-server.ts
rename to packages/spree/src/utils/is-server.ts
diff --git a/framework/spree/utils/login.ts b/packages/spree/src/utils/login.ts
similarity index 92%
rename from framework/spree/utils/login.ts
rename to packages/spree/src/utils/login.ts
index 3894b7952..13555664a 100644
--- a/framework/spree/utils/login.ts
+++ b/packages/spree/src/utils/login.ts
@@ -1,5 +1,5 @@
-import type { GraphQLFetcherResult } from '@commerce/api'
-import type { HookFetcherContext } from '@commerce/utils/types'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
+import type { HookFetcherContext } from '@vercel/commerce/utils/types'
 import type { AuthTokenAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Authentication'
 import type { AssociateCart } from '@spree/storefront-api-v2-sdk/types/interfaces/endpoints/CartClass'
 import type { IOrder } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
diff --git a/framework/spree/utils/normalizations/normalize-cart.ts b/packages/spree/src/utils/normalizations/normalize-cart.ts
similarity index 98%
rename from framework/spree/utils/normalizations/normalize-cart.ts
rename to packages/spree/src/utils/normalizations/normalize-cart.ts
index a1751eaec..c5597fd89 100644
--- a/framework/spree/utils/normalizations/normalize-cart.ts
+++ b/packages/spree/src/utils/normalizations/normalize-cart.ts
@@ -3,12 +3,12 @@ import type {
   LineItem,
   ProductVariant,
   SelectedOption,
-} from '@commerce/types/cart'
+} from '@vercel/commerce/types/cart'
 import MissingLineItemVariantError from '../../errors/MissingLineItemVariantError'
 import { requireConfigValue } from '../../isomorphic-config'
 import type { OrderAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Order'
 import type { ProductAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Product'
-import type { Image } from '@commerce/types/common'
+import type { Image } from '@vercel/commerce/types/common'
 import { jsonApi } from '@spree/storefront-api-v2-sdk'
 import createGetAbsoluteImageUrl from '../create-get-absolute-image-url'
 import getMediaGallery from '../get-media-gallery'
diff --git a/framework/spree/utils/normalizations/normalize-page.ts b/packages/spree/src/utils/normalizations/normalize-page.ts
similarity index 95%
rename from framework/spree/utils/normalizations/normalize-page.ts
rename to packages/spree/src/utils/normalizations/normalize-page.ts
index c49d862d1..a2464ffd9 100644
--- a/framework/spree/utils/normalizations/normalize-page.ts
+++ b/packages/spree/src/utils/normalizations/normalize-page.ts
@@ -1,4 +1,4 @@
-import { Page } from '@commerce/types/page'
+import { Page } from '@vercel/commerce/types/page'
 import type { PageAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Page'
 import { SpreeSdkResponse } from '../../types'
 
diff --git a/framework/spree/utils/normalizations/normalize-product.ts b/packages/spree/src/utils/normalizations/normalize-product.ts
similarity index 99%
rename from framework/spree/utils/normalizations/normalize-product.ts
rename to packages/spree/src/utils/normalizations/normalize-product.ts
index e70bd34b4..6965f0197 100644
--- a/framework/spree/utils/normalizations/normalize-product.ts
+++ b/packages/spree/src/utils/normalizations/normalize-product.ts
@@ -3,7 +3,7 @@ import type {
   ProductImage,
   ProductPrice,
   ProductVariant,
-} from '@commerce/types/product'
+} from '@vercel/commerce/types/product'
 import type { ProductAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Product'
 import type { RelationType } from '@spree/storefront-api-v2-sdk/types/interfaces/Relationships'
 import { jsonApi } from '@spree/storefront-api-v2-sdk'
diff --git a/framework/spree/utils/normalizations/normalize-user.ts b/packages/spree/src/utils/normalizations/normalize-user.ts
similarity index 84%
rename from framework/spree/utils/normalizations/normalize-user.ts
rename to packages/spree/src/utils/normalizations/normalize-user.ts
index 897b1c59b..8b738fbaf 100644
--- a/framework/spree/utils/normalizations/normalize-user.ts
+++ b/packages/spree/src/utils/normalizations/normalize-user.ts
@@ -1,4 +1,4 @@
-import type { Customer } from '@commerce/types/customer'
+import type { Customer } from '@vercel/commerce/types/customer'
 import type { AccountAttr } from '@spree/storefront-api-v2-sdk/types/interfaces/Account'
 import type { SpreeSdkResponse } from '../../types'
 
diff --git a/framework/spree/utils/normalizations/normalize-wishlist.ts b/packages/spree/src/utils/normalizations/normalize-wishlist.ts
similarity index 100%
rename from framework/spree/utils/normalizations/normalize-wishlist.ts
rename to packages/spree/src/utils/normalizations/normalize-wishlist.ts
diff --git a/framework/spree/utils/pretty-print-spree-sdk-errors.ts b/packages/spree/src/utils/pretty-print-spree-sdk-errors.ts
similarity index 100%
rename from framework/spree/utils/pretty-print-spree-sdk-errors.ts
rename to packages/spree/src/utils/pretty-print-spree-sdk-errors.ts
diff --git a/framework/spree/utils/require-config.ts b/packages/spree/src/utils/require-config.ts
similarity index 100%
rename from framework/spree/utils/require-config.ts
rename to packages/spree/src/utils/require-config.ts
diff --git a/framework/spree/utils/sort-option-types.ts b/packages/spree/src/utils/sort-option-types.ts
similarity index 100%
rename from framework/spree/utils/sort-option-types.ts
rename to packages/spree/src/utils/sort-option-types.ts
diff --git a/framework/spree/utils/tokens/cart-token.ts b/packages/spree/src/utils/tokens/cart-token.ts
similarity index 100%
rename from framework/spree/utils/tokens/cart-token.ts
rename to packages/spree/src/utils/tokens/cart-token.ts
diff --git a/framework/spree/utils/tokens/ensure-fresh-user-access-token.ts b/packages/spree/src/utils/tokens/ensure-fresh-user-access-token.ts
similarity index 100%
rename from framework/spree/utils/tokens/ensure-fresh-user-access-token.ts
rename to packages/spree/src/utils/tokens/ensure-fresh-user-access-token.ts
diff --git a/framework/spree/utils/tokens/ensure-itoken.ts b/packages/spree/src/utils/tokens/ensure-itoken.ts
similarity index 100%
rename from framework/spree/utils/tokens/ensure-itoken.ts
rename to packages/spree/src/utils/tokens/ensure-itoken.ts
diff --git a/framework/spree/utils/tokens/is-logged-in.ts b/packages/spree/src/utils/tokens/is-logged-in.ts
similarity index 100%
rename from framework/spree/utils/tokens/is-logged-in.ts
rename to packages/spree/src/utils/tokens/is-logged-in.ts
diff --git a/framework/spree/utils/tokens/revoke-user-tokens.ts b/packages/spree/src/utils/tokens/revoke-user-tokens.ts
similarity index 89%
rename from framework/spree/utils/tokens/revoke-user-tokens.ts
rename to packages/spree/src/utils/tokens/revoke-user-tokens.ts
index 9c603a884..82133542f 100644
--- a/framework/spree/utils/tokens/revoke-user-tokens.ts
+++ b/packages/spree/src/utils/tokens/revoke-user-tokens.ts
@@ -1,5 +1,5 @@
-import type { GraphQLFetcherResult } from '@commerce/api'
-import type { HookFetcherContext } from '@commerce/utils/types'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
+import type { HookFetcherContext } from '@vercel/commerce/utils/types'
 import TokensNotRejectedError from '../../errors/TokensNotRejectedError'
 import type { UserOAuthTokens } from '../../types'
 import type { EmptyObjectResponse } from '@spree/storefront-api-v2-sdk/types/interfaces/EmptyObject'
diff --git a/framework/spree/utils/tokens/user-token-response.ts b/packages/spree/src/utils/tokens/user-token-response.ts
similarity index 100%
rename from framework/spree/utils/tokens/user-token-response.ts
rename to packages/spree/src/utils/tokens/user-token-response.ts
diff --git a/framework/spree/utils/validations/validate-all-products-taxonomy-id.ts b/packages/spree/src/utils/validations/validate-all-products-taxonomy-id.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-all-products-taxonomy-id.ts
rename to packages/spree/src/utils/validations/validate-all-products-taxonomy-id.ts
diff --git a/framework/spree/utils/validations/validate-cookie-expire.ts b/packages/spree/src/utils/validations/validate-cookie-expire.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-cookie-expire.ts
rename to packages/spree/src/utils/validations/validate-cookie-expire.ts
diff --git a/framework/spree/utils/validations/validate-images-option-filter.ts b/packages/spree/src/utils/validations/validate-images-option-filter.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-images-option-filter.ts
rename to packages/spree/src/utils/validations/validate-images-option-filter.ts
diff --git a/framework/spree/utils/validations/validate-images-quality.ts b/packages/spree/src/utils/validations/validate-images-quality.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-images-quality.ts
rename to packages/spree/src/utils/validations/validate-images-quality.ts
diff --git a/framework/spree/utils/validations/validate-images-size.ts b/packages/spree/src/utils/validations/validate-images-size.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-images-size.ts
rename to packages/spree/src/utils/validations/validate-images-size.ts
diff --git a/framework/spree/utils/validations/validate-placeholder-image-url.ts b/packages/spree/src/utils/validations/validate-placeholder-image-url.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-placeholder-image-url.ts
rename to packages/spree/src/utils/validations/validate-placeholder-image-url.ts
diff --git a/framework/spree/utils/validations/validate-products-prerender-count.ts b/packages/spree/src/utils/validations/validate-products-prerender-count.ts
similarity index 100%
rename from framework/spree/utils/validations/validate-products-prerender-count.ts
rename to packages/spree/src/utils/validations/validate-products-prerender-count.ts
diff --git a/framework/spree/wishlist/index.ts b/packages/spree/src/wishlist/index.ts
similarity index 100%
rename from framework/spree/wishlist/index.ts
rename to packages/spree/src/wishlist/index.ts
diff --git a/framework/spree/wishlist/use-add-item.tsx b/packages/spree/src/wishlist/use-add-item.tsx
similarity index 85%
rename from framework/spree/wishlist/use-add-item.tsx
rename to packages/spree/src/wishlist/use-add-item.tsx
index 6733cb055..010a71e7d 100644
--- a/framework/spree/wishlist/use-add-item.tsx
+++ b/packages/spree/src/wishlist/use-add-item.tsx
@@ -1,17 +1,17 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useAddItem from '@commerce/wishlist/use-add-item'
-import type { UseAddItem } from '@commerce/wishlist/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useAddItem from '@vercel/commerce/wishlist/use-add-item'
+import type { UseAddItem } from '@vercel/commerce/wishlist/use-add-item'
 import useWishlist from './use-wishlist'
 import type { ExplicitWishlistAddItemHook } from '../types'
 import type {
   WishedItem,
   WishlistsAddWishedItem,
 } from '@spree/storefront-api-v2-sdk/types/interfaces/WishedItem'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
-import type { AddItemHook } from '@commerce/types/wishlist'
+import type { AddItemHook } from '@vercel/commerce/types/wishlist'
 import isLoggedIn from '../utils/tokens/is-logged-in'
 
 export default useAddItem as UseAddItem<typeof handler>
diff --git a/framework/spree/wishlist/use-remove-item.tsx b/packages/spree/src/wishlist/use-remove-item.tsx
similarity index 86%
rename from framework/spree/wishlist/use-remove-item.tsx
rename to packages/spree/src/wishlist/use-remove-item.tsx
index 30611dbc9..d8481f5a3 100644
--- a/framework/spree/wishlist/use-remove-item.tsx
+++ b/packages/spree/src/wishlist/use-remove-item.tsx
@@ -1,13 +1,13 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useRemoveItem from '@commerce/wishlist/use-remove-item'
-import type { UseRemoveItem } from '@commerce/wishlist/use-remove-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useRemoveItem from '@vercel/commerce/wishlist/use-remove-item'
+import type { UseRemoveItem } from '@vercel/commerce/wishlist/use-remove-item'
 import useWishlist from './use-wishlist'
 import type { ExplicitWishlistRemoveItemHook } from '../types'
 import isLoggedIn from '../utils/tokens/is-logged-in'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { WishedItem } from '@spree/storefront-api-v2-sdk/types/interfaces/WishedItem'
 
 export default useRemoveItem as UseRemoveItem<typeof handler>
diff --git a/framework/spree/wishlist/use-wishlist.tsx b/packages/spree/src/wishlist/use-wishlist.tsx
similarity index 87%
rename from framework/spree/wishlist/use-wishlist.tsx
rename to packages/spree/src/wishlist/use-wishlist.tsx
index 0292d4096..9f258625e 100644
--- a/framework/spree/wishlist/use-wishlist.tsx
+++ b/packages/spree/src/wishlist/use-wishlist.tsx
@@ -1,10 +1,10 @@
 import { useMemo } from 'react'
-import type { SWRHook } from '@commerce/utils/types'
-import useWishlist from '@commerce/wishlist/use-wishlist'
-import type { UseWishlist } from '@commerce/wishlist/use-wishlist'
-import type { GetWishlistHook } from '@commerce/types/wishlist'
+import type { SWRHook } from '@vercel/commerce/utils/types'
+import useWishlist from '@vercel/commerce/wishlist/use-wishlist'
+import type { UseWishlist } from '@vercel/commerce/wishlist/use-wishlist'
+import type { GetWishlistHook } from '@vercel/commerce/types/wishlist'
 import type { IToken } from '@spree/storefront-api-v2-sdk/types/interfaces/Token'
-import type { GraphQLFetcherResult } from '@commerce/api'
+import type { GraphQLFetcherResult } from '@vercel/commerce/api'
 import type { Wishlist } from '@spree/storefront-api-v2-sdk/types/interfaces/Wishlist'
 import ensureIToken from '../utils/tokens/ensure-itoken'
 import normalizeWishlist from '../utils/normalizations/normalize-wishlist'
diff --git a/packages/spree/tsconfig.json b/packages/spree/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/spree/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/swell/.env.template b/packages/swell/.env.template
similarity index 100%
rename from framework/swell/.env.template
rename to packages/swell/.env.template
diff --git a/packages/swell/.prettierignore b/packages/swell/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/swell/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/swell/.prettierrc b/packages/swell/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/swell/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/packages/swell/package.json b/packages/swell/package.json
new file mode 100644
index 000000000..c751ab954
--- /dev/null
+++ b/packages/swell/package.json
@@ -0,0 +1,74 @@
+{
+  "name": "@vercel/commerce-swell",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write ."
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist",
+    "schema.d.ts"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1",
+    "swell-js": "^4.0.0-next.0"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/swell/schema.d.ts b/packages/swell/schema.d.ts
similarity index 100%
rename from framework/swell/schema.d.ts
rename to packages/swell/schema.d.ts
diff --git a/framework/swell/schema.graphql b/packages/swell/schema.graphql
similarity index 100%
rename from framework/swell/schema.graphql
rename to packages/swell/schema.graphql
diff --git a/framework/swell/api/cart/index.ts b/packages/swell/src/api/cart/index.ts
similarity index 100%
rename from framework/swell/api/cart/index.ts
rename to packages/swell/src/api/cart/index.ts
diff --git a/framework/swell/api/catalog/index.ts b/packages/swell/src/api/catalog/index.ts
similarity index 100%
rename from framework/swell/api/catalog/index.ts
rename to packages/swell/src/api/catalog/index.ts
diff --git a/framework/swell/api/catalog/products.ts b/packages/swell/src/api/catalog/products.ts
similarity index 100%
rename from framework/swell/api/catalog/products.ts
rename to packages/swell/src/api/catalog/products.ts
diff --git a/framework/swell/api/customer.ts b/packages/swell/src/api/customer.ts
similarity index 100%
rename from framework/swell/api/customer.ts
rename to packages/swell/src/api/customer.ts
diff --git a/framework/swell/api/customers/index.ts b/packages/swell/src/api/customers/index.ts
similarity index 100%
rename from framework/swell/api/customers/index.ts
rename to packages/swell/src/api/customers/index.ts
diff --git a/framework/swell/api/customers/logout.ts b/packages/swell/src/api/customers/logout.ts
similarity index 100%
rename from framework/swell/api/customers/logout.ts
rename to packages/swell/src/api/customers/logout.ts
diff --git a/framework/swell/api/customers/signup.ts b/packages/swell/src/api/customers/signup.ts
similarity index 100%
rename from framework/swell/api/customers/signup.ts
rename to packages/swell/src/api/customers/signup.ts
diff --git a/framework/swell/api/endpoints/cart.ts b/packages/swell/src/api/endpoints/cart.ts
similarity index 100%
rename from framework/swell/api/endpoints/cart.ts
rename to packages/swell/src/api/endpoints/cart.ts
diff --git a/framework/swell/api/endpoints/catalog/products.ts b/packages/swell/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/swell/api/endpoints/catalog/products.ts
rename to packages/swell/src/api/endpoints/catalog/products.ts
diff --git a/framework/swell/api/endpoints/checkout/index.ts b/packages/swell/src/api/endpoints/checkout/index.ts
similarity index 75%
rename from framework/swell/api/endpoints/checkout/index.ts
rename to packages/swell/src/api/endpoints/checkout/index.ts
index 1d521a6b6..2695ea385 100644
--- a/framework/swell/api/endpoints/checkout/index.ts
+++ b/packages/swell/src/api/endpoints/checkout/index.ts
@@ -1,7 +1,7 @@
-import { CommerceAPI, createEndpoint, GetAPISchema } from '@commerce/api'
-import { CheckoutSchema } from '@commerce/types/checkout'
+import { CommerceAPI, createEndpoint, GetAPISchema } from '@vercel/commerce/api'
+import { CheckoutSchema } from '@vercel/commerce/types/checkout'
 import { SWELL_CHECKOUT_URL_COOKIE } from '../../../const'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 
 const getCheckout: CheckoutEndpoint['handlers']['getCheckout'] = async ({
   req,
diff --git a/framework/swell/api/endpoints/customer/address.ts b/packages/swell/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/swell/api/endpoints/customer/address.ts
rename to packages/swell/src/api/endpoints/customer/address.ts
diff --git a/framework/swell/api/endpoints/customer/card.ts b/packages/swell/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/swell/api/endpoints/customer/card.ts
rename to packages/swell/src/api/endpoints/customer/card.ts
diff --git a/framework/swell/api/endpoints/customer/index.ts b/packages/swell/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/swell/api/endpoints/customer/index.ts
rename to packages/swell/src/api/endpoints/customer/index.ts
diff --git a/framework/swell/api/endpoints/login.ts b/packages/swell/src/api/endpoints/login.ts
similarity index 100%
rename from framework/swell/api/endpoints/login.ts
rename to packages/swell/src/api/endpoints/login.ts
diff --git a/framework/swell/api/endpoints/logout.ts b/packages/swell/src/api/endpoints/logout.ts
similarity index 100%
rename from framework/swell/api/endpoints/logout.ts
rename to packages/swell/src/api/endpoints/logout.ts
diff --git a/framework/swell/api/endpoints/signup.ts b/packages/swell/src/api/endpoints/signup.ts
similarity index 100%
rename from framework/swell/api/endpoints/signup.ts
rename to packages/swell/src/api/endpoints/signup.ts
diff --git a/framework/swell/api/endpoints/wishlist.ts b/packages/swell/src/api/endpoints/wishlist.ts
similarity index 100%
rename from framework/swell/api/endpoints/wishlist.ts
rename to packages/swell/src/api/endpoints/wishlist.ts
diff --git a/framework/swell/api/index.ts b/packages/swell/src/api/index.ts
similarity index 97%
rename from framework/swell/api/index.ts
rename to packages/swell/src/api/index.ts
index 463c42fae..589acae4e 100644
--- a/framework/swell/api/index.ts
+++ b/packages/swell/src/api/index.ts
@@ -2,7 +2,7 @@ import {
   CommerceAPI,
   CommerceAPIConfig,
   getCommerceApi as commerceApi,
-} from '@commerce/api'
+} from '@vercel/commerce/api'
 import {
   SWELL_CHECKOUT_ID_COOKIE,
   SWELL_CUSTOMER_TOKEN_COOKIE,
diff --git a/framework/swell/api/operations/get-all-pages.ts b/packages/swell/src/api/operations/get-all-pages.ts
similarity index 93%
rename from framework/swell/api/operations/get-all-pages.ts
rename to packages/swell/src/api/operations/get-all-pages.ts
index e157c0138..7097d6859 100644
--- a/framework/swell/api/operations/get-all-pages.ts
+++ b/packages/swell/src/api/operations/get-all-pages.ts
@@ -1,5 +1,5 @@
 import { Provider, SwellConfig } from '..'
-import type { OperationContext } from '@commerce/api/operations'
+import type { OperationContext } from '@vercel/commerce/api/operations'
 import type { Page } from '../../types/page'
 
 export type GetAllPagesResult<T extends { pages: any[] } = { pages: Page[] }> =
diff --git a/framework/swell/api/operations/get-all-product-paths.ts b/packages/swell/src/api/operations/get-all-product-paths.ts
similarity index 88%
rename from framework/swell/api/operations/get-all-product-paths.ts
rename to packages/swell/src/api/operations/get-all-product-paths.ts
index 4d95253e8..1e5088608 100644
--- a/framework/swell/api/operations/get-all-product-paths.ts
+++ b/packages/swell/src/api/operations/get-all-product-paths.ts
@@ -1,7 +1,10 @@
 import { SwellProduct } from '../../types'
 import { SwellConfig, Provider } from '..'
-import { OperationContext, OperationOptions } from '@commerce/api/operations'
-import { GetAllProductPathsOperation } from '@commerce/types/product'
+import {
+  OperationContext,
+  OperationOptions,
+} from '@vercel/commerce/api/operations'
+import { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
 
 export default function getAllProductPathsOperation({
   commerce,
diff --git a/framework/swell/api/operations/get-all-products.ts b/packages/swell/src/api/operations/get-all-products.ts
similarity index 89%
rename from framework/swell/api/operations/get-all-products.ts
rename to packages/swell/src/api/operations/get-all-products.ts
index 7e8e99a5c..6527fb986 100644
--- a/framework/swell/api/operations/get-all-products.ts
+++ b/packages/swell/src/api/operations/get-all-products.ts
@@ -1,8 +1,8 @@
 import { normalizeProduct } from '../../utils/normalize'
 import { SwellProduct } from '../../types'
-import { Product } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
 import { Provider, SwellConfig } from '../'
-import { OperationContext } from '@commerce/api/operations'
+import { OperationContext } from '@vercel/commerce/api/operations'
 
 export type ProductVariables = { first?: number }
 
diff --git a/framework/swell/api/operations/get-page.ts b/packages/swell/src/api/operations/get-page.ts
similarity index 90%
rename from framework/swell/api/operations/get-page.ts
rename to packages/swell/src/api/operations/get-page.ts
index 99fbac04d..7e71f7575 100644
--- a/framework/swell/api/operations/get-page.ts
+++ b/packages/swell/src/api/operations/get-page.ts
@@ -1,6 +1,9 @@
-import { Page } from '../../schema'
+import { Page } from '../../../schema'
 import { SwellConfig, Provider } from '..'
-import { OperationContext, OperationOptions } from '@commerce/api/operations'
+import {
+  OperationContext,
+  OperationOptions,
+} from '@vercel/commerce/api/operations'
 import { GetPageOperation } from '../../types/page'
 
 export type GetPageResult<T extends { page?: any } = { page?: Page }> = T
diff --git a/framework/swell/api/operations/get-product.ts b/packages/swell/src/api/operations/get-product.ts
similarity index 85%
rename from framework/swell/api/operations/get-product.ts
rename to packages/swell/src/api/operations/get-product.ts
index c9a3d6f1d..fff62570f 100644
--- a/framework/swell/api/operations/get-product.ts
+++ b/packages/swell/src/api/operations/get-product.ts
@@ -1,7 +1,7 @@
 import { normalizeProduct } from '../../utils'
 
-import { Product } from '@commerce/types/product'
-import { OperationContext } from '@commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
+import { OperationContext } from '@vercel/commerce/api/operations'
 import { Provider, SwellConfig } from '../'
 
 export default function getProductOperation({
diff --git a/framework/swell/api/operations/get-site-info.ts b/packages/swell/src/api/operations/get-site-info.ts
similarity index 86%
rename from framework/swell/api/operations/get-site-info.ts
rename to packages/swell/src/api/operations/get-site-info.ts
index ffb0c1542..88386ad3e 100644
--- a/framework/swell/api/operations/get-site-info.ts
+++ b/packages/swell/src/api/operations/get-site-info.ts
@@ -1,8 +1,8 @@
 import getCategories from '../../utils/get-categories'
 import getVendors, { Brands } from '../../utils/get-vendors'
 import { Provider, SwellConfig } from '../'
-import type { OperationContext } from '@commerce/api/operations'
-import type { Category } from '@commerce/types/site'
+import type { OperationContext } from '@vercel/commerce/api/operations'
+import type { Category } from '@vercel/commerce/types/site'
 
 export type GetSiteInfoResult<
   T extends { categories: any[]; brands: any[] } = {
diff --git a/framework/swell/api/operations/login.ts b/packages/swell/src/api/operations/login.ts
similarity index 96%
rename from framework/swell/api/operations/login.ts
rename to packages/swell/src/api/operations/login.ts
index 33e1e2948..44ff37a53 100644
--- a/framework/swell/api/operations/login.ts
+++ b/packages/swell/src/api/operations/login.ts
@@ -2,7 +2,7 @@ import type { ServerResponse } from 'http'
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
+} from '@vercel/commerce/api/operations'
 import type { LoginOperation } from '../../types/login'
 import { Provider, SwellConfig } from '..'
 
diff --git a/framework/swell/api/utils/fetch-swell-api.ts b/packages/swell/src/api/utils/fetch-swell-api.ts
similarity index 100%
rename from framework/swell/api/utils/fetch-swell-api.ts
rename to packages/swell/src/api/utils/fetch-swell-api.ts
diff --git a/framework/swell/api/utils/fetch.ts b/packages/swell/src/api/utils/fetch.ts
similarity index 100%
rename from framework/swell/api/utils/fetch.ts
rename to packages/swell/src/api/utils/fetch.ts
diff --git a/framework/swell/api/utils/is-allowed-method.ts b/packages/swell/src/api/utils/is-allowed-method.ts
similarity index 100%
rename from framework/swell/api/utils/is-allowed-method.ts
rename to packages/swell/src/api/utils/is-allowed-method.ts
diff --git a/framework/swell/api/wishlist/index.tsx b/packages/swell/src/api/wishlist/index.tsx
similarity index 100%
rename from framework/swell/api/wishlist/index.tsx
rename to packages/swell/src/api/wishlist/index.tsx
diff --git a/framework/swell/auth/use-login.tsx b/packages/swell/src/auth/use-login.tsx
similarity index 88%
rename from framework/swell/auth/use-login.tsx
rename to packages/swell/src/auth/use-login.tsx
index b46aab546..b3fe9f52d 100644
--- a/framework/swell/auth/use-login.tsx
+++ b/packages/swell/src/auth/use-login.tsx
@@ -1,13 +1,13 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError, ValidationError } from '@commerce/utils/errors'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError, ValidationError } from '@vercel/commerce/utils/errors'
 import useCustomer from '../customer/use-customer'
 import {
   CustomerUserError,
   Mutation,
   MutationCheckoutCreateArgs,
-} from '../schema'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+} from '../../schema'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 import { LoginHook } from '../types/login'
 import { setCustomerToken } from '../utils'
 
diff --git a/framework/swell/auth/use-logout.tsx b/packages/swell/src/auth/use-logout.tsx
similarity index 86%
rename from framework/swell/auth/use-logout.tsx
rename to packages/swell/src/auth/use-logout.tsx
index 0e08ce9c6..08eec0bac 100644
--- a/framework/swell/auth/use-logout.tsx
+++ b/packages/swell/src/auth/use-logout.tsx
@@ -1,6 +1,6 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import useCustomer from '../customer/use-customer'
 import { getCustomerToken, setCustomerToken } from '../utils/customer-token'
 import { LogoutHook } from '../types/logout'
diff --git a/framework/swell/auth/use-signup.tsx b/packages/swell/src/auth/use-signup.tsx
similarity index 87%
rename from framework/swell/auth/use-signup.tsx
rename to packages/swell/src/auth/use-signup.tsx
index 68bbdfbe6..581312db9 100644
--- a/framework/swell/auth/use-signup.tsx
+++ b/packages/swell/src/auth/use-signup.tsx
@@ -1,7 +1,7 @@
 import { useCallback } from 'react'
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import useCustomer from '../customer/use-customer'
 import { SignupHook } from '../types/signup'
 import handleLogin from '../utils/handle-login'
diff --git a/framework/swell/cart/index.ts b/packages/swell/src/cart/index.ts
similarity index 100%
rename from framework/swell/cart/index.ts
rename to packages/swell/src/cart/index.ts
diff --git a/framework/swell/cart/use-add-item.tsx b/packages/swell/src/cart/use-add-item.tsx
similarity index 87%
rename from framework/swell/cart/use-add-item.tsx
rename to packages/swell/src/cart/use-add-item.tsx
index dac4fb9bb..048a1f45d 100644
--- a/framework/swell/cart/use-add-item.tsx
+++ b/packages/swell/src/cart/use-add-item.tsx
@@ -1,6 +1,6 @@
-import type { MutationHook } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
+import type { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
 import useCart from './use-cart'
 import { checkoutToCart } from './utils'
 import { getCheckoutId } from '../utils'
diff --git a/framework/swell/cart/use-cart.tsx b/packages/swell/src/cart/use-cart.tsx
similarity index 82%
rename from framework/swell/cart/use-cart.tsx
rename to packages/swell/src/cart/use-cart.tsx
index 7dc48b052..5842d1e95 100644
--- a/framework/swell/cart/use-cart.tsx
+++ b/packages/swell/src/cart/use-cart.tsx
@@ -1,9 +1,9 @@
-import useCart, { UseCart } from '@commerce/cart/use-cart'
-import { SWRHook } from '@commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import { useMemo } from 'react'
 import { normalizeCart } from '../utils/normalize'
 import { checkoutCreate, checkoutToCart } from './utils'
-import type { GetCartHook } from '@commerce/types/cart'
+import type { GetCartHook } from '@vercel/commerce/types/cart'
 
 export default useCart as UseCart<typeof handler>
 
diff --git a/framework/swell/cart/use-remove-item.tsx b/packages/swell/src/cart/use-remove-item.tsx
similarity index 85%
rename from framework/swell/cart/use-remove-item.tsx
rename to packages/swell/src/cart/use-remove-item.tsx
index fe1ee24ca..6e511656b 100644
--- a/framework/swell/cart/use-remove-item.tsx
+++ b/packages/swell/src/cart/use-remove-item.tsx
@@ -2,10 +2,16 @@ import { useCallback } from 'react'
 import type {
   MutationHookContext,
   HookFetcherContext,
-} from '@commerce/utils/types'
+} from '@vercel/commerce/utils/types'
 
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
-import type { Cart, LineItem, RemoveItemHook } from '@commerce/types/cart'
+import useRemoveItem, {
+  UseRemoveItem,
+} from '@vercel/commerce/cart/use-remove-item'
+import type {
+  Cart,
+  LineItem,
+  RemoveItemHook,
+} from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 import { checkoutToCart } from './utils'
 
diff --git a/framework/swell/cart/use-update-item.tsx b/packages/swell/src/cart/use-update-item.tsx
similarity index 89%
rename from framework/swell/cart/use-update-item.tsx
rename to packages/swell/src/cart/use-update-item.tsx
index 5d705c5e5..c741250c2 100644
--- a/framework/swell/cart/use-update-item.tsx
+++ b/packages/swell/src/cart/use-update-item.tsx
@@ -4,16 +4,18 @@ import type {
   HookFetcherContext,
   MutationHook,
   MutationHookContext,
-} from '@commerce/utils/types'
-import { ValidationError } from '@commerce/utils/errors'
+} from '@vercel/commerce/utils/types'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 // import useUpdateItem, {
 //   UpdateItemInput as UpdateItemInputBase,
 //   UseUpdateItem,
-// } from '@commerce/cart/use-update-item'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
+// } from '@vercel/commerce/cart/use-update-item'
+import useUpdateItem, {
+  UseUpdateItem,
+} from '@vercel/commerce/cart/use-update-item'
 import useCart from './use-cart'
 import { handler as removeItemHandler } from './use-remove-item'
-import { CartItemBody, LineItem } from '@commerce/types/cart'
+import { CartItemBody, LineItem } from '@vercel/commerce/types/cart'
 import { checkoutToCart } from './utils'
 import { UpdateItemHook } from '../types/cart'
 // export type UpdateItemInput<T = any> = T extends LineItem
diff --git a/framework/swell/cart/utils/checkout-create.ts b/packages/swell/src/cart/utils/checkout-create.ts
similarity index 100%
rename from framework/swell/cart/utils/checkout-create.ts
rename to packages/swell/src/cart/utils/checkout-create.ts
diff --git a/framework/swell/cart/utils/checkout-to-cart.ts b/packages/swell/src/cart/utils/checkout-to-cart.ts
similarity index 87%
rename from framework/swell/cart/utils/checkout-to-cart.ts
rename to packages/swell/src/cart/utils/checkout-to-cart.ts
index d6dfda206..c9becb104 100644
--- a/framework/swell/cart/utils/checkout-to-cart.ts
+++ b/packages/swell/src/cart/utils/checkout-to-cart.ts
@@ -1,12 +1,12 @@
 import { Cart } from '../../types'
-import { CommerceError } from '@commerce/utils/errors'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 
 import {
   CheckoutLineItemsAddPayload,
   CheckoutLineItemsRemovePayload,
   CheckoutLineItemsUpdatePayload,
   Maybe,
-} from '../../schema'
+} from '../../../schema'
 import { normalizeCart } from '../../utils'
 
 export type CheckoutPayload =
diff --git a/framework/swell/cart/utils/index.ts b/packages/swell/src/cart/utils/index.ts
similarity index 100%
rename from framework/swell/cart/utils/index.ts
rename to packages/swell/src/cart/utils/index.ts
diff --git a/packages/swell/src/checkout/use-checkout.tsx b/packages/swell/src/checkout/use-checkout.tsx
new file mode 100644
index 000000000..76997be73
--- /dev/null
+++ b/packages/swell/src/checkout/use-checkout.tsx
@@ -0,0 +1,16 @@
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, {
+  UseCheckout,
+} from '@vercel/commerce/checkout/use-checkout'
+
+export default useCheckout as UseCheckout<typeof handler>
+
+export const handler: SWRHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ useData }) =>
+    async (input) => ({}),
+}
diff --git a/framework/swell/commerce.config.json b/packages/swell/src/commerce.config.json
similarity index 100%
rename from framework/swell/commerce.config.json
rename to packages/swell/src/commerce.config.json
diff --git a/framework/swell/const.ts b/packages/swell/src/const.ts
similarity index 100%
rename from framework/swell/const.ts
rename to packages/swell/src/const.ts
diff --git a/packages/swell/src/customer/address/use-add-item.tsx b/packages/swell/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..4f85c8472
--- /dev/null
+++ b/packages/swell/src/customer/address/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/packages/swell/src/customer/card/use-add-item.tsx b/packages/swell/src/customer/card/use-add-item.tsx
new file mode 100644
index 000000000..77d149eff
--- /dev/null
+++ b/packages/swell/src/customer/card/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/swell/customer/index.ts b/packages/swell/src/customer/index.ts
similarity index 100%
rename from framework/swell/customer/index.ts
rename to packages/swell/src/customer/index.ts
diff --git a/framework/swell/customer/use-customer.tsx b/packages/swell/src/customer/use-customer.tsx
similarity index 81%
rename from framework/swell/customer/use-customer.tsx
rename to packages/swell/src/customer/use-customer.tsx
index 3371db89c..0875310fd 100644
--- a/framework/swell/customer/use-customer.tsx
+++ b/packages/swell/src/customer/use-customer.tsx
@@ -1,5 +1,7 @@
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
-import { SWRHook } from '@commerce/utils/types'
+import useCustomer, {
+  UseCustomer,
+} from '@vercel/commerce/customer/use-customer'
+import { SWRHook } from '@vercel/commerce/utils/types'
 import { normalizeCustomer } from '../utils/normalize'
 import type { CustomerHook } from '../types/customer'
 
diff --git a/framework/swell/fetcher.ts b/packages/swell/src/fetcher.ts
similarity index 85%
rename from framework/swell/fetcher.ts
rename to packages/swell/src/fetcher.ts
index 655e4da25..1d50bf5a7 100644
--- a/framework/swell/fetcher.ts
+++ b/packages/swell/src/fetcher.ts
@@ -1,5 +1,5 @@
-import { Fetcher } from '@commerce/utils/types'
-import { CommerceError } from '@commerce/utils/errors'
+import { Fetcher } from '@vercel/commerce/utils/types'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 import { handleFetchResponse } from './utils'
 import swell from './swell'
 
diff --git a/framework/swell/index.tsx b/packages/swell/src/index.tsx
similarity index 73%
rename from framework/swell/index.tsx
rename to packages/swell/src/index.tsx
index b64df6d48..d88d75c31 100644
--- a/framework/swell/index.tsx
+++ b/packages/swell/src/index.tsx
@@ -1,4 +1,7 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import {
+  getCommerceProvider,
+  useCommerce as useCoreCommerce,
+} from '@vercel/commerce'
 import { swellProvider, SwellProvider } from './provider'
 
 export { swellProvider }
diff --git a/framework/swell/next.config.js b/packages/swell/src/next.config.cjs
similarity index 100%
rename from framework/swell/next.config.js
rename to packages/swell/src/next.config.cjs
diff --git a/framework/swell/product/index.ts b/packages/swell/src/product/index.ts
similarity index 100%
rename from framework/swell/product/index.ts
rename to packages/swell/src/product/index.ts
diff --git a/packages/swell/src/product/use-price.tsx b/packages/swell/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/swell/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/swell/product/use-search.tsx b/packages/swell/src/product/use-search.tsx
similarity index 91%
rename from framework/swell/product/use-search.tsx
rename to packages/swell/src/product/use-search.tsx
index 62f813368..b996099a4 100644
--- a/framework/swell/product/use-search.tsx
+++ b/packages/swell/src/product/use-search.tsx
@@ -1,5 +1,5 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
 import { normalizeProduct } from '../utils'
 import { SwellProduct } from '../types'
 import type { SearchProductsHook } from '../types/product'
diff --git a/framework/swell/provider.ts b/packages/swell/src/provider.ts
similarity index 95%
rename from framework/swell/provider.ts
rename to packages/swell/src/provider.ts
index 062f1c32c..afe07dcfd 100644
--- a/framework/swell/provider.ts
+++ b/packages/swell/src/provider.ts
@@ -1,4 +1,4 @@
-import { Provider } from '@commerce'
+import { Provider } from '@vercel/commerce'
 import { SWELL_CHECKOUT_ID_COOKIE } from './const'
 
 import { handler as useCart } from './cart/use-cart'
diff --git a/framework/swell/swell.ts b/packages/swell/src/swell.ts
similarity index 91%
rename from framework/swell/swell.ts
rename to packages/swell/src/swell.ts
index d73bceb72..eb49ce55d 100644
--- a/framework/swell/swell.ts
+++ b/packages/swell/src/swell.ts
@@ -1,3 +1,4 @@
+// @ts-ignore
 import swell from 'swell-js'
 import { SWELL_STORE_ID, SWELL_PUBLIC_KEY } from './const'
 
diff --git a/framework/swell/types.ts b/packages/swell/src/types.ts
similarity index 92%
rename from framework/swell/types.ts
rename to packages/swell/src/types.ts
index ad8ee3b68..b02bbd8ca 100644
--- a/framework/swell/types.ts
+++ b/packages/swell/src/types.ts
@@ -1,6 +1,6 @@
-import * as Core from '@commerce/types/cart'
-import { Customer } from '@commerce/types'
-import { CheckoutLineItem } from './schema'
+import * as Core from '@vercel/commerce/types/cart'
+import { Customer } from '@vercel/commerce/types'
+import { CheckoutLineItem } from '../schema'
 
 export type SwellImage = {
   file: {
diff --git a/packages/swell/src/types/cart.ts b/packages/swell/src/types/cart.ts
new file mode 100644
index 000000000..e6838fb45
--- /dev/null
+++ b/packages/swell/src/types/cart.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/cart'
diff --git a/packages/swell/src/types/checkout.ts b/packages/swell/src/types/checkout.ts
new file mode 100644
index 000000000..d139db685
--- /dev/null
+++ b/packages/swell/src/types/checkout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/checkout'
diff --git a/packages/swell/src/types/common.ts b/packages/swell/src/types/common.ts
new file mode 100644
index 000000000..23b8daa11
--- /dev/null
+++ b/packages/swell/src/types/common.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/common'
diff --git a/packages/swell/src/types/customer.ts b/packages/swell/src/types/customer.ts
new file mode 100644
index 000000000..c637055b9
--- /dev/null
+++ b/packages/swell/src/types/customer.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/customer'
diff --git a/framework/swell/types/index.ts b/packages/swell/src/types/index.ts
similarity index 100%
rename from framework/swell/types/index.ts
rename to packages/swell/src/types/index.ts
diff --git a/packages/swell/src/types/login.ts b/packages/swell/src/types/login.ts
new file mode 100644
index 000000000..44b017dcd
--- /dev/null
+++ b/packages/swell/src/types/login.ts
@@ -0,0 +1,11 @@
+import * as Core from '@vercel/commerce/types/login'
+import { LoginBody, LoginTypes } from '@vercel/commerce/types/login'
+
+export * from '@vercel/commerce/types/login'
+
+export type LoginHook<T extends LoginTypes = LoginTypes> = {
+  data: null
+  actionInput: LoginBody
+  fetcherInput: LoginBody
+  body: T['body']
+}
diff --git a/packages/swell/src/types/logout.ts b/packages/swell/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/swell/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/packages/swell/src/types/page.ts b/packages/swell/src/types/page.ts
new file mode 100644
index 000000000..12f6b02d7
--- /dev/null
+++ b/packages/swell/src/types/page.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/page'
diff --git a/packages/swell/src/types/product.ts b/packages/swell/src/types/product.ts
new file mode 100644
index 000000000..72ca02f02
--- /dev/null
+++ b/packages/swell/src/types/product.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/product'
diff --git a/packages/swell/src/types/signup.ts b/packages/swell/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/swell/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/packages/swell/src/types/site.ts b/packages/swell/src/types/site.ts
new file mode 100644
index 000000000..96a2e476e
--- /dev/null
+++ b/packages/swell/src/types/site.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/site'
diff --git a/packages/swell/src/types/wishlist.ts b/packages/swell/src/types/wishlist.ts
new file mode 100644
index 000000000..af92d9f63
--- /dev/null
+++ b/packages/swell/src/types/wishlist.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/wishlist'
diff --git a/framework/swell/utils/customer-token.ts b/packages/swell/src/utils/customer-token.ts
similarity index 100%
rename from framework/swell/utils/customer-token.ts
rename to packages/swell/src/utils/customer-token.ts
diff --git a/framework/swell/utils/get-categories.ts b/packages/swell/src/utils/get-categories.ts
similarity index 100%
rename from framework/swell/utils/get-categories.ts
rename to packages/swell/src/utils/get-categories.ts
diff --git a/framework/swell/utils/get-checkout-id.ts b/packages/swell/src/utils/get-checkout-id.ts
similarity index 100%
rename from framework/swell/utils/get-checkout-id.ts
rename to packages/swell/src/utils/get-checkout-id.ts
diff --git a/framework/swell/utils/get-search-variables.ts b/packages/swell/src/utils/get-search-variables.ts
similarity index 100%
rename from framework/swell/utils/get-search-variables.ts
rename to packages/swell/src/utils/get-search-variables.ts
diff --git a/framework/swell/utils/get-sort-variables.ts b/packages/swell/src/utils/get-sort-variables.ts
similarity index 100%
rename from framework/swell/utils/get-sort-variables.ts
rename to packages/swell/src/utils/get-sort-variables.ts
diff --git a/framework/swell/utils/get-vendors.ts b/packages/swell/src/utils/get-vendors.ts
similarity index 100%
rename from framework/swell/utils/get-vendors.ts
rename to packages/swell/src/utils/get-vendors.ts
diff --git a/framework/swell/utils/handle-fetch-response.ts b/packages/swell/src/utils/handle-fetch-response.ts
similarity index 82%
rename from framework/swell/utils/handle-fetch-response.ts
rename to packages/swell/src/utils/handle-fetch-response.ts
index 2688c9c70..d120cab13 100644
--- a/framework/swell/utils/handle-fetch-response.ts
+++ b/packages/swell/src/utils/handle-fetch-response.ts
@@ -1,4 +1,4 @@
-import { CommerceError } from '@commerce/utils/errors'
+import { CommerceError } from '@vercel/commerce/utils/errors'
 
 type SwellFetchResponse = {
   error: {
diff --git a/framework/swell/utils/handle-login.ts b/packages/swell/src/utils/handle-login.ts
similarity index 92%
rename from framework/swell/utils/handle-login.ts
rename to packages/swell/src/utils/handle-login.ts
index 77b6873e3..8628262ca 100644
--- a/framework/swell/utils/handle-login.ts
+++ b/packages/swell/src/utils/handle-login.ts
@@ -1,4 +1,4 @@
-import { ValidationError } from '@commerce/utils/errors'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import { setCustomerToken } from './customer-token'
 
 const getErrorMessage = ({
diff --git a/framework/swell/utils/index.ts b/packages/swell/src/utils/index.ts
similarity index 100%
rename from framework/swell/utils/index.ts
rename to packages/swell/src/utils/index.ts
diff --git a/framework/swell/utils/normalize.ts b/packages/swell/src/utils/normalize.ts
similarity index 99%
rename from framework/swell/utils/normalize.ts
rename to packages/swell/src/utils/normalize.ts
index 2306f0662..9bbad5961 100644
--- a/framework/swell/utils/normalize.ts
+++ b/packages/swell/src/utils/normalize.ts
@@ -1,6 +1,6 @@
 import { Customer } from '../types/customer'
 import { Product, ProductOption } from '../types/product'
-import { MoneyV2 } from '../schema'
+import { MoneyV2 } from '../../schema'
 
 import type {
   Cart,
diff --git a/framework/swell/utils/storage.ts b/packages/swell/src/utils/storage.ts
similarity index 100%
rename from framework/swell/utils/storage.ts
rename to packages/swell/src/utils/storage.ts
diff --git a/framework/swell/wishlist/use-add-item.tsx b/packages/swell/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/swell/wishlist/use-add-item.tsx
rename to packages/swell/src/wishlist/use-add-item.tsx
diff --git a/framework/swell/wishlist/use-remove-item.tsx b/packages/swell/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/swell/wishlist/use-remove-item.tsx
rename to packages/swell/src/wishlist/use-remove-item.tsx
diff --git a/framework/swell/wishlist/use-wishlist.tsx b/packages/swell/src/wishlist/use-wishlist.tsx
similarity index 90%
rename from framework/swell/wishlist/use-wishlist.tsx
rename to packages/swell/src/wishlist/use-wishlist.tsx
index cd1bfa0ad..0506ae9d4 100644
--- a/framework/swell/wishlist/use-wishlist.tsx
+++ b/packages/swell/src/wishlist/use-wishlist.tsx
@@ -1,8 +1,8 @@
 // TODO: replace this hook and other wishlist hooks with a handler, or remove them if
 // Swell doesn't have a wishlist
 
-import { HookFetcher } from '@commerce/utils/types'
-import { Product } from '../schema'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import { Product } from '../../schema'
 
 const defaultOpts = {}
 
diff --git a/packages/swell/tsconfig.json b/packages/swell/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/swell/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/framework/vendure/.env.template b/packages/vendure/.env.template
similarity index 100%
rename from framework/vendure/.env.template
rename to packages/vendure/.env.template
diff --git a/packages/vendure/.prettierignore b/packages/vendure/.prettierignore
new file mode 100644
index 000000000..f06235c46
--- /dev/null
+++ b/packages/vendure/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/packages/vendure/.prettierrc b/packages/vendure/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/packages/vendure/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/framework/vendure/README.md b/packages/vendure/README.md
similarity index 95%
rename from framework/vendure/README.md
rename to packages/vendure/README.md
index 7f1dccb3f..485125ce2 100644
--- a/framework/vendure/README.md
+++ b/packages/vendure/README.md
@@ -28,8 +28,10 @@ This provider makes use of GraphQL code generation. The [schema.graphql](./schem
 
 When developing the provider, changes to any GraphQL operations should be followed by re-generation of the types and schema files:
 
-From the project root dir, run
+From the package dir, run
 
 ```sh
-graphql-codegen --config ./framework/vendure/codegen.json
+yarn generate
+# or
+npm run generate
 ```
diff --git a/framework/vendure/codegen.json b/packages/vendure/codegen.json
similarity index 75%
rename from framework/vendure/codegen.json
rename to packages/vendure/codegen.json
index 79a2b6ffa..8c84d29a9 100644
--- a/framework/vendure/codegen.json
+++ b/packages/vendure/codegen.json
@@ -4,13 +4,13 @@
   },
   "documents": [
     {
-      "./framework/vendure/**/*.{ts,tsx}": {
+      "./src/**/*.{ts,tsx}": {
         "noRequire": true
       }
     }
   ],
   "generates": {
-    "./framework/vendure/schema.d.ts": {
+    "./schema.d.ts": {
       "plugins": ["typescript", "typescript-operations"],
       "config": {
         "scalars": {
@@ -18,7 +18,7 @@
         }
       }
     },
-    "./framework/vendure/schema.graphql": {
+    "./schema.graphql": {
       "plugins": ["schema-ast"]
     }
   },
diff --git a/packages/vendure/package.json b/packages/vendure/package.json
new file mode 100644
index 000000000..dc9818aee
--- /dev/null
+++ b/packages/vendure/package.json
@@ -0,0 +1,78 @@
+{
+  "name": "@vercel/commerce-vendure",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "build": "rm -fr dist/* && tsc",
+    "dev": "npm run build -- --watch",
+    "prettier-fix": "prettier --write .",
+    "generate": "graphql-codegen"
+  },
+  "sideEffects": false,
+  "type": "module",
+  "exports": {
+    ".": "./dist/index.js",
+    "./*": [
+      "./dist/*.js",
+      "./dist/*/index.js"
+    ],
+    "./next.config": "./dist/next.config.cjs"
+  },
+  "typesVersions": {
+    "*": {
+      "*": [
+        "src/*",
+        "src/*/index"
+      ],
+      "next.config": [
+        "dist/next.config.d.cts"
+      ]
+    }
+  },
+  "files": [
+    "dist",
+    "schema.d.ts"
+  ],
+  "publishConfig": {
+    "typesVersions": {
+      "*": {
+        "*": [
+          "dist/*.d.ts",
+          "dist/*/index.d.ts"
+        ],
+        "next.config": [
+          "dist/next.config.d.cts"
+        ]
+      }
+    }
+  },
+  "dependencies": {
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/fetch": "^6.1.1"
+  },
+  "peerDependencies": {
+    "next": "^12",
+    "react": "^17",
+    "react-dom": "^17"
+  },
+  "devDependencies": {
+    "@graphql-codegen/cli": "^2.3.1",
+    "@graphql-codegen/schema-ast": "^2.4.1",
+    "@graphql-codegen/typescript": "^2.4.2",
+    "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "lint-staged": "^12.1.7",
+    "next": "^12.0.8",
+    "prettier": "^2.5.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "typescript": "^4.5.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/framework/vendure/schema.d.ts b/packages/vendure/schema.d.ts
similarity index 100%
rename from framework/vendure/schema.d.ts
rename to packages/vendure/schema.d.ts
diff --git a/framework/vendure/schema.graphql b/packages/vendure/schema.graphql
similarity index 100%
rename from framework/vendure/schema.graphql
rename to packages/vendure/schema.graphql
diff --git a/framework/vendure/api/endpoints/cart/index.ts b/packages/vendure/src/api/endpoints/cart/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/cart/index.ts
rename to packages/vendure/src/api/endpoints/cart/index.ts
diff --git a/framework/vendure/api/endpoints/catalog/index.ts b/packages/vendure/src/api/endpoints/catalog/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/catalog/index.ts
rename to packages/vendure/src/api/endpoints/catalog/index.ts
diff --git a/framework/vendure/api/endpoints/catalog/products.ts b/packages/vendure/src/api/endpoints/catalog/products.ts
similarity index 100%
rename from framework/vendure/api/endpoints/catalog/products.ts
rename to packages/vendure/src/api/endpoints/catalog/products.ts
diff --git a/framework/vendure/api/endpoints/checkout/index.ts b/packages/vendure/src/api/endpoints/checkout/index.ts
similarity index 88%
rename from framework/vendure/api/endpoints/checkout/index.ts
rename to packages/vendure/src/api/endpoints/checkout/index.ts
index 7a3cd03ec..e063dbf58 100644
--- a/framework/vendure/api/endpoints/checkout/index.ts
+++ b/packages/vendure/src/api/endpoints/checkout/index.ts
@@ -1,7 +1,7 @@
 import { NextApiHandler } from 'next'
-import { CommerceAPI, createEndpoint, GetAPISchema } from '@commerce/api'
-import { CheckoutSchema } from '@commerce/types/checkout'
-import checkoutEndpoint from '@commerce/api/endpoints/checkout'
+import { CommerceAPI, createEndpoint, GetAPISchema } from '@vercel/commerce/api'
+import { CheckoutSchema } from '@vercel/commerce/types/checkout'
+import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
 
 const getCheckout: CheckoutEndpoint['handlers']['getCheckout'] = async ({
   req,
diff --git a/framework/vendure/api/endpoints/customer/address.ts b/packages/vendure/src/api/endpoints/customer/address.ts
similarity index 100%
rename from framework/vendure/api/endpoints/customer/address.ts
rename to packages/vendure/src/api/endpoints/customer/address.ts
diff --git a/framework/vendure/api/endpoints/customer/card.ts b/packages/vendure/src/api/endpoints/customer/card.ts
similarity index 100%
rename from framework/vendure/api/endpoints/customer/card.ts
rename to packages/vendure/src/api/endpoints/customer/card.ts
diff --git a/framework/vendure/api/endpoints/customer/index.ts b/packages/vendure/src/api/endpoints/customer/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/customer/index.ts
rename to packages/vendure/src/api/endpoints/customer/index.ts
diff --git a/framework/vendure/api/endpoints/login/index.ts b/packages/vendure/src/api/endpoints/login/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/login/index.ts
rename to packages/vendure/src/api/endpoints/login/index.ts
diff --git a/framework/vendure/api/endpoints/logout/index.ts b/packages/vendure/src/api/endpoints/logout/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/logout/index.ts
rename to packages/vendure/src/api/endpoints/logout/index.ts
diff --git a/framework/vendure/api/endpoints/signup/index.ts b/packages/vendure/src/api/endpoints/signup/index.ts
similarity index 100%
rename from framework/vendure/api/endpoints/signup/index.ts
rename to packages/vendure/src/api/endpoints/signup/index.ts
diff --git a/framework/vendure/api/endpoints/wishlist/index.tsx b/packages/vendure/src/api/endpoints/wishlist/index.tsx
similarity index 100%
rename from framework/vendure/api/endpoints/wishlist/index.tsx
rename to packages/vendure/src/api/endpoints/wishlist/index.tsx
diff --git a/framework/vendure/api/index.ts b/packages/vendure/src/api/index.ts
similarity index 90%
rename from framework/vendure/api/index.ts
rename to packages/vendure/src/api/index.ts
index 6762ee6aa..cbe56be56 100644
--- a/framework/vendure/api/index.ts
+++ b/packages/vendure/src/api/index.ts
@@ -1,5 +1,8 @@
-import type { APIProvider, CommerceAPIConfig } from '@commerce/api'
-import { CommerceAPI, getCommerceApi as commerceApi } from '@commerce/api'
+import type { CommerceAPIConfig } from '@vercel/commerce/api'
+import {
+  CommerceAPI,
+  getCommerceApi as commerceApi,
+} from '@vercel/commerce/api'
 import fetchGraphqlApi from './utils/fetch-graphql-api'
 
 import login from './operations/login'
diff --git a/framework/vendure/api/operations/get-all-pages.ts b/packages/vendure/src/api/operations/get-all-pages.ts
similarity index 88%
rename from framework/vendure/api/operations/get-all-pages.ts
rename to packages/vendure/src/api/operations/get-all-pages.ts
index f76b7390f..7865cf908 100644
--- a/framework/vendure/api/operations/get-all-pages.ts
+++ b/packages/vendure/src/api/operations/get-all-pages.ts
@@ -1,6 +1,6 @@
 import { VendureConfig } from '../'
-import { OperationContext } from '@commerce/api/operations'
-import { Provider } from '../../../bigcommerce/api'
+import { OperationContext } from '@vercel/commerce/api/operations'
+import { Provider } from '../'
 
 export type Page = any
 
diff --git a/framework/vendure/api/operations/get-all-product-paths.ts b/packages/vendure/src/api/operations/get-all-product-paths.ts
similarity index 78%
rename from framework/vendure/api/operations/get-all-product-paths.ts
rename to packages/vendure/src/api/operations/get-all-product-paths.ts
index 54ca3b136..bdb47974f 100644
--- a/framework/vendure/api/operations/get-all-product-paths.ts
+++ b/packages/vendure/src/api/operations/get-all-product-paths.ts
@@ -1,9 +1,12 @@
-import { OperationContext, OperationOptions } from '@commerce/api/operations'
-import type { GetAllProductPathsQuery } from '../../schema'
+import {
+  OperationContext,
+  OperationOptions,
+} from '@vercel/commerce/api/operations'
+import type { GetAllProductPathsQuery } from '../../../schema'
 import { Provider } from '../index'
 import { getAllProductPathsQuery } from '../../utils/queries/get-all-product-paths-query'
-import { GetAllProductPathsOperation } from '@commerce/types/product'
-import { BigcommerceConfig } from '../../../bigcommerce/api'
+import { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
+import { VendureConfig } from '../'
 
 export type GetAllProductPathsResult = {
   products: Array<{ node: { path: string } }>
@@ -16,13 +19,13 @@ export default function getAllProductPathsOperation({
     T extends GetAllProductPathsOperation
   >(opts?: {
     variables?: T['variables']
-    config?: BigcommerceConfig
+    config?: VendureConfig
   }): Promise<T['data']>
 
   async function getAllProductPaths<T extends GetAllProductPathsOperation>(
     opts: {
       variables?: T['variables']
-      config?: BigcommerceConfig
+      config?: VendureConfig
     } & OperationOptions
   ): Promise<T['data']>
 
@@ -33,7 +36,7 @@ export default function getAllProductPathsOperation({
   }: {
     query?: string
     variables?: T['variables']
-    config?: BigcommerceConfig
+    config?: VendureConfig
   } = {}): Promise<T['data']> {
     const config = commerce.getConfig(cfg)
     // RecursivePartial forces the method to check for every prop in the data, which is
diff --git a/framework/vendure/api/operations/get-all-products.ts b/packages/vendure/src/api/operations/get-all-products.ts
similarity index 86%
rename from framework/vendure/api/operations/get-all-products.ts
rename to packages/vendure/src/api/operations/get-all-products.ts
index 68d4ce9b7..f609ac805 100644
--- a/framework/vendure/api/operations/get-all-products.ts
+++ b/packages/vendure/src/api/operations/get-all-products.ts
@@ -1,9 +1,9 @@
-import { Product } from '@commerce/types/product'
+import { Product } from '@vercel/commerce/types/product'
 import { Provider, VendureConfig } from '../'
-import { GetAllProductsQuery } from '../../schema'
+import { GetAllProductsQuery } from '../../../schema'
 import { normalizeSearchResult } from '../../utils/normalize'
 import { getAllProductsQuery } from '../../utils/queries/get-all-products-query'
-import { OperationContext } from '@commerce/api/operations'
+import { OperationContext } from '@vercel/commerce/api/operations'
 
 export type ProductVariables = { first?: number }
 
diff --git a/framework/vendure/api/operations/get-customer-wishlist.ts b/packages/vendure/src/api/operations/get-customer-wishlist.ts
similarity index 89%
rename from framework/vendure/api/operations/get-customer-wishlist.ts
rename to packages/vendure/src/api/operations/get-customer-wishlist.ts
index 0040ef36d..35fca53c7 100644
--- a/framework/vendure/api/operations/get-customer-wishlist.ts
+++ b/packages/vendure/src/api/operations/get-customer-wishlist.ts
@@ -1,4 +1,4 @@
-import { OperationContext } from '@commerce/api/operations'
+import { OperationContext } from '@vercel/commerce/api/operations'
 import { Provider, VendureConfig } from '../'
 
 export default function getCustomerWishlistOperation({
diff --git a/framework/vendure/api/operations/get-page.ts b/packages/vendure/src/api/operations/get-page.ts
similarity index 93%
rename from framework/vendure/api/operations/get-page.ts
rename to packages/vendure/src/api/operations/get-page.ts
index 59717dc84..909277b48 100644
--- a/framework/vendure/api/operations/get-page.ts
+++ b/packages/vendure/src/api/operations/get-page.ts
@@ -1,5 +1,5 @@
 import { VendureConfig, Provider } from '../'
-import { OperationContext } from '@commerce/api/operations'
+import { OperationContext } from '@vercel/commerce/api/operations'
 
 export type Page = any
 
diff --git a/framework/vendure/api/operations/get-product.ts b/packages/vendure/src/api/operations/get-product.ts
similarity index 92%
rename from framework/vendure/api/operations/get-product.ts
rename to packages/vendure/src/api/operations/get-product.ts
index 4ab9ed2d9..6b58e9694 100644
--- a/framework/vendure/api/operations/get-product.ts
+++ b/packages/vendure/src/api/operations/get-product.ts
@@ -1,7 +1,7 @@
-import { Product } from '@commerce/types/product'
-import { OperationContext } from '@commerce/api/operations'
+import { Product } from '@vercel/commerce/types/product'
+import { OperationContext } from '@vercel/commerce/api/operations'
 import { Provider, VendureConfig } from '../'
-import { GetProductQuery } from '../../schema'
+import { GetProductQuery } from '../../../schema'
 import { getProductQuery } from '../../utils/queries/get-product-query'
 
 export default function getProductOperation({
diff --git a/framework/vendure/api/operations/get-site-info.ts b/packages/vendure/src/api/operations/get-site-info.ts
similarity index 87%
rename from framework/vendure/api/operations/get-site-info.ts
rename to packages/vendure/src/api/operations/get-site-info.ts
index acfcea424..ce2f5fa3f 100644
--- a/framework/vendure/api/operations/get-site-info.ts
+++ b/packages/vendure/src/api/operations/get-site-info.ts
@@ -1,9 +1,9 @@
 import { Provider, VendureConfig } from '../'
-import { GetCollectionsQuery } from '../../schema'
+import { GetCollectionsQuery } from '../../../schema'
 import { arrayToTree } from '../../utils/array-to-tree'
 import { getCollectionsQuery } from '../../utils/queries/get-collections-query'
-import { OperationContext } from '@commerce/api/operations'
-import { Category } from '@commerce/types/site'
+import { OperationContext } from '@vercel/commerce/api/operations'
+import { Category } from '@vercel/commerce/types/site'
 
 export type GetSiteInfoResult<
   T extends { categories: any[]; brands: any[] } = {
diff --git a/framework/vendure/api/operations/login.ts b/packages/vendure/src/api/operations/login.ts
similarity index 90%
rename from framework/vendure/api/operations/login.ts
rename to packages/vendure/src/api/operations/login.ts
index 4ad408e0a..07ee5fa1d 100644
--- a/framework/vendure/api/operations/login.ts
+++ b/packages/vendure/src/api/operations/login.ts
@@ -2,10 +2,10 @@ import type { ServerResponse } from 'http'
 import type {
   OperationContext,
   OperationOptions,
-} from '@commerce/api/operations'
-import { ValidationError } from '@commerce/utils/errors'
+} from '@vercel/commerce/api/operations'
+import { ValidationError } from '@vercel/commerce/utils/errors'
 import type { LoginOperation } from '../../types/login'
-import type { LoginMutation } from '../../schema'
+import type { LoginMutation } from '../../../schema'
 import { Provider, VendureConfig } from '..'
 import { loginMutation } from '../../utils/mutations/log-in-mutation'
 
diff --git a/framework/vendure/api/utils/fetch-graphql-api.ts b/packages/vendure/src/api/utils/fetch-graphql-api.ts
similarity index 86%
rename from framework/vendure/api/utils/fetch-graphql-api.ts
rename to packages/vendure/src/api/utils/fetch-graphql-api.ts
index 64a02dde5..7c0fbc792 100644
--- a/framework/vendure/api/utils/fetch-graphql-api.ts
+++ b/packages/vendure/src/api/utils/fetch-graphql-api.ts
@@ -1,5 +1,5 @@
-import { FetcherError } from '@commerce/utils/errors'
-import type { GraphQLFetcher } from '@commerce/api'
+import { FetcherError } from '@vercel/commerce/utils/errors'
+import type { GraphQLFetcher } from '@vercel/commerce/api'
 import { getCommerceApi } from '../'
 import fetch from './fetch'
 
diff --git a/framework/vendure/api/utils/fetch.ts b/packages/vendure/src/api/utils/fetch.ts
similarity index 100%
rename from framework/vendure/api/utils/fetch.ts
rename to packages/vendure/src/api/utils/fetch.ts
diff --git a/framework/vendure/auth/index.ts b/packages/vendure/src/auth/index.ts
similarity index 100%
rename from framework/vendure/auth/index.ts
rename to packages/vendure/src/auth/index.ts
diff --git a/framework/vendure/auth/use-login.tsx b/packages/vendure/src/auth/use-login.tsx
similarity index 80%
rename from framework/vendure/auth/use-login.tsx
rename to packages/vendure/src/auth/use-login.tsx
index 8bc5afcb0..ce1a45456 100644
--- a/framework/vendure/auth/use-login.tsx
+++ b/packages/vendure/src/auth/use-login.tsx
@@ -1,10 +1,10 @@
 import { useCallback } from 'react'
-import { MutationHook } from '@commerce/utils/types'
-import useLogin, { UseLogin } from '@commerce/auth/use-login'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
 import { LoginHook } from '../types/login'
-import { CommerceError, ValidationError } from '@commerce/utils/errors'
+import { CommerceError, ValidationError } from '@vercel/commerce/utils/errors'
 import useCustomer from '../customer/use-customer'
-import { LoginMutation, LoginMutationVariables } from '../schema'
+import { LoginMutation, LoginMutationVariables } from '../../schema'
 import { loginMutation } from '../utils/mutations/log-in-mutation'
 
 export default useLogin as UseLogin<typeof handler>
diff --git a/framework/vendure/auth/use-logout.tsx b/packages/vendure/src/auth/use-logout.tsx
similarity index 81%
rename from framework/vendure/auth/use-logout.tsx
rename to packages/vendure/src/auth/use-logout.tsx
index be1b18586..8a099cf77 100644
--- a/framework/vendure/auth/use-logout.tsx
+++ b/packages/vendure/src/auth/use-logout.tsx
@@ -1,8 +1,8 @@
 import { useCallback } from 'react'
-import { MutationHook } from '@commerce/utils/types'
-import useLogout, { UseLogout } from '@commerce/auth/use-logout'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
 import useCustomer from '../customer/use-customer'
-import { LogoutMutation } from '../schema'
+import { LogoutMutation } from '../../schema'
 import { logoutMutation } from '../utils/mutations/log-out-mutation'
 import { LogoutHook } from '../types/logout'
 
diff --git a/framework/vendure/auth/use-signup.tsx b/packages/vendure/src/auth/use-signup.tsx
similarity index 86%
rename from framework/vendure/auth/use-signup.tsx
rename to packages/vendure/src/auth/use-signup.tsx
index 910c6824e..0c19c91bb 100644
--- a/framework/vendure/auth/use-signup.tsx
+++ b/packages/vendure/src/auth/use-signup.tsx
@@ -1,13 +1,13 @@
 import { useCallback } from 'react'
-import { MutationHook } from '@commerce/utils/types'
-import { CommerceError, ValidationError } from '@commerce/utils/errors'
-import useSignup, { UseSignup } from '@commerce/auth/use-signup'
+import { MutationHook } from '@vercel/commerce/utils/types'
+import { CommerceError, ValidationError } from '@vercel/commerce/utils/errors'
+import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
 import useCustomer from '../customer/use-customer'
 import {
   RegisterCustomerInput,
   SignupMutation,
   SignupMutationVariables,
-} from '../schema'
+} from '../../schema'
 import { signupMutation } from '../utils/mutations/sign-up-mutation'
 import { SignupHook } from '../types/signup'
 
diff --git a/framework/vendure/cart/index.ts b/packages/vendure/src/cart/index.ts
similarity index 100%
rename from framework/vendure/cart/index.ts
rename to packages/vendure/src/cart/index.ts
diff --git a/framework/vendure/cart/use-add-item.tsx b/packages/vendure/src/cart/use-add-item.tsx
similarity index 84%
rename from framework/vendure/cart/use-add-item.tsx
rename to packages/vendure/src/cart/use-add-item.tsx
index 7c131eaea..d7bb0bf66 100644
--- a/framework/vendure/cart/use-add-item.tsx
+++ b/packages/vendure/src/cart/use-add-item.tsx
@@ -1,9 +1,9 @@
-import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
-import { CommerceError } from '@commerce/utils/errors'
-import { MutationHook } from '@commerce/utils/types'
+import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import { MutationHook } from '@vercel/commerce/utils/types'
 import { useCallback } from 'react'
 import useCart from './use-cart'
-import { AddItemToOrderMutation } from '../schema'
+import { AddItemToOrderMutation } from '../../schema'
 import { normalizeCart } from '../utils/normalize'
 import { addItemToOrderMutation } from '../utils/mutations/add-item-to-order-mutation'
 import { AddItemHook } from '../types/cart'
diff --git a/framework/vendure/cart/use-cart.tsx b/packages/vendure/src/cart/use-cart.tsx
similarity index 86%
rename from framework/vendure/cart/use-cart.tsx
rename to packages/vendure/src/cart/use-cart.tsx
index de42036b8..750f11040 100644
--- a/framework/vendure/cart/use-cart.tsx
+++ b/packages/vendure/src/cart/use-cart.tsx
@@ -1,6 +1,6 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCart, { UseCart } from '@commerce/cart/use-cart'
-import { ActiveOrderQuery, CartFragment } from '../schema'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
+import { ActiveOrderQuery, CartFragment } from '../../schema'
 import { normalizeCart } from '../utils/normalize'
 import { useMemo } from 'react'
 import { getCartQuery } from '../utils/queries/get-cart-query'
diff --git a/framework/vendure/cart/use-remove-item.tsx b/packages/vendure/src/cart/use-remove-item.tsx
similarity index 83%
rename from framework/vendure/cart/use-remove-item.tsx
rename to packages/vendure/src/cart/use-remove-item.tsx
index dde8e18b3..2aa316505 100644
--- a/framework/vendure/cart/use-remove-item.tsx
+++ b/packages/vendure/src/cart/use-remove-item.tsx
@@ -4,15 +4,17 @@ import {
   MutationHook,
   MutationHookContext,
   SWRHook,
-} from '@commerce/utils/types'
-import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
-import { CommerceError } from '@commerce/utils/errors'
-import { Cart } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import useRemoveItem, {
+  UseRemoveItem,
+} from '@vercel/commerce/cart/use-remove-item'
+import { CommerceError } from '@vercel/commerce/utils/errors'
+import { Cart } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 import {
   RemoveOrderLineMutation,
   RemoveOrderLineMutationVariables,
-} from '../schema'
+} from '../../schema'
 import { normalizeCart } from '../utils/normalize'
 import { RemoveItemHook } from '../types/cart'
 import { removeOrderLineMutation } from '../utils/mutations/remove-order-line-mutation'
diff --git a/framework/vendure/cart/use-update-item.tsx b/packages/vendure/src/cart/use-update-item.tsx
similarity index 88%
rename from framework/vendure/cart/use-update-item.tsx
rename to packages/vendure/src/cart/use-update-item.tsx
index 029966c5a..2f3c8d47b 100644
--- a/framework/vendure/cart/use-update-item.tsx
+++ b/packages/vendure/src/cart/use-update-item.tsx
@@ -3,15 +3,17 @@ import {
   HookFetcherContext,
   MutationHook,
   MutationHookContext,
-} from '@commerce/utils/types'
-import { CommerceError, ValidationError } from '@commerce/utils/errors'
-import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
-import { CartItemBody, LineItem } from '@commerce/types/cart'
+} from '@vercel/commerce/utils/types'
+import { CommerceError, ValidationError } from '@vercel/commerce/utils/errors'
+import useUpdateItem, {
+  UseUpdateItem,
+} from '@vercel/commerce/cart/use-update-item'
+import { CartItemBody, LineItem } from '@vercel/commerce/types/cart'
 import useCart from './use-cart'
 import {
   AdjustOrderLineMutation,
   AdjustOrderLineMutationVariables,
-} from '../schema'
+} from '../../schema'
 import { normalizeCart } from '../utils/normalize'
 import { adjustOrderLineMutation } from '../utils/mutations/adjust-order-line-mutation'
 import { UpdateItemHook } from '../types/cart'
diff --git a/packages/vendure/src/checkout/use-checkout.tsx b/packages/vendure/src/checkout/use-checkout.tsx
new file mode 100644
index 000000000..76997be73
--- /dev/null
+++ b/packages/vendure/src/checkout/use-checkout.tsx
@@ -0,0 +1,16 @@
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCheckout, {
+  UseCheckout,
+} from '@vercel/commerce/checkout/use-checkout'
+
+export default useCheckout as UseCheckout<typeof handler>
+
+export const handler: SWRHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ useData }) =>
+    async (input) => ({}),
+}
diff --git a/framework/vendure/commerce.config.json b/packages/vendure/src/commerce.config.json
similarity index 100%
rename from framework/vendure/commerce.config.json
rename to packages/vendure/src/commerce.config.json
diff --git a/packages/vendure/src/customer/address/use-add-item.tsx b/packages/vendure/src/customer/address/use-add-item.tsx
new file mode 100644
index 000000000..4f85c8472
--- /dev/null
+++ b/packages/vendure/src/customer/address/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/address/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/packages/vendure/src/customer/card/use-add-item.tsx b/packages/vendure/src/customer/card/use-add-item.tsx
new file mode 100644
index 000000000..77d149eff
--- /dev/null
+++ b/packages/vendure/src/customer/card/use-add-item.tsx
@@ -0,0 +1,17 @@
+import useAddItem, {
+  UseAddItem,
+} from '@vercel/commerce/customer/card/use-add-item'
+import { MutationHook } from '@vercel/commerce/utils/types'
+
+export default useAddItem as UseAddItem<typeof handler>
+
+export const handler: MutationHook<any> = {
+  fetchOptions: {
+    query: '',
+  },
+  async fetcher({ input, options, fetch }) {},
+  useHook:
+    ({ fetch }) =>
+    () =>
+    async () => ({}),
+}
diff --git a/framework/vendure/customer/index.ts b/packages/vendure/src/customer/index.ts
similarity index 100%
rename from framework/vendure/customer/index.ts
rename to packages/vendure/src/customer/index.ts
diff --git a/framework/vendure/customer/use-customer.tsx b/packages/vendure/src/customer/use-customer.tsx
similarity index 81%
rename from framework/vendure/customer/use-customer.tsx
rename to packages/vendure/src/customer/use-customer.tsx
index e9047485b..80da077ff 100644
--- a/framework/vendure/customer/use-customer.tsx
+++ b/packages/vendure/src/customer/use-customer.tsx
@@ -1,6 +1,8 @@
-import { SWRHook } from '@commerce/utils/types'
-import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
-import { ActiveCustomerQuery } from '../schema'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useCustomer, {
+  UseCustomer,
+} from '@vercel/commerce/customer/use-customer'
+import { ActiveCustomerQuery } from '../../schema'
 import { activeCustomerQuery } from '../utils/queries/active-customer-query'
 import { CustomerHook } from '../types/customer'
 
diff --git a/framework/vendure/fetcher.ts b/packages/vendure/src/fetcher.ts
similarity index 92%
rename from framework/vendure/fetcher.ts
rename to packages/vendure/src/fetcher.ts
index 48b041801..ad0d4bc66 100644
--- a/framework/vendure/fetcher.ts
+++ b/packages/vendure/src/fetcher.ts
@@ -1,5 +1,5 @@
-import { Fetcher } from '@commerce/utils/types'
-import { FetcherError } from '@commerce/utils/errors'
+import { Fetcher } from '@vercel/commerce/utils/types'
+import { FetcherError } from '@vercel/commerce/utils/errors'
 
 async function getText(res: Response) {
   try {
diff --git a/framework/vendure/index.tsx b/packages/vendure/src/index.tsx
similarity index 72%
rename from framework/vendure/index.tsx
rename to packages/vendure/src/index.tsx
index 086940c54..14d0d4c3a 100644
--- a/framework/vendure/index.tsx
+++ b/packages/vendure/src/index.tsx
@@ -1,4 +1,7 @@
-import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
+import {
+  getCommerceProvider,
+  useCommerce as useCoreCommerce,
+} from '@vercel/commerce'
 import { vendureProvider, VendureProvider } from './provider'
 
 export { vendureProvider }
diff --git a/framework/vendure/next.config.js b/packages/vendure/src/next.config.cjs
similarity index 100%
rename from framework/vendure/next.config.js
rename to packages/vendure/src/next.config.cjs
diff --git a/framework/vendure/product/index.ts b/packages/vendure/src/product/index.ts
similarity index 100%
rename from framework/vendure/product/index.ts
rename to packages/vendure/src/product/index.ts
diff --git a/packages/vendure/src/product/use-price.tsx b/packages/vendure/src/product/use-price.tsx
new file mode 100644
index 000000000..fd42d7033
--- /dev/null
+++ b/packages/vendure/src/product/use-price.tsx
@@ -0,0 +1,2 @@
+export * from '@vercel/commerce/product/use-price'
+export { default } from '@vercel/commerce/product/use-price'
diff --git a/framework/vendure/product/use-search.tsx b/packages/vendure/src/product/use-search.tsx
similarity index 85%
rename from framework/vendure/product/use-search.tsx
rename to packages/vendure/src/product/use-search.tsx
index 827b23623..86c6467d1 100644
--- a/framework/vendure/product/use-search.tsx
+++ b/packages/vendure/src/product/use-search.tsx
@@ -1,7 +1,7 @@
-import { SWRHook } from '@commerce/utils/types'
-import useSearch, { UseSearch } from '@commerce/product/use-search'
-import { Product } from '@commerce/types/product'
-import { SearchQuery, SearchQueryVariables } from '../schema'
+import { SWRHook } from '@vercel/commerce/utils/types'
+import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
+import { Product } from '@vercel/commerce/types/product'
+import { SearchQuery, SearchQueryVariables } from '../../schema'
 import { normalizeSearchResult } from '../utils/normalize'
 import { searchQuery } from '../utils/queries/search-query'
 import { SearchProductsHook } from '../types/product'
diff --git a/framework/vendure/provider.ts b/packages/vendure/src/provider.ts
similarity index 100%
rename from framework/vendure/provider.ts
rename to packages/vendure/src/provider.ts
diff --git a/packages/vendure/src/types/cart.ts b/packages/vendure/src/types/cart.ts
new file mode 100644
index 000000000..e6838fb45
--- /dev/null
+++ b/packages/vendure/src/types/cart.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/cart'
diff --git a/packages/vendure/src/types/checkout.ts b/packages/vendure/src/types/checkout.ts
new file mode 100644
index 000000000..d139db685
--- /dev/null
+++ b/packages/vendure/src/types/checkout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/checkout'
diff --git a/packages/vendure/src/types/common.ts b/packages/vendure/src/types/common.ts
new file mode 100644
index 000000000..23b8daa11
--- /dev/null
+++ b/packages/vendure/src/types/common.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/common'
diff --git a/packages/vendure/src/types/customer.ts b/packages/vendure/src/types/customer.ts
new file mode 100644
index 000000000..c637055b9
--- /dev/null
+++ b/packages/vendure/src/types/customer.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/customer'
diff --git a/framework/vendure/types/index.ts b/packages/vendure/src/types/index.ts
similarity index 100%
rename from framework/vendure/types/index.ts
rename to packages/vendure/src/types/index.ts
diff --git a/packages/vendure/src/types/login.ts b/packages/vendure/src/types/login.ts
new file mode 100644
index 000000000..283a5751c
--- /dev/null
+++ b/packages/vendure/src/types/login.ts
@@ -0,0 +1,12 @@
+import * as Core from '@vercel/commerce/types/login'
+import type { LoginMutationVariables } from '../../schema'
+import { LoginBody, LoginTypes } from '@vercel/commerce/types/login'
+
+export * from '@vercel/commerce/types/login'
+
+export type LoginHook<T extends LoginTypes = LoginTypes> = {
+  data: null
+  actionInput: LoginBody
+  fetcherInput: LoginBody
+  body: T['body']
+}
diff --git a/packages/vendure/src/types/logout.ts b/packages/vendure/src/types/logout.ts
new file mode 100644
index 000000000..1de06f8dc
--- /dev/null
+++ b/packages/vendure/src/types/logout.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/logout'
diff --git a/packages/vendure/src/types/page.ts b/packages/vendure/src/types/page.ts
new file mode 100644
index 000000000..12f6b02d7
--- /dev/null
+++ b/packages/vendure/src/types/page.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/page'
diff --git a/packages/vendure/src/types/product.ts b/packages/vendure/src/types/product.ts
new file mode 100644
index 000000000..72ca02f02
--- /dev/null
+++ b/packages/vendure/src/types/product.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/product'
diff --git a/packages/vendure/src/types/signup.ts b/packages/vendure/src/types/signup.ts
new file mode 100644
index 000000000..3f0d1af5a
--- /dev/null
+++ b/packages/vendure/src/types/signup.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/signup'
diff --git a/packages/vendure/src/types/site.ts b/packages/vendure/src/types/site.ts
new file mode 100644
index 000000000..96a2e476e
--- /dev/null
+++ b/packages/vendure/src/types/site.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/site'
diff --git a/packages/vendure/src/types/wishlist.ts b/packages/vendure/src/types/wishlist.ts
new file mode 100644
index 000000000..af92d9f63
--- /dev/null
+++ b/packages/vendure/src/types/wishlist.ts
@@ -0,0 +1 @@
+export * from '@vercel/commerce/types/wishlist'
diff --git a/framework/vendure/utils/array-to-tree.ts b/packages/vendure/src/utils/array-to-tree.ts
similarity index 100%
rename from framework/vendure/utils/array-to-tree.ts
rename to packages/vendure/src/utils/array-to-tree.ts
diff --git a/framework/vendure/utils/fragments/cart-fragment.ts b/packages/vendure/src/utils/fragments/cart-fragment.ts
similarity index 100%
rename from framework/vendure/utils/fragments/cart-fragment.ts
rename to packages/vendure/src/utils/fragments/cart-fragment.ts
diff --git a/framework/vendure/utils/fragments/search-result-fragment.ts b/packages/vendure/src/utils/fragments/search-result-fragment.ts
similarity index 100%
rename from framework/vendure/utils/fragments/search-result-fragment.ts
rename to packages/vendure/src/utils/fragments/search-result-fragment.ts
diff --git a/framework/vendure/utils/mutations/add-item-to-order-mutation.ts b/packages/vendure/src/utils/mutations/add-item-to-order-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/add-item-to-order-mutation.ts
rename to packages/vendure/src/utils/mutations/add-item-to-order-mutation.ts
diff --git a/framework/vendure/utils/mutations/adjust-order-line-mutation.ts b/packages/vendure/src/utils/mutations/adjust-order-line-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/adjust-order-line-mutation.ts
rename to packages/vendure/src/utils/mutations/adjust-order-line-mutation.ts
diff --git a/framework/vendure/utils/mutations/log-in-mutation.ts b/packages/vendure/src/utils/mutations/log-in-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/log-in-mutation.ts
rename to packages/vendure/src/utils/mutations/log-in-mutation.ts
diff --git a/framework/vendure/utils/mutations/log-out-mutation.ts b/packages/vendure/src/utils/mutations/log-out-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/log-out-mutation.ts
rename to packages/vendure/src/utils/mutations/log-out-mutation.ts
diff --git a/framework/vendure/utils/mutations/remove-order-line-mutation.ts b/packages/vendure/src/utils/mutations/remove-order-line-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/remove-order-line-mutation.ts
rename to packages/vendure/src/utils/mutations/remove-order-line-mutation.ts
diff --git a/framework/vendure/utils/mutations/sign-up-mutation.ts b/packages/vendure/src/utils/mutations/sign-up-mutation.ts
similarity index 100%
rename from framework/vendure/utils/mutations/sign-up-mutation.ts
rename to packages/vendure/src/utils/mutations/sign-up-mutation.ts
diff --git a/framework/vendure/utils/normalize.ts b/packages/vendure/src/utils/normalize.ts
similarity index 90%
rename from framework/vendure/utils/normalize.ts
rename to packages/vendure/src/utils/normalize.ts
index 6071fae84..adde43674 100644
--- a/framework/vendure/utils/normalize.ts
+++ b/packages/vendure/src/utils/normalize.ts
@@ -1,6 +1,6 @@
-import { Product } from '@commerce/types/product'
-import { Cart } from '@commerce/types/cart'
-import { CartFragment, SearchResultFragment } from '../schema'
+import { Product } from '@vercel/commerce/types/product'
+import { Cart } from '@vercel/commerce/types/cart'
+import { CartFragment, SearchResultFragment } from '../../schema'
 
 export function normalizeSearchResult(item: SearchResultFragment): Product {
   return {
diff --git a/framework/vendure/utils/queries/active-customer-query.ts b/packages/vendure/src/utils/queries/active-customer-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/active-customer-query.ts
rename to packages/vendure/src/utils/queries/active-customer-query.ts
diff --git a/framework/vendure/utils/queries/get-all-product-paths-query.ts b/packages/vendure/src/utils/queries/get-all-product-paths-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/get-all-product-paths-query.ts
rename to packages/vendure/src/utils/queries/get-all-product-paths-query.ts
diff --git a/framework/vendure/utils/queries/get-all-products-query.ts b/packages/vendure/src/utils/queries/get-all-products-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/get-all-products-query.ts
rename to packages/vendure/src/utils/queries/get-all-products-query.ts
diff --git a/framework/vendure/utils/queries/get-cart-query.ts b/packages/vendure/src/utils/queries/get-cart-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/get-cart-query.ts
rename to packages/vendure/src/utils/queries/get-cart-query.ts
diff --git a/framework/vendure/utils/queries/get-collections-query.ts b/packages/vendure/src/utils/queries/get-collections-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/get-collections-query.ts
rename to packages/vendure/src/utils/queries/get-collections-query.ts
diff --git a/framework/vendure/utils/queries/get-product-query.ts b/packages/vendure/src/utils/queries/get-product-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/get-product-query.ts
rename to packages/vendure/src/utils/queries/get-product-query.ts
diff --git a/framework/vendure/utils/queries/search-query.ts b/packages/vendure/src/utils/queries/search-query.ts
similarity index 100%
rename from framework/vendure/utils/queries/search-query.ts
rename to packages/vendure/src/utils/queries/search-query.ts
diff --git a/framework/vendure/wishlist/use-add-item.tsx b/packages/vendure/src/wishlist/use-add-item.tsx
similarity index 100%
rename from framework/vendure/wishlist/use-add-item.tsx
rename to packages/vendure/src/wishlist/use-add-item.tsx
diff --git a/framework/vendure/wishlist/use-remove-item.tsx b/packages/vendure/src/wishlist/use-remove-item.tsx
similarity index 100%
rename from framework/vendure/wishlist/use-remove-item.tsx
rename to packages/vendure/src/wishlist/use-remove-item.tsx
diff --git a/framework/vendure/wishlist/use-wishlist.tsx b/packages/vendure/src/wishlist/use-wishlist.tsx
similarity index 90%
rename from framework/vendure/wishlist/use-wishlist.tsx
rename to packages/vendure/src/wishlist/use-wishlist.tsx
index da941bf31..ab4192171 100644
--- a/framework/vendure/wishlist/use-wishlist.tsx
+++ b/packages/vendure/src/wishlist/use-wishlist.tsx
@@ -1,8 +1,8 @@
 // TODO: replace this hook and other wishlist hooks with a handler, or remove them if
 // Vendure doesn't have a built-in wishlist
 
-import { HookFetcher } from '@commerce/utils/types'
-import { Product } from '../schema'
+import { HookFetcher } from '@vercel/commerce/utils/types'
+import { Product } from '../../schema'
 
 const defaultOpts = {}
 
diff --git a/packages/vendure/tsconfig.json b/packages/vendure/tsconfig.json
new file mode 100644
index 000000000..cd04ab2ff
--- /dev/null
+++ b/packages/vendure/tsconfig.json
@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "module": "esnext",
+    "outDir": "dist",
+    "baseUrl": "src",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "declaration": true,
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "incremental": true,
+    "jsx": "react-jsx"
+  },
+  "include": ["src"],
+  "exclude": ["node_modules", "dist"]
+}
diff --git a/.env.template b/site/.env.template
similarity index 72%
rename from .env.template
rename to site/.env.template
index cf58e89c7..47b3df3c4 100644
--- a/.env.template
+++ b/site/.env.template
@@ -1,4 +1,14 @@
-# Available providers: local, bigcommerce, shopify, swell, saleor, spree, ordercloud, vendure, kibocommerce, commercejs
+# Available providers:
+# @vercel/commerce-local
+# @vercel/commerce-bigcommerce
+# @vercel/commerce-shopify
+# @vercel/commerce-swell
+# @vercel/commerce-saleor
+# @vercel/commerce-spree
+# @vercel/commerce-ordercloud
+# @vercel/commerce-vendure
+# @vercel/commerce-kibocommerce
+# @vercel/commerce-commercejs
 COMMERCE_PROVIDER=
 
 BIGCOMMERCE_STOREFRONT_API_URL=
diff --git a/.eslintrc b/site/.eslintrc
similarity index 100%
rename from .eslintrc
rename to site/.eslintrc
diff --git a/site/.gitignore b/site/.gitignore
new file mode 100644
index 000000000..22f1bf4f3
--- /dev/null
+++ b/site/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+.next/
+out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+.idea
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+# vercel
+.vercel
diff --git a/site/.prettierignore b/site/.prettierignore
new file mode 100644
index 000000000..105738ca9
--- /dev/null
+++ b/site/.prettierignore
@@ -0,0 +1,3 @@
+node_modules
+.next
+public
\ No newline at end of file
diff --git a/site/.prettierrc b/site/.prettierrc
new file mode 100644
index 000000000..e1076edfa
--- /dev/null
+++ b/site/.prettierrc
@@ -0,0 +1,6 @@
+{
+  "semi": false,
+  "singleQuote": true,
+  "tabWidth": 2,
+  "useTabs": false
+}
diff --git a/assets/base.css b/site/assets/base.css
similarity index 100%
rename from assets/base.css
rename to site/assets/base.css
diff --git a/assets/chrome-bug.css b/site/assets/chrome-bug.css
similarity index 100%
rename from assets/chrome-bug.css
rename to site/assets/chrome-bug.css
diff --git a/assets/components.css b/site/assets/components.css
similarity index 100%
rename from assets/components.css
rename to site/assets/components.css
diff --git a/assets/main.css b/site/assets/main.css
similarity index 100%
rename from assets/main.css
rename to site/assets/main.css
diff --git a/site/commerce-config.js b/site/commerce-config.js
new file mode 100644
index 000000000..d52797e51
--- /dev/null
+++ b/site/commerce-config.js
@@ -0,0 +1,105 @@
+/**
+ * This file is expected to be used in next.config.js only
+ */
+
+const path = require('path')
+const fs = require('fs')
+const merge = require('deepmerge')
+const prettier = require('prettier')
+const core = require('@vercel/commerce/config')
+
+const PROVIDERS = [
+  '@vercel/commerce-local',
+  '@vercel/commerce-bigcommerce',
+  '@vercel/commerce-saleor',
+  '@vercel/commerce-shopify',
+  '@vercel/commerce-swell',
+  '@vercel/commerce-vendure',
+  '@vercel/commerce-ordercloud',
+  '@vercel/commerce-kibocommerce',
+  '@vercel/commerce-spree',
+  '@vercel/commerce-commercejs',
+]
+
+function getProviderName() {
+  return (
+    process.env.COMMERCE_PROVIDER ||
+    (process.env.BIGCOMMERCE_STOREFRONT_API_URL
+      ? '@vercel/commerce-bigcommerce'
+      : process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN
+      ? '@vercel/commerce-shopify'
+      : process.env.NEXT_PUBLIC_SWELL_STORE_ID
+      ? '@vercel/commerce-swell'
+      : '@vercel/commerce-local')
+  )
+}
+
+function withCommerceConfig(nextConfig = {}) {
+  const config = merge(
+    { commerce: { provider: getProviderName() } },
+    nextConfig
+  )
+  const { commerce } = config
+  const { provider } = commerce
+
+  if (!provider) {
+    throw new Error(
+      `The commerce provider is missing, please add a valid provider name or its environment variables`
+    )
+  }
+  if (!PROVIDERS.includes(provider)) {
+    throw new Error(
+      `The commerce provider "${provider}" can't be found, please use one of "${PROVIDERS.join(
+        ', '
+      )}"`
+    )
+  }
+
+  // Update paths in `tsconfig.json` to point to the selected provider
+  if (commerce.updateTSConfig !== false) {
+    const tsconfigPath = path.join(
+      process.cwd(),
+      commerce.tsconfigPath || 'tsconfig.json'
+    )
+    const tsconfig = require(tsconfigPath)
+    // The module path is a symlink in node_modules
+    // -> /node_modules/[name]/dist/index.js
+    const absolutePath = require.resolve(provider)
+    // but we want references to go to the real path in /packages instead
+    // -> packages/[name]/dist
+    const distPath = path.join(path.relative(process.cwd(), absolutePath), '..')
+    // -> /packages/[name]/src
+    const modulePath = path.join(distPath, '../src')
+
+    tsconfig.compilerOptions.paths['@framework'] = [`${modulePath}`]
+    tsconfig.compilerOptions.paths['@framework/*'] = [`${modulePath}/*`]
+
+    fs.writeFileSync(
+      tsconfigPath,
+      prettier.format(JSON.stringify(tsconfig), { parser: 'json' })
+    )
+
+    const webpack = config.webpack
+
+    // To improve the DX of using references, we'll switch from `src` to `dist`
+    // only for webpack so imports resolve correctly but typechecking goes to `src`
+    config.webpack = (cfg, options) => {
+      if (Array.isArray(cfg.resolve.plugins)) {
+        const jsconfigPaths = cfg.resolve.plugins.find(
+          (plugin) => plugin.constructor.name === 'JsConfigPathsPlugin'
+        )
+
+        if (jsconfigPaths) {
+          jsconfigPaths.paths['@framework'] = [distPath]
+          jsconfigPaths.paths['@framework/*'] = [`${distPath}/*`]
+        }
+      }
+
+      return webpack ? webpack(cfg, options) : cfg
+    }
+  }
+
+  return core.withCommerceConfig(config)
+}
+
+module.exports = { withCommerceConfig, getProviderName }
diff --git a/commerce.config.json b/site/commerce.config.json
similarity index 100%
rename from commerce.config.json
rename to site/commerce.config.json
diff --git a/components/auth/ForgotPassword.tsx b/site/components/auth/ForgotPassword.tsx
similarity index 100%
rename from components/auth/ForgotPassword.tsx
rename to site/components/auth/ForgotPassword.tsx
diff --git a/components/auth/LoginView.tsx b/site/components/auth/LoginView.tsx
similarity index 100%
rename from components/auth/LoginView.tsx
rename to site/components/auth/LoginView.tsx
diff --git a/components/auth/SignUpView.tsx b/site/components/auth/SignUpView.tsx
similarity index 100%
rename from components/auth/SignUpView.tsx
rename to site/components/auth/SignUpView.tsx
diff --git a/components/auth/index.ts b/site/components/auth/index.ts
similarity index 100%
rename from components/auth/index.ts
rename to site/components/auth/index.ts
diff --git a/components/cart/CartItem/CartItem.module.css b/site/components/cart/CartItem/CartItem.module.css
similarity index 100%
rename from components/cart/CartItem/CartItem.module.css
rename to site/components/cart/CartItem/CartItem.module.css
diff --git a/components/cart/CartItem/CartItem.tsx b/site/components/cart/CartItem/CartItem.tsx
similarity index 100%
rename from components/cart/CartItem/CartItem.tsx
rename to site/components/cart/CartItem/CartItem.tsx
diff --git a/components/cart/CartItem/index.ts b/site/components/cart/CartItem/index.ts
similarity index 100%
rename from components/cart/CartItem/index.ts
rename to site/components/cart/CartItem/index.ts
diff --git a/components/cart/CartSidebarView/CartSidebarView.module.css b/site/components/cart/CartSidebarView/CartSidebarView.module.css
similarity index 100%
rename from components/cart/CartSidebarView/CartSidebarView.module.css
rename to site/components/cart/CartSidebarView/CartSidebarView.module.css
diff --git a/components/cart/CartSidebarView/CartSidebarView.tsx b/site/components/cart/CartSidebarView/CartSidebarView.tsx
similarity index 100%
rename from components/cart/CartSidebarView/CartSidebarView.tsx
rename to site/components/cart/CartSidebarView/CartSidebarView.tsx
diff --git a/components/cart/CartSidebarView/index.ts b/site/components/cart/CartSidebarView/index.ts
similarity index 100%
rename from components/cart/CartSidebarView/index.ts
rename to site/components/cart/CartSidebarView/index.ts
diff --git a/components/cart/index.ts b/site/components/cart/index.ts
similarity index 100%
rename from components/cart/index.ts
rename to site/components/cart/index.ts
diff --git a/components/checkout/CheckoutSidebarView/CheckoutSidebarView.module.css b/site/components/checkout/CheckoutSidebarView/CheckoutSidebarView.module.css
similarity index 100%
rename from components/checkout/CheckoutSidebarView/CheckoutSidebarView.module.css
rename to site/components/checkout/CheckoutSidebarView/CheckoutSidebarView.module.css
diff --git a/components/checkout/CheckoutSidebarView/CheckoutSidebarView.tsx b/site/components/checkout/CheckoutSidebarView/CheckoutSidebarView.tsx
similarity index 100%
rename from components/checkout/CheckoutSidebarView/CheckoutSidebarView.tsx
rename to site/components/checkout/CheckoutSidebarView/CheckoutSidebarView.tsx
diff --git a/components/checkout/CheckoutSidebarView/index.ts b/site/components/checkout/CheckoutSidebarView/index.ts
similarity index 100%
rename from components/checkout/CheckoutSidebarView/index.ts
rename to site/components/checkout/CheckoutSidebarView/index.ts
diff --git a/components/checkout/PaymentMethodView/PaymentMethodView.module.css b/site/components/checkout/PaymentMethodView/PaymentMethodView.module.css
similarity index 100%
rename from components/checkout/PaymentMethodView/PaymentMethodView.module.css
rename to site/components/checkout/PaymentMethodView/PaymentMethodView.module.css
diff --git a/components/checkout/PaymentMethodView/PaymentMethodView.tsx b/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx
similarity index 100%
rename from components/checkout/PaymentMethodView/PaymentMethodView.tsx
rename to site/components/checkout/PaymentMethodView/PaymentMethodView.tsx
diff --git a/components/checkout/PaymentMethodView/index.ts b/site/components/checkout/PaymentMethodView/index.ts
similarity index 100%
rename from components/checkout/PaymentMethodView/index.ts
rename to site/components/checkout/PaymentMethodView/index.ts
diff --git a/components/checkout/PaymentWidget/PaymentWidget.module.css b/site/components/checkout/PaymentWidget/PaymentWidget.module.css
similarity index 100%
rename from components/checkout/PaymentWidget/PaymentWidget.module.css
rename to site/components/checkout/PaymentWidget/PaymentWidget.module.css
diff --git a/components/checkout/PaymentWidget/PaymentWidget.tsx b/site/components/checkout/PaymentWidget/PaymentWidget.tsx
similarity index 100%
rename from components/checkout/PaymentWidget/PaymentWidget.tsx
rename to site/components/checkout/PaymentWidget/PaymentWidget.tsx
diff --git a/components/checkout/PaymentWidget/index.ts b/site/components/checkout/PaymentWidget/index.ts
similarity index 100%
rename from components/checkout/PaymentWidget/index.ts
rename to site/components/checkout/PaymentWidget/index.ts
diff --git a/components/checkout/ShippingView/ShippingView.module.css b/site/components/checkout/ShippingView/ShippingView.module.css
similarity index 100%
rename from components/checkout/ShippingView/ShippingView.module.css
rename to site/components/checkout/ShippingView/ShippingView.module.css
diff --git a/components/checkout/ShippingView/ShippingView.tsx b/site/components/checkout/ShippingView/ShippingView.tsx
similarity index 100%
rename from components/checkout/ShippingView/ShippingView.tsx
rename to site/components/checkout/ShippingView/ShippingView.tsx
diff --git a/components/checkout/ShippingView/index.ts b/site/components/checkout/ShippingView/index.ts
similarity index 100%
rename from components/checkout/ShippingView/index.ts
rename to site/components/checkout/ShippingView/index.ts
diff --git a/components/checkout/ShippingWidget/ShippingWidget.module.css b/site/components/checkout/ShippingWidget/ShippingWidget.module.css
similarity index 100%
rename from components/checkout/ShippingWidget/ShippingWidget.module.css
rename to site/components/checkout/ShippingWidget/ShippingWidget.module.css
diff --git a/components/checkout/ShippingWidget/ShippingWidget.tsx b/site/components/checkout/ShippingWidget/ShippingWidget.tsx
similarity index 100%
rename from components/checkout/ShippingWidget/ShippingWidget.tsx
rename to site/components/checkout/ShippingWidget/ShippingWidget.tsx
diff --git a/components/checkout/ShippingWidget/index.ts b/site/components/checkout/ShippingWidget/index.ts
similarity index 100%
rename from components/checkout/ShippingWidget/index.ts
rename to site/components/checkout/ShippingWidget/index.ts
diff --git a/components/checkout/context.tsx b/site/components/checkout/context.tsx
similarity index 100%
rename from components/checkout/context.tsx
rename to site/components/checkout/context.tsx
diff --git a/components/common/Avatar/Avatar.tsx b/site/components/common/Avatar/Avatar.tsx
similarity index 100%
rename from components/common/Avatar/Avatar.tsx
rename to site/components/common/Avatar/Avatar.tsx
diff --git a/components/common/Avatar/index.ts b/site/components/common/Avatar/index.ts
similarity index 100%
rename from components/common/Avatar/index.ts
rename to site/components/common/Avatar/index.ts
diff --git a/components/common/FeatureBar/FeatureBar.module.css b/site/components/common/FeatureBar/FeatureBar.module.css
similarity index 100%
rename from components/common/FeatureBar/FeatureBar.module.css
rename to site/components/common/FeatureBar/FeatureBar.module.css
diff --git a/components/common/FeatureBar/FeatureBar.tsx b/site/components/common/FeatureBar/FeatureBar.tsx
similarity index 100%
rename from components/common/FeatureBar/FeatureBar.tsx
rename to site/components/common/FeatureBar/FeatureBar.tsx
diff --git a/components/common/FeatureBar/index.ts b/site/components/common/FeatureBar/index.ts
similarity index 100%
rename from components/common/FeatureBar/index.ts
rename to site/components/common/FeatureBar/index.ts
diff --git a/components/common/Footer/Footer.module.css b/site/components/common/Footer/Footer.module.css
similarity index 100%
rename from components/common/Footer/Footer.module.css
rename to site/components/common/Footer/Footer.module.css
diff --git a/components/common/Footer/Footer.tsx b/site/components/common/Footer/Footer.tsx
similarity index 100%
rename from components/common/Footer/Footer.tsx
rename to site/components/common/Footer/Footer.tsx
diff --git a/components/common/Footer/index.ts b/site/components/common/Footer/index.ts
similarity index 100%
rename from components/common/Footer/index.ts
rename to site/components/common/Footer/index.ts
diff --git a/components/common/Head/Head.tsx b/site/components/common/Head/Head.tsx
similarity index 100%
rename from components/common/Head/Head.tsx
rename to site/components/common/Head/Head.tsx
diff --git a/components/common/Head/index.ts b/site/components/common/Head/index.ts
similarity index 100%
rename from components/common/Head/index.ts
rename to site/components/common/Head/index.ts
diff --git a/components/common/HomeAllProductsGrid/HomeAllProductsGrid.module.css b/site/components/common/HomeAllProductsGrid/HomeAllProductsGrid.module.css
similarity index 100%
rename from components/common/HomeAllProductsGrid/HomeAllProductsGrid.module.css
rename to site/components/common/HomeAllProductsGrid/HomeAllProductsGrid.module.css
diff --git a/components/common/HomeAllProductsGrid/HomeAllProductsGrid.tsx b/site/components/common/HomeAllProductsGrid/HomeAllProductsGrid.tsx
similarity index 100%
rename from components/common/HomeAllProductsGrid/HomeAllProductsGrid.tsx
rename to site/components/common/HomeAllProductsGrid/HomeAllProductsGrid.tsx
diff --git a/components/common/HomeAllProductsGrid/index.ts b/site/components/common/HomeAllProductsGrid/index.ts
similarity index 100%
rename from components/common/HomeAllProductsGrid/index.ts
rename to site/components/common/HomeAllProductsGrid/index.ts
diff --git a/components/common/I18nWidget/I18nWidget.module.css b/site/components/common/I18nWidget/I18nWidget.module.css
similarity index 100%
rename from components/common/I18nWidget/I18nWidget.module.css
rename to site/components/common/I18nWidget/I18nWidget.module.css
diff --git a/components/common/I18nWidget/I18nWidget.tsx b/site/components/common/I18nWidget/I18nWidget.tsx
similarity index 100%
rename from components/common/I18nWidget/I18nWidget.tsx
rename to site/components/common/I18nWidget/I18nWidget.tsx
diff --git a/components/common/I18nWidget/index.ts b/site/components/common/I18nWidget/index.ts
similarity index 100%
rename from components/common/I18nWidget/index.ts
rename to site/components/common/I18nWidget/index.ts
diff --git a/components/common/Layout/Layout.module.css b/site/components/common/Layout/Layout.module.css
similarity index 100%
rename from components/common/Layout/Layout.module.css
rename to site/components/common/Layout/Layout.module.css
diff --git a/components/common/Layout/Layout.tsx b/site/components/common/Layout/Layout.tsx
similarity index 100%
rename from components/common/Layout/Layout.tsx
rename to site/components/common/Layout/Layout.tsx
diff --git a/components/common/Layout/index.ts b/site/components/common/Layout/index.ts
similarity index 100%
rename from components/common/Layout/index.ts
rename to site/components/common/Layout/index.ts
diff --git a/components/common/Navbar/Navbar.module.css b/site/components/common/Navbar/Navbar.module.css
similarity index 100%
rename from components/common/Navbar/Navbar.module.css
rename to site/components/common/Navbar/Navbar.module.css
diff --git a/components/common/Navbar/Navbar.tsx b/site/components/common/Navbar/Navbar.tsx
similarity index 100%
rename from components/common/Navbar/Navbar.tsx
rename to site/components/common/Navbar/Navbar.tsx
diff --git a/components/common/Navbar/NavbarRoot.tsx b/site/components/common/Navbar/NavbarRoot.tsx
similarity index 100%
rename from components/common/Navbar/NavbarRoot.tsx
rename to site/components/common/Navbar/NavbarRoot.tsx
diff --git a/components/common/Navbar/index.ts b/site/components/common/Navbar/index.ts
similarity index 100%
rename from components/common/Navbar/index.ts
rename to site/components/common/Navbar/index.ts
diff --git a/components/common/Searchbar/Searchbar.module.css b/site/components/common/Searchbar/Searchbar.module.css
similarity index 100%
rename from components/common/Searchbar/Searchbar.module.css
rename to site/components/common/Searchbar/Searchbar.module.css
diff --git a/components/common/Searchbar/Searchbar.tsx b/site/components/common/Searchbar/Searchbar.tsx
similarity index 100%
rename from components/common/Searchbar/Searchbar.tsx
rename to site/components/common/Searchbar/Searchbar.tsx
diff --git a/components/common/Searchbar/index.ts b/site/components/common/Searchbar/index.ts
similarity index 100%
rename from components/common/Searchbar/index.ts
rename to site/components/common/Searchbar/index.ts
diff --git a/components/common/SidebarLayout/SidebarLayout.module.css b/site/components/common/SidebarLayout/SidebarLayout.module.css
similarity index 100%
rename from components/common/SidebarLayout/SidebarLayout.module.css
rename to site/components/common/SidebarLayout/SidebarLayout.module.css
diff --git a/components/common/SidebarLayout/SidebarLayout.tsx b/site/components/common/SidebarLayout/SidebarLayout.tsx
similarity index 100%
rename from components/common/SidebarLayout/SidebarLayout.tsx
rename to site/components/common/SidebarLayout/SidebarLayout.tsx
diff --git a/components/common/SidebarLayout/index.ts b/site/components/common/SidebarLayout/index.ts
similarity index 100%
rename from components/common/SidebarLayout/index.ts
rename to site/components/common/SidebarLayout/index.ts
diff --git a/components/common/UserNav/DropdownMenu.module.css b/site/components/common/UserNav/DropdownMenu.module.css
similarity index 100%
rename from components/common/UserNav/DropdownMenu.module.css
rename to site/components/common/UserNav/DropdownMenu.module.css
diff --git a/components/common/UserNav/DropdownMenu.tsx b/site/components/common/UserNav/DropdownMenu.tsx
similarity index 100%
rename from components/common/UserNav/DropdownMenu.tsx
rename to site/components/common/UserNav/DropdownMenu.tsx
diff --git a/components/common/UserNav/MenuSidebarView/MenuSidebarView.module.css b/site/components/common/UserNav/MenuSidebarView/MenuSidebarView.module.css
similarity index 100%
rename from components/common/UserNav/MenuSidebarView/MenuSidebarView.module.css
rename to site/components/common/UserNav/MenuSidebarView/MenuSidebarView.module.css
diff --git a/components/common/UserNav/MenuSidebarView/MenuSidebarView.tsx b/site/components/common/UserNav/MenuSidebarView/MenuSidebarView.tsx
similarity index 100%
rename from components/common/UserNav/MenuSidebarView/MenuSidebarView.tsx
rename to site/components/common/UserNav/MenuSidebarView/MenuSidebarView.tsx
diff --git a/components/common/UserNav/MenuSidebarView/index.ts b/site/components/common/UserNav/MenuSidebarView/index.ts
similarity index 100%
rename from components/common/UserNav/MenuSidebarView/index.ts
rename to site/components/common/UserNav/MenuSidebarView/index.ts
diff --git a/components/common/UserNav/UserNav.module.css b/site/components/common/UserNav/UserNav.module.css
similarity index 100%
rename from components/common/UserNav/UserNav.module.css
rename to site/components/common/UserNav/UserNav.module.css
diff --git a/components/common/UserNav/UserNav.tsx b/site/components/common/UserNav/UserNav.tsx
similarity index 100%
rename from components/common/UserNav/UserNav.tsx
rename to site/components/common/UserNav/UserNav.tsx
diff --git a/components/common/UserNav/index.ts b/site/components/common/UserNav/index.ts
similarity index 100%
rename from components/common/UserNav/index.ts
rename to site/components/common/UserNav/index.ts
diff --git a/components/common/index.ts b/site/components/common/index.ts
similarity index 100%
rename from components/common/index.ts
rename to site/components/common/index.ts
diff --git a/components/icons/ArrowLeft.tsx b/site/components/icons/ArrowLeft.tsx
similarity index 100%
rename from components/icons/ArrowLeft.tsx
rename to site/components/icons/ArrowLeft.tsx
diff --git a/components/icons/ArrowRight.tsx b/site/components/icons/ArrowRight.tsx
similarity index 100%
rename from components/icons/ArrowRight.tsx
rename to site/components/icons/ArrowRight.tsx
diff --git a/components/icons/Bag.tsx b/site/components/icons/Bag.tsx
similarity index 100%
rename from components/icons/Bag.tsx
rename to site/components/icons/Bag.tsx
diff --git a/components/icons/Check.tsx b/site/components/icons/Check.tsx
similarity index 100%
rename from components/icons/Check.tsx
rename to site/components/icons/Check.tsx
diff --git a/components/icons/ChevronDown.tsx b/site/components/icons/ChevronDown.tsx
similarity index 100%
rename from components/icons/ChevronDown.tsx
rename to site/components/icons/ChevronDown.tsx
diff --git a/components/icons/ChevronLeft.tsx b/site/components/icons/ChevronLeft.tsx
similarity index 100%
rename from components/icons/ChevronLeft.tsx
rename to site/components/icons/ChevronLeft.tsx
diff --git a/components/icons/ChevronRight.tsx b/site/components/icons/ChevronRight.tsx
similarity index 100%
rename from components/icons/ChevronRight.tsx
rename to site/components/icons/ChevronRight.tsx
diff --git a/components/icons/ChevronUp.tsx b/site/components/icons/ChevronUp.tsx
similarity index 100%
rename from components/icons/ChevronUp.tsx
rename to site/components/icons/ChevronUp.tsx
diff --git a/components/icons/CreditCard.tsx b/site/components/icons/CreditCard.tsx
similarity index 100%
rename from components/icons/CreditCard.tsx
rename to site/components/icons/CreditCard.tsx
diff --git a/components/icons/Cross.tsx b/site/components/icons/Cross.tsx
similarity index 100%
rename from components/icons/Cross.tsx
rename to site/components/icons/Cross.tsx
diff --git a/components/icons/DoubleChevron.tsx b/site/components/icons/DoubleChevron.tsx
similarity index 100%
rename from components/icons/DoubleChevron.tsx
rename to site/components/icons/DoubleChevron.tsx
diff --git a/components/icons/Github.tsx b/site/components/icons/Github.tsx
similarity index 100%
rename from components/icons/Github.tsx
rename to site/components/icons/Github.tsx
diff --git a/components/icons/Heart.tsx b/site/components/icons/Heart.tsx
similarity index 100%
rename from components/icons/Heart.tsx
rename to site/components/icons/Heart.tsx
diff --git a/components/icons/Info.tsx b/site/components/icons/Info.tsx
similarity index 100%
rename from components/icons/Info.tsx
rename to site/components/icons/Info.tsx
diff --git a/components/icons/MapPin.tsx b/site/components/icons/MapPin.tsx
similarity index 100%
rename from components/icons/MapPin.tsx
rename to site/components/icons/MapPin.tsx
diff --git a/components/icons/Menu.tsx b/site/components/icons/Menu.tsx
similarity index 100%
rename from components/icons/Menu.tsx
rename to site/components/icons/Menu.tsx
diff --git a/components/icons/Minus.tsx b/site/components/icons/Minus.tsx
similarity index 100%
rename from components/icons/Minus.tsx
rename to site/components/icons/Minus.tsx
diff --git a/components/icons/Moon.tsx b/site/components/icons/Moon.tsx
similarity index 100%
rename from components/icons/Moon.tsx
rename to site/components/icons/Moon.tsx
diff --git a/components/icons/Plus.tsx b/site/components/icons/Plus.tsx
similarity index 100%
rename from components/icons/Plus.tsx
rename to site/components/icons/Plus.tsx
diff --git a/components/icons/Star.tsx b/site/components/icons/Star.tsx
similarity index 100%
rename from components/icons/Star.tsx
rename to site/components/icons/Star.tsx
diff --git a/components/icons/Sun.tsx b/site/components/icons/Sun.tsx
similarity index 100%
rename from components/icons/Sun.tsx
rename to site/components/icons/Sun.tsx
diff --git a/components/icons/Trash.tsx b/site/components/icons/Trash.tsx
similarity index 100%
rename from components/icons/Trash.tsx
rename to site/components/icons/Trash.tsx
diff --git a/components/icons/Vercel.tsx b/site/components/icons/Vercel.tsx
similarity index 100%
rename from components/icons/Vercel.tsx
rename to site/components/icons/Vercel.tsx
diff --git a/components/icons/index.ts b/site/components/icons/index.ts
similarity index 100%
rename from components/icons/index.ts
rename to site/components/icons/index.ts
diff --git a/components/product/ProductCard/ProductCard.module.css b/site/components/product/ProductCard/ProductCard.module.css
similarity index 100%
rename from components/product/ProductCard/ProductCard.module.css
rename to site/components/product/ProductCard/ProductCard.module.css
diff --git a/components/product/ProductCard/ProductCard.tsx b/site/components/product/ProductCard/ProductCard.tsx
similarity index 100%
rename from components/product/ProductCard/ProductCard.tsx
rename to site/components/product/ProductCard/ProductCard.tsx
diff --git a/components/product/ProductCard/index.ts b/site/components/product/ProductCard/index.ts
similarity index 100%
rename from components/product/ProductCard/index.ts
rename to site/components/product/ProductCard/index.ts
diff --git a/components/product/ProductOptions/ProductOptions.tsx b/site/components/product/ProductOptions/ProductOptions.tsx
similarity index 100%
rename from components/product/ProductOptions/ProductOptions.tsx
rename to site/components/product/ProductOptions/ProductOptions.tsx
diff --git a/components/product/ProductOptions/index.ts b/site/components/product/ProductOptions/index.ts
similarity index 100%
rename from components/product/ProductOptions/index.ts
rename to site/components/product/ProductOptions/index.ts
diff --git a/components/product/ProductSidebar/ProductSidebar.module.css b/site/components/product/ProductSidebar/ProductSidebar.module.css
similarity index 100%
rename from components/product/ProductSidebar/ProductSidebar.module.css
rename to site/components/product/ProductSidebar/ProductSidebar.module.css
diff --git a/components/product/ProductSidebar/ProductSidebar.tsx b/site/components/product/ProductSidebar/ProductSidebar.tsx
similarity index 100%
rename from components/product/ProductSidebar/ProductSidebar.tsx
rename to site/components/product/ProductSidebar/ProductSidebar.tsx
diff --git a/components/product/ProductSidebar/index.ts b/site/components/product/ProductSidebar/index.ts
similarity index 100%
rename from components/product/ProductSidebar/index.ts
rename to site/components/product/ProductSidebar/index.ts
diff --git a/components/product/ProductSlider/ProductSlider.module.css b/site/components/product/ProductSlider/ProductSlider.module.css
similarity index 100%
rename from components/product/ProductSlider/ProductSlider.module.css
rename to site/components/product/ProductSlider/ProductSlider.module.css
diff --git a/components/product/ProductSlider/ProductSlider.tsx b/site/components/product/ProductSlider/ProductSlider.tsx
similarity index 100%
rename from components/product/ProductSlider/ProductSlider.tsx
rename to site/components/product/ProductSlider/ProductSlider.tsx
diff --git a/components/product/ProductSlider/index.ts b/site/components/product/ProductSlider/index.ts
similarity index 100%
rename from components/product/ProductSlider/index.ts
rename to site/components/product/ProductSlider/index.ts
diff --git a/components/product/ProductSliderControl/ProductSliderControl.module.css b/site/components/product/ProductSliderControl/ProductSliderControl.module.css
similarity index 100%
rename from components/product/ProductSliderControl/ProductSliderControl.module.css
rename to site/components/product/ProductSliderControl/ProductSliderControl.module.css
diff --git a/components/product/ProductSliderControl/ProductSliderControl.tsx b/site/components/product/ProductSliderControl/ProductSliderControl.tsx
similarity index 100%
rename from components/product/ProductSliderControl/ProductSliderControl.tsx
rename to site/components/product/ProductSliderControl/ProductSliderControl.tsx
diff --git a/components/product/ProductSliderControl/index.ts b/site/components/product/ProductSliderControl/index.ts
similarity index 100%
rename from components/product/ProductSliderControl/index.ts
rename to site/components/product/ProductSliderControl/index.ts
diff --git a/components/product/ProductTag/ProductTag.module.css b/site/components/product/ProductTag/ProductTag.module.css
similarity index 100%
rename from components/product/ProductTag/ProductTag.module.css
rename to site/components/product/ProductTag/ProductTag.module.css
diff --git a/components/product/ProductTag/ProductTag.tsx b/site/components/product/ProductTag/ProductTag.tsx
similarity index 100%
rename from components/product/ProductTag/ProductTag.tsx
rename to site/components/product/ProductTag/ProductTag.tsx
diff --git a/components/product/ProductTag/index.ts b/site/components/product/ProductTag/index.ts
similarity index 100%
rename from components/product/ProductTag/index.ts
rename to site/components/product/ProductTag/index.ts
diff --git a/components/product/ProductView/ProductView.module.css b/site/components/product/ProductView/ProductView.module.css
similarity index 100%
rename from components/product/ProductView/ProductView.module.css
rename to site/components/product/ProductView/ProductView.module.css
diff --git a/components/product/ProductView/ProductView.tsx b/site/components/product/ProductView/ProductView.tsx
similarity index 100%
rename from components/product/ProductView/ProductView.tsx
rename to site/components/product/ProductView/ProductView.tsx
diff --git a/components/product/ProductView/index.ts b/site/components/product/ProductView/index.ts
similarity index 100%
rename from components/product/ProductView/index.ts
rename to site/components/product/ProductView/index.ts
diff --git a/components/product/Swatch/Swatch.module.css b/site/components/product/Swatch/Swatch.module.css
similarity index 100%
rename from components/product/Swatch/Swatch.module.css
rename to site/components/product/Swatch/Swatch.module.css
diff --git a/components/product/Swatch/Swatch.tsx b/site/components/product/Swatch/Swatch.tsx
similarity index 100%
rename from components/product/Swatch/Swatch.tsx
rename to site/components/product/Swatch/Swatch.tsx
diff --git a/components/product/Swatch/index.ts b/site/components/product/Swatch/index.ts
similarity index 100%
rename from components/product/Swatch/index.ts
rename to site/components/product/Swatch/index.ts
diff --git a/components/product/helpers.ts b/site/components/product/helpers.ts
similarity index 100%
rename from components/product/helpers.ts
rename to site/components/product/helpers.ts
diff --git a/components/product/index.ts b/site/components/product/index.ts
similarity index 100%
rename from components/product/index.ts
rename to site/components/product/index.ts
diff --git a/components/search.tsx b/site/components/search.tsx
similarity index 100%
rename from components/search.tsx
rename to site/components/search.tsx
diff --git a/components/ui/Button/Button.module.css b/site/components/ui/Button/Button.module.css
similarity index 100%
rename from components/ui/Button/Button.module.css
rename to site/components/ui/Button/Button.module.css
diff --git a/components/ui/Button/Button.tsx b/site/components/ui/Button/Button.tsx
similarity index 100%
rename from components/ui/Button/Button.tsx
rename to site/components/ui/Button/Button.tsx
diff --git a/components/ui/Button/index.ts b/site/components/ui/Button/index.ts
similarity index 100%
rename from components/ui/Button/index.ts
rename to site/components/ui/Button/index.ts
diff --git a/components/ui/Collapse/Collapse.module.css b/site/components/ui/Collapse/Collapse.module.css
similarity index 100%
rename from components/ui/Collapse/Collapse.module.css
rename to site/components/ui/Collapse/Collapse.module.css
diff --git a/components/ui/Collapse/Collapse.tsx b/site/components/ui/Collapse/Collapse.tsx
similarity index 100%
rename from components/ui/Collapse/Collapse.tsx
rename to site/components/ui/Collapse/Collapse.tsx
diff --git a/components/ui/Collapse/index.ts b/site/components/ui/Collapse/index.ts
similarity index 100%
rename from components/ui/Collapse/index.ts
rename to site/components/ui/Collapse/index.ts
diff --git a/components/ui/Container/Container.tsx b/site/components/ui/Container/Container.tsx
similarity index 100%
rename from components/ui/Container/Container.tsx
rename to site/components/ui/Container/Container.tsx
diff --git a/components/ui/Container/index.ts b/site/components/ui/Container/index.ts
similarity index 100%
rename from components/ui/Container/index.ts
rename to site/components/ui/Container/index.ts
diff --git a/components/ui/Grid/Grid.module.css b/site/components/ui/Grid/Grid.module.css
similarity index 100%
rename from components/ui/Grid/Grid.module.css
rename to site/components/ui/Grid/Grid.module.css
diff --git a/components/ui/Grid/Grid.tsx b/site/components/ui/Grid/Grid.tsx
similarity index 100%
rename from components/ui/Grid/Grid.tsx
rename to site/components/ui/Grid/Grid.tsx
diff --git a/components/ui/Grid/index.ts b/site/components/ui/Grid/index.ts
similarity index 100%
rename from components/ui/Grid/index.ts
rename to site/components/ui/Grid/index.ts
diff --git a/components/ui/Hero/Hero.module.css b/site/components/ui/Hero/Hero.module.css
similarity index 100%
rename from components/ui/Hero/Hero.module.css
rename to site/components/ui/Hero/Hero.module.css
diff --git a/components/ui/Hero/Hero.tsx b/site/components/ui/Hero/Hero.tsx
similarity index 100%
rename from components/ui/Hero/Hero.tsx
rename to site/components/ui/Hero/Hero.tsx
diff --git a/components/ui/Hero/index.ts b/site/components/ui/Hero/index.ts
similarity index 100%
rename from components/ui/Hero/index.ts
rename to site/components/ui/Hero/index.ts
diff --git a/components/ui/Input/Input.module.css b/site/components/ui/Input/Input.module.css
similarity index 100%
rename from components/ui/Input/Input.module.css
rename to site/components/ui/Input/Input.module.css
diff --git a/components/ui/Input/Input.tsx b/site/components/ui/Input/Input.tsx
similarity index 100%
rename from components/ui/Input/Input.tsx
rename to site/components/ui/Input/Input.tsx
diff --git a/components/ui/Input/index.ts b/site/components/ui/Input/index.ts
similarity index 100%
rename from components/ui/Input/index.ts
rename to site/components/ui/Input/index.ts
diff --git a/components/ui/Link/Link.tsx b/site/components/ui/Link/Link.tsx
similarity index 100%
rename from components/ui/Link/Link.tsx
rename to site/components/ui/Link/Link.tsx
diff --git a/components/ui/Link/index.ts b/site/components/ui/Link/index.ts
similarity index 100%
rename from components/ui/Link/index.ts
rename to site/components/ui/Link/index.ts
diff --git a/components/ui/LoadingDots/LoadingDots.module.css b/site/components/ui/LoadingDots/LoadingDots.module.css
similarity index 100%
rename from components/ui/LoadingDots/LoadingDots.module.css
rename to site/components/ui/LoadingDots/LoadingDots.module.css
diff --git a/components/ui/LoadingDots/LoadingDots.tsx b/site/components/ui/LoadingDots/LoadingDots.tsx
similarity index 100%
rename from components/ui/LoadingDots/LoadingDots.tsx
rename to site/components/ui/LoadingDots/LoadingDots.tsx
diff --git a/components/ui/LoadingDots/index.ts b/site/components/ui/LoadingDots/index.ts
similarity index 100%
rename from components/ui/LoadingDots/index.ts
rename to site/components/ui/LoadingDots/index.ts
diff --git a/components/ui/Logo/Logo.tsx b/site/components/ui/Logo/Logo.tsx
similarity index 100%
rename from components/ui/Logo/Logo.tsx
rename to site/components/ui/Logo/Logo.tsx
diff --git a/components/ui/Logo/index.ts b/site/components/ui/Logo/index.ts
similarity index 100%
rename from components/ui/Logo/index.ts
rename to site/components/ui/Logo/index.ts
diff --git a/components/ui/Marquee/Marquee.module.css b/site/components/ui/Marquee/Marquee.module.css
similarity index 100%
rename from components/ui/Marquee/Marquee.module.css
rename to site/components/ui/Marquee/Marquee.module.css
diff --git a/components/ui/Marquee/Marquee.tsx b/site/components/ui/Marquee/Marquee.tsx
similarity index 100%
rename from components/ui/Marquee/Marquee.tsx
rename to site/components/ui/Marquee/Marquee.tsx
diff --git a/components/ui/Marquee/index.ts b/site/components/ui/Marquee/index.ts
similarity index 100%
rename from components/ui/Marquee/index.ts
rename to site/components/ui/Marquee/index.ts
diff --git a/components/ui/Modal/Modal.module.css b/site/components/ui/Modal/Modal.module.css
similarity index 100%
rename from components/ui/Modal/Modal.module.css
rename to site/components/ui/Modal/Modal.module.css
diff --git a/components/ui/Modal/Modal.tsx b/site/components/ui/Modal/Modal.tsx
similarity index 100%
rename from components/ui/Modal/Modal.tsx
rename to site/components/ui/Modal/Modal.tsx
diff --git a/components/ui/Modal/index.ts b/site/components/ui/Modal/index.ts
similarity index 100%
rename from components/ui/Modal/index.ts
rename to site/components/ui/Modal/index.ts
diff --git a/components/ui/Quantity/Quantity.module.css b/site/components/ui/Quantity/Quantity.module.css
similarity index 100%
rename from components/ui/Quantity/Quantity.module.css
rename to site/components/ui/Quantity/Quantity.module.css
diff --git a/components/ui/Quantity/Quantity.tsx b/site/components/ui/Quantity/Quantity.tsx
similarity index 100%
rename from components/ui/Quantity/Quantity.tsx
rename to site/components/ui/Quantity/Quantity.tsx
diff --git a/components/ui/Quantity/index.ts b/site/components/ui/Quantity/index.ts
similarity index 100%
rename from components/ui/Quantity/index.ts
rename to site/components/ui/Quantity/index.ts
diff --git a/components/ui/README.md b/site/components/ui/README.md
similarity index 100%
rename from components/ui/README.md
rename to site/components/ui/README.md
diff --git a/components/ui/Rating/Rating.module.css b/site/components/ui/Rating/Rating.module.css
similarity index 100%
rename from components/ui/Rating/Rating.module.css
rename to site/components/ui/Rating/Rating.module.css
diff --git a/components/ui/Rating/Rating.tsx b/site/components/ui/Rating/Rating.tsx
similarity index 100%
rename from components/ui/Rating/Rating.tsx
rename to site/components/ui/Rating/Rating.tsx
diff --git a/components/ui/Rating/index.ts b/site/components/ui/Rating/index.ts
similarity index 100%
rename from components/ui/Rating/index.ts
rename to site/components/ui/Rating/index.ts
diff --git a/components/ui/Sidebar/Sidebar.module.css b/site/components/ui/Sidebar/Sidebar.module.css
similarity index 100%
rename from components/ui/Sidebar/Sidebar.module.css
rename to site/components/ui/Sidebar/Sidebar.module.css
diff --git a/components/ui/Sidebar/Sidebar.tsx b/site/components/ui/Sidebar/Sidebar.tsx
similarity index 100%
rename from components/ui/Sidebar/Sidebar.tsx
rename to site/components/ui/Sidebar/Sidebar.tsx
diff --git a/components/ui/Sidebar/index.ts b/site/components/ui/Sidebar/index.ts
similarity index 100%
rename from components/ui/Sidebar/index.ts
rename to site/components/ui/Sidebar/index.ts
diff --git a/components/ui/Skeleton/Skeleton.module.css b/site/components/ui/Skeleton/Skeleton.module.css
similarity index 100%
rename from components/ui/Skeleton/Skeleton.module.css
rename to site/components/ui/Skeleton/Skeleton.module.css
diff --git a/components/ui/Skeleton/Skeleton.tsx b/site/components/ui/Skeleton/Skeleton.tsx
similarity index 100%
rename from components/ui/Skeleton/Skeleton.tsx
rename to site/components/ui/Skeleton/Skeleton.tsx
diff --git a/components/ui/Skeleton/index.ts b/site/components/ui/Skeleton/index.ts
similarity index 100%
rename from components/ui/Skeleton/index.ts
rename to site/components/ui/Skeleton/index.ts
diff --git a/components/ui/Text/Text.module.css b/site/components/ui/Text/Text.module.css
similarity index 100%
rename from components/ui/Text/Text.module.css
rename to site/components/ui/Text/Text.module.css
diff --git a/components/ui/Text/Text.tsx b/site/components/ui/Text/Text.tsx
similarity index 100%
rename from components/ui/Text/Text.tsx
rename to site/components/ui/Text/Text.tsx
diff --git a/components/ui/Text/index.ts b/site/components/ui/Text/index.ts
similarity index 100%
rename from components/ui/Text/index.ts
rename to site/components/ui/Text/index.ts
diff --git a/components/ui/context.tsx b/site/components/ui/context.tsx
similarity index 100%
rename from components/ui/context.tsx
rename to site/components/ui/context.tsx
diff --git a/components/ui/index.ts b/site/components/ui/index.ts
similarity index 100%
rename from components/ui/index.ts
rename to site/components/ui/index.ts
diff --git a/components/wishlist/WishlistButton/WishlistButton.module.css b/site/components/wishlist/WishlistButton/WishlistButton.module.css
similarity index 100%
rename from components/wishlist/WishlistButton/WishlistButton.module.css
rename to site/components/wishlist/WishlistButton/WishlistButton.module.css
diff --git a/components/wishlist/WishlistButton/WishlistButton.tsx b/site/components/wishlist/WishlistButton/WishlistButton.tsx
similarity index 100%
rename from components/wishlist/WishlistButton/WishlistButton.tsx
rename to site/components/wishlist/WishlistButton/WishlistButton.tsx
diff --git a/components/wishlist/WishlistButton/index.ts b/site/components/wishlist/WishlistButton/index.ts
similarity index 100%
rename from components/wishlist/WishlistButton/index.ts
rename to site/components/wishlist/WishlistButton/index.ts
diff --git a/components/wishlist/WishlistCard/WishlistCard.module.css b/site/components/wishlist/WishlistCard/WishlistCard.module.css
similarity index 100%
rename from components/wishlist/WishlistCard/WishlistCard.module.css
rename to site/components/wishlist/WishlistCard/WishlistCard.module.css
diff --git a/components/wishlist/WishlistCard/WishlistCard.tsx b/site/components/wishlist/WishlistCard/WishlistCard.tsx
similarity index 98%
rename from components/wishlist/WishlistCard/WishlistCard.tsx
rename to site/components/wishlist/WishlistCard/WishlistCard.tsx
index ee1403bf4..dc7a95482 100644
--- a/components/wishlist/WishlistCard/WishlistCard.tsx
+++ b/site/components/wishlist/WishlistCard/WishlistCard.tsx
@@ -11,7 +11,7 @@ import type { Product } from '@commerce/types/product'
 import usePrice from '@framework/product/use-price'
 import useAddItem from '@framework/cart/use-add-item'
 import useRemoveItem from '@framework/wishlist/use-remove-item'
-import { Wishlist } from '@commerce/types/wishlist'
+import type { Wishlist } from '@commerce/types/wishlist'
 
 interface Props {
   item: Wishlist
diff --git a/components/wishlist/WishlistCard/index.ts b/site/components/wishlist/WishlistCard/index.ts
similarity index 100%
rename from components/wishlist/WishlistCard/index.ts
rename to site/components/wishlist/WishlistCard/index.ts
diff --git a/components/wishlist/index.ts b/site/components/wishlist/index.ts
similarity index 100%
rename from components/wishlist/index.ts
rename to site/components/wishlist/index.ts
diff --git a/config/seo.json b/site/config/seo.json
similarity index 100%
rename from config/seo.json
rename to site/config/seo.json
diff --git a/global.d.ts b/site/global.d.ts
similarity index 100%
rename from global.d.ts
rename to site/global.d.ts
diff --git a/lib/api/commerce.ts b/site/lib/api/commerce.ts
similarity index 100%
rename from lib/api/commerce.ts
rename to site/lib/api/commerce.ts
diff --git a/lib/click-outside/click-outside.tsx b/site/lib/click-outside/click-outside.tsx
similarity index 100%
rename from lib/click-outside/click-outside.tsx
rename to site/lib/click-outside/click-outside.tsx
diff --git a/lib/click-outside/has-parent.js b/site/lib/click-outside/has-parent.js
similarity index 100%
rename from lib/click-outside/has-parent.js
rename to site/lib/click-outside/has-parent.js
diff --git a/lib/click-outside/index.ts b/site/lib/click-outside/index.ts
similarity index 100%
rename from lib/click-outside/index.ts
rename to site/lib/click-outside/index.ts
diff --git a/lib/click-outside/is-in-dom.js b/site/lib/click-outside/is-in-dom.js
similarity index 100%
rename from lib/click-outside/is-in-dom.js
rename to site/lib/click-outside/is-in-dom.js
diff --git a/lib/colors.ts b/site/lib/colors.ts
similarity index 100%
rename from lib/colors.ts
rename to site/lib/colors.ts
diff --git a/lib/focus-trap.tsx b/site/lib/focus-trap.tsx
similarity index 100%
rename from lib/focus-trap.tsx
rename to site/lib/focus-trap.tsx
diff --git a/lib/get-slug.ts b/site/lib/get-slug.ts
similarity index 100%
rename from lib/get-slug.ts
rename to site/lib/get-slug.ts
diff --git a/lib/hooks/useAcceptCookies.ts b/site/lib/hooks/useAcceptCookies.ts
similarity index 100%
rename from lib/hooks/useAcceptCookies.ts
rename to site/lib/hooks/useAcceptCookies.ts
diff --git a/lib/hooks/useUserAvatar.ts b/site/lib/hooks/useUserAvatar.ts
similarity index 100%
rename from lib/hooks/useUserAvatar.ts
rename to site/lib/hooks/useUserAvatar.ts
diff --git a/lib/range-map.ts b/site/lib/range-map.ts
similarity index 100%
rename from lib/range-map.ts
rename to site/lib/range-map.ts
diff --git a/lib/search-props.tsx b/site/lib/search-props.tsx
similarity index 100%
rename from lib/search-props.tsx
rename to site/lib/search-props.tsx
diff --git a/lib/search.tsx b/site/lib/search.tsx
similarity index 100%
rename from lib/search.tsx
rename to site/lib/search.tsx
diff --git a/lib/to-pixels.ts b/site/lib/to-pixels.ts
similarity index 100%
rename from lib/to-pixels.ts
rename to site/lib/to-pixels.ts
diff --git a/lib/usage-warns.ts b/site/lib/usage-warns.ts
similarity index 100%
rename from lib/usage-warns.ts
rename to site/lib/usage-warns.ts
diff --git a/next-env.d.ts b/site/next-env.d.ts
similarity index 100%
rename from next-env.d.ts
rename to site/next-env.d.ts
diff --git a/next.config.js b/site/next.config.js
similarity index 77%
rename from next.config.js
rename to site/next.config.js
index 4349ba05a..22ecc1e17 100644
--- a/next.config.js
+++ b/site/next.config.js
@@ -1,15 +1,12 @@
 const commerce = require('./commerce.config.json')
-const {
-  withCommerceConfig,
-  getProviderName,
-} = require('./framework/commerce/config')
+const { withCommerceConfig, getProviderName } = require('./commerce-config')
 
 const provider = commerce.provider || getProviderName()
-const isBC = provider === 'bigcommerce'
-const isShopify = provider === 'shopify'
-const isSaleor = provider === 'saleor'
-const isSwell = provider === 'swell'
-const isVendure = provider === 'vendure'
+const isBC = provider === '@vercel/commerce-bigcommerce'
+const isShopify = provider === '@vercel/commerce-shopify'
+const isSaleor = provider === '@vercel/commerce-saleor'
+const isSwell = provider === '@vercel/commerce-swell'
+const isVendure = provider === '@vercel/commerce-vendure'
 
 module.exports = withCommerceConfig({
   commerce,
diff --git a/site/package.json b/site/package.json
new file mode 100644
index 000000000..aa4e6bb84
--- /dev/null
+++ b/site/package.json
@@ -0,0 +1,106 @@
+{
+  "name": "next-commerce",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "dev": "next dev",
+    "build": "next build",
+    "start": "next start",
+    "analyze": "BUNDLE_ANALYZE=both next build",
+    "lint": "next lint",
+    "prettier-fix": "prettier --write .",
+    "find:unused": "npx next-unused"
+  },
+  "sideEffects": false,
+  "dependencies": {
+    "@react-spring/web": "^9.4.1",
+    "@vercel/commerce": "^0.0.1",
+    "@vercel/commerce-bigcommerce": "^0.0.1",
+    "@vercel/commerce-commercejs": "^0.0.1",
+    "@vercel/commerce-kibocommerce": "^0.0.1",
+    "@vercel/commerce-local": "^0.0.1",
+    "@vercel/commerce-ordercloud": "^0.0.1",
+    "@vercel/commerce-saleor": "^0.0.1",
+    "@vercel/commerce-shopify": "^0.0.1",
+    "@vercel/commerce-spree": "^0.0.1",
+    "@vercel/commerce-swell": "^0.0.1",
+    "@vercel/commerce-vendure": "^0.0.1",
+    "autoprefixer": "^10.4.2",
+    "body-scroll-lock": "^4.0.0-beta.0",
+    "classnames": "^2.3.1",
+    "email-validator": "^2.0.4",
+    "js-cookie": "^3.0.1",
+    "keen-slider": "^6.6.3",
+    "lodash.random": "^3.2.0",
+    "lodash.throttle": "^4.1.1",
+    "next": "^12.0.8",
+    "next-seo": "^4.28.1",
+    "next-themes": "^0.0.15",
+    "postcss": "^8.3.5",
+    "postcss-nesting": "^8.0.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "react-fast-marquee": "^1.3.1",
+    "react-merge-refs": "^1.1.0",
+    "react-use-measure": "^2.1.1",
+    "tabbable": "^5.2.1",
+    "tailwindcss": "^3.0.13"
+  },
+  "devDependencies": {
+    "@next/bundle-analyzer": "^12.0.8",
+    "@types/body-scroll-lock": "^3.1.0",
+    "@types/js-cookie": "^3.0.1",
+    "@types/lodash.random": "^3.2.6",
+    "@types/lodash.throttle": "^4.1.6",
+    "@types/node": "^17.0.8",
+    "@types/react": "^17.0.38",
+    "eslint": "^8.6.0",
+    "eslint-config-next": "^12.0.8",
+    "eslint-config-prettier": "^8.3.0",
+    "lint-staged": "^12.1.7",
+    "postcss-flexbugs-fixes": "^5.0.2",
+    "postcss-preset-env": "^7.2.3",
+    "prettier": "^2.5.1",
+    "typescript": "4.3.4"
+  },
+  "lint-staged": {
+    "**/*.{js,jsx,ts,tsx}": [
+      "eslint",
+      "prettier --write",
+      "git add"
+    ],
+    "**/*.{md,mdx,json}": [
+      "prettier --write",
+      "git add"
+    ]
+  },
+  "next-unused": {
+    "alias": {
+      "@lib/*": [
+        "lib/*"
+      ],
+      "@assets/*": [
+        "assets/*"
+      ],
+      "@config/*": [
+        "config/*"
+      ],
+      "@components/*": [
+        "components/*"
+      ],
+      "@utils/*": [
+        "utils/*"
+      ]
+    },
+    "debug": true,
+    "include": [
+      "components",
+      "lib",
+      "pages"
+    ],
+    "exclude": [],
+    "entrypoints": [
+      "pages"
+    ]
+  }
+}
diff --git a/pages/404.tsx b/site/pages/404.tsx
similarity index 100%
rename from pages/404.tsx
rename to site/pages/404.tsx
diff --git a/pages/[...pages].tsx b/site/pages/[...pages].tsx
similarity index 100%
rename from pages/[...pages].tsx
rename to site/pages/[...pages].tsx
diff --git a/pages/_app.tsx b/site/pages/_app.tsx
similarity index 100%
rename from pages/_app.tsx
rename to site/pages/_app.tsx
diff --git a/pages/_document.tsx b/site/pages/_document.tsx
similarity index 100%
rename from pages/_document.tsx
rename to site/pages/_document.tsx
diff --git a/pages/api/cart.ts b/site/pages/api/cart.ts
similarity index 100%
rename from pages/api/cart.ts
rename to site/pages/api/cart.ts
diff --git a/pages/api/catalog/products.ts b/site/pages/api/catalog/products.ts
similarity index 100%
rename from pages/api/catalog/products.ts
rename to site/pages/api/catalog/products.ts
diff --git a/pages/api/checkout.ts b/site/pages/api/checkout.ts
similarity index 100%
rename from pages/api/checkout.ts
rename to site/pages/api/checkout.ts
diff --git a/pages/api/customer/address.ts b/site/pages/api/customer/address.ts
similarity index 100%
rename from pages/api/customer/address.ts
rename to site/pages/api/customer/address.ts
diff --git a/pages/api/customer/card.ts b/site/pages/api/customer/card.ts
similarity index 100%
rename from pages/api/customer/card.ts
rename to site/pages/api/customer/card.ts
diff --git a/pages/api/customer/index.ts b/site/pages/api/customer/index.ts
similarity index 100%
rename from pages/api/customer/index.ts
rename to site/pages/api/customer/index.ts
diff --git a/pages/api/login.ts b/site/pages/api/login.ts
similarity index 100%
rename from pages/api/login.ts
rename to site/pages/api/login.ts
diff --git a/pages/api/logout.ts b/site/pages/api/logout.ts
similarity index 100%
rename from pages/api/logout.ts
rename to site/pages/api/logout.ts
diff --git a/pages/api/signup.ts b/site/pages/api/signup.ts
similarity index 100%
rename from pages/api/signup.ts
rename to site/pages/api/signup.ts
diff --git a/pages/api/wishlist.ts b/site/pages/api/wishlist.ts
similarity index 100%
rename from pages/api/wishlist.ts
rename to site/pages/api/wishlist.ts
diff --git a/pages/cart.tsx b/site/pages/cart.tsx
similarity index 100%
rename from pages/cart.tsx
rename to site/pages/cart.tsx
diff --git a/pages/index.tsx b/site/pages/index.tsx
similarity index 100%
rename from pages/index.tsx
rename to site/pages/index.tsx
diff --git a/pages/orders.tsx b/site/pages/orders.tsx
similarity index 100%
rename from pages/orders.tsx
rename to site/pages/orders.tsx
diff --git a/pages/product/[slug].tsx b/site/pages/product/[slug].tsx
similarity index 100%
rename from pages/product/[slug].tsx
rename to site/pages/product/[slug].tsx
diff --git a/pages/profile.tsx b/site/pages/profile.tsx
similarity index 100%
rename from pages/profile.tsx
rename to site/pages/profile.tsx
diff --git a/pages/search.tsx b/site/pages/search.tsx
similarity index 100%
rename from pages/search.tsx
rename to site/pages/search.tsx
diff --git a/pages/search/[category].tsx b/site/pages/search/[category].tsx
similarity index 100%
rename from pages/search/[category].tsx
rename to site/pages/search/[category].tsx
diff --git a/pages/search/designers/[name].tsx b/site/pages/search/designers/[name].tsx
similarity index 100%
rename from pages/search/designers/[name].tsx
rename to site/pages/search/designers/[name].tsx
diff --git a/pages/search/designers/[name]/[category].tsx b/site/pages/search/designers/[name]/[category].tsx
similarity index 100%
rename from pages/search/designers/[name]/[category].tsx
rename to site/pages/search/designers/[name]/[category].tsx
diff --git a/pages/wishlist.tsx b/site/pages/wishlist.tsx
similarity index 100%
rename from pages/wishlist.tsx
rename to site/pages/wishlist.tsx
diff --git a/postcss.config.js b/site/postcss.config.js
similarity index 100%
rename from postcss.config.js
rename to site/postcss.config.js
diff --git a/public/assets/drop-shirt-0.png b/site/public/assets/drop-shirt-0.png
similarity index 100%
rename from public/assets/drop-shirt-0.png
rename to site/public/assets/drop-shirt-0.png
diff --git a/public/assets/drop-shirt-1.png b/site/public/assets/drop-shirt-1.png
similarity index 100%
rename from public/assets/drop-shirt-1.png
rename to site/public/assets/drop-shirt-1.png
diff --git a/public/assets/drop-shirt-2.png b/site/public/assets/drop-shirt-2.png
similarity index 100%
rename from public/assets/drop-shirt-2.png
rename to site/public/assets/drop-shirt-2.png
diff --git a/public/assets/drop-shirt.png b/site/public/assets/drop-shirt.png
similarity index 100%
rename from public/assets/drop-shirt.png
rename to site/public/assets/drop-shirt.png
diff --git a/public/assets/lightweight-jacket-0.png b/site/public/assets/lightweight-jacket-0.png
similarity index 100%
rename from public/assets/lightweight-jacket-0.png
rename to site/public/assets/lightweight-jacket-0.png
diff --git a/public/assets/lightweight-jacket-1.png b/site/public/assets/lightweight-jacket-1.png
similarity index 100%
rename from public/assets/lightweight-jacket-1.png
rename to site/public/assets/lightweight-jacket-1.png
diff --git a/public/assets/lightweight-jacket-2.png b/site/public/assets/lightweight-jacket-2.png
similarity index 100%
rename from public/assets/lightweight-jacket-2.png
rename to site/public/assets/lightweight-jacket-2.png
diff --git a/public/assets/t-shirt-0.png b/site/public/assets/t-shirt-0.png
similarity index 100%
rename from public/assets/t-shirt-0.png
rename to site/public/assets/t-shirt-0.png
diff --git a/public/assets/t-shirt-1.png b/site/public/assets/t-shirt-1.png
similarity index 100%
rename from public/assets/t-shirt-1.png
rename to site/public/assets/t-shirt-1.png
diff --git a/public/assets/t-shirt-2.png b/site/public/assets/t-shirt-2.png
similarity index 100%
rename from public/assets/t-shirt-2.png
rename to site/public/assets/t-shirt-2.png
diff --git a/public/assets/t-shirt-3.png b/site/public/assets/t-shirt-3.png
similarity index 100%
rename from public/assets/t-shirt-3.png
rename to site/public/assets/t-shirt-3.png
diff --git a/public/assets/t-shirt-4.png b/site/public/assets/t-shirt-4.png
similarity index 100%
rename from public/assets/t-shirt-4.png
rename to site/public/assets/t-shirt-4.png
diff --git a/public/bg-products.svg b/site/public/bg-products.svg
similarity index 100%
rename from public/bg-products.svg
rename to site/public/bg-products.svg
diff --git a/public/card.png b/site/public/card.png
similarity index 100%
rename from public/card.png
rename to site/public/card.png
diff --git a/public/cursor-left.png b/site/public/cursor-left.png
similarity index 100%
rename from public/cursor-left.png
rename to site/public/cursor-left.png
diff --git a/public/cursor-right.png b/site/public/cursor-right.png
similarity index 100%
rename from public/cursor-right.png
rename to site/public/cursor-right.png
diff --git a/public/favicon.ico b/site/public/favicon.ico
similarity index 100%
rename from public/favicon.ico
rename to site/public/favicon.ico
diff --git a/public/flag-en-us.svg b/site/public/flag-en-us.svg
similarity index 100%
rename from public/flag-en-us.svg
rename to site/public/flag-en-us.svg
diff --git a/public/flag-es-ar.svg b/site/public/flag-es-ar.svg
similarity index 100%
rename from public/flag-es-ar.svg
rename to site/public/flag-es-ar.svg
diff --git a/public/flag-es-co.svg b/site/public/flag-es-co.svg
similarity index 100%
rename from public/flag-es-co.svg
rename to site/public/flag-es-co.svg
diff --git a/public/flag-es.svg b/site/public/flag-es.svg
similarity index 100%
rename from public/flag-es.svg
rename to site/public/flag-es.svg
diff --git a/public/icon-144x144.png b/site/public/icon-144x144.png
similarity index 100%
rename from public/icon-144x144.png
rename to site/public/icon-144x144.png
diff --git a/public/icon-192x192.png b/site/public/icon-192x192.png
similarity index 100%
rename from public/icon-192x192.png
rename to site/public/icon-192x192.png
diff --git a/public/icon-512x512.png b/site/public/icon-512x512.png
similarity index 100%
rename from public/icon-512x512.png
rename to site/public/icon-512x512.png
diff --git a/public/icon.png b/site/public/icon.png
similarity index 100%
rename from public/icon.png
rename to site/public/icon.png
diff --git a/public/product-img-placeholder.svg b/site/public/product-img-placeholder.svg
similarity index 100%
rename from public/product-img-placeholder.svg
rename to site/public/product-img-placeholder.svg
diff --git a/public/site.webmanifest b/site/public/site.webmanifest
similarity index 100%
rename from public/site.webmanifest
rename to site/public/site.webmanifest
diff --git a/public/slider-arrows.png b/site/public/slider-arrows.png
similarity index 100%
rename from public/slider-arrows.png
rename to site/public/slider-arrows.png
diff --git a/public/vercel.svg b/site/public/vercel.svg
similarity index 100%
rename from public/vercel.svg
rename to site/public/vercel.svg
diff --git a/tailwind.config.js b/site/tailwind.config.js
similarity index 100%
rename from tailwind.config.js
rename to site/tailwind.config.js
diff --git a/tsconfig.json b/site/tsconfig.json
similarity index 57%
rename from tsconfig.json
rename to site/tsconfig.json
index db71b765b..7c91afd6f 100644
--- a/tsconfig.json
+++ b/site/tsconfig.json
@@ -2,6 +2,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "target": "esnext",
+    "module": "esnext",
     "lib": ["dom", "dom.iterable", "esnext"],
     "allowJs": true,
     "skipLibCheck": true,
@@ -9,37 +10,23 @@
     "forceConsistentCasingInFileNames": true,
     "noEmit": true,
     "esModuleInterop": true,
-    "module": "esnext",
     "moduleResolution": "node",
     "resolveJsonModule": true,
     "isolatedModules": true,
     "jsx": "preserve",
     "incremental": true,
-    "useUnknownInCatchVariables": false,
     "paths": {
       "@lib/*": ["lib/*"],
       "@utils/*": ["utils/*"],
       "@config/*": ["config/*"],
       "@assets/*": ["assets/*"],
       "@components/*": ["components/*"],
-      "@commerce": ["framework/commerce"],
-      "@commerce/*": ["framework/commerce/*"],
-      "@framework": ["framework/local"],
-      "@framework/*": ["framework/local/*"]
+      "@commerce": ["../packages/commerce/src"],
+      "@commerce/*": ["../packages/commerce/src/*"],
+      "@framework": ["../packages/local/src"],
+      "@framework/*": ["../packages/local/src/*"]
     }
   },
   "include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"],
-  "exclude": [
-    "node_modules",
-    "./framework/local",
-    "./framework/bigcommerce",
-    "./framework/shopify",
-    "./framework/swell",
-    "./framework/vendure",
-    "./framework/saleor",
-    "./framework/spree",
-    "./framework/ordercloud",
-    "./framework/kibocommerce",
-    "./framework/commercejs"
-  ]
+  "exclude": ["node_modules"]
 }
diff --git a/swell-js.d.ts b/swell-js.d.ts
deleted file mode 100644
index 64a94d89e..000000000
--- a/swell-js.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-declare module 'swell-js'
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 000000000..4eb075f0c
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,6038 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
+  integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
+  dependencies:
+    "@babel/highlight" "^7.16.7"
+
+"@babel/compat-data@^7.16.4":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
+  integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
+
+"@babel/core@^7.14.0":
+  version "7.16.12"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784"
+  integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==
+  dependencies:
+    "@babel/code-frame" "^7.16.7"
+    "@babel/generator" "^7.16.8"
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helpers" "^7.16.7"
+    "@babel/parser" "^7.16.12"
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.16.10"
+    "@babel/types" "^7.16.8"
+    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.14.0", "@babel/generator@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe"
+  integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==
+  dependencies:
+    "@babel/types" "^7.16.8"
+    jsesc "^2.5.1"
+    source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
+  integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-compilation-targets@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
+  integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+  dependencies:
+    "@babel/compat-data" "^7.16.4"
+    "@babel/helper-validator-option" "^7.16.7"
+    browserslist "^4.17.5"
+    semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.16.7":
+  version "7.16.10"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c"
+  integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-member-expression-to-functions" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+
+"@babel/helper-environment-visitor@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
+  integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-function-name@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
+  integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.16.7"
+    "@babel/template" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-get-function-arity@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
+  integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-hoist-variables@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
+  integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-member-expression-to-functions@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0"
+  integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-module-imports@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
+  integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-module-transforms@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
+  integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-simple-access" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    "@babel/helper-validator-identifier" "^7.16.7"
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-optimise-call-expression@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
+  integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
+  integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
+
+"@babel/helper-replace-supers@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1"
+  integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-member-expression-to-functions" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/traverse" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-simple-access@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
+  integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
+  integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
+  dependencies:
+    "@babel/types" "^7.16.0"
+
+"@babel/helper-split-export-declaration@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
+  integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
+  integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
+
+"@babel/helper-validator-option@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
+  integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+
+"@babel/helpers@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc"
+  integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==
+  dependencies:
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/highlight@^7.16.7":
+  version "7.16.10"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
+  integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.16.7"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/parser@^7.14.0", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8":
+  version "7.16.12"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6"
+  integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==
+
+"@babel/plugin-proposal-class-properties@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0"
+  integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-object-rest-spread@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8"
+  integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
+  dependencies:
+    "@babel/compat-data" "^7.16.4"
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.16.7"
+
+"@babel/plugin-syntax-class-properties@^7.0.0":
+  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-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832"
+  integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-jsx@7.14.5":
+  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.14.5"
+
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
+  integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+  integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-transform-arrow-functions@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154"
+  integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-block-scoped-functions@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
+  integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-block-scoping@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87"
+  integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-classes@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00"
+  integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470"
+  integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-destructuring@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23"
+  integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-flow-strip-types@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8"
+  integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-flow" "^7.16.7"
+
+"@babel/plugin-transform-for-of@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c"
+  integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-function-name@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
+  integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-literals@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1"
+  integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-member-expression-literals@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
+  integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-modules-commonjs@^7.0.0":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
+  integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-simple-access" "^7.16.7"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-object-super@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
+  integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f"
+  integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-property-literals@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
+  integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-display-name@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340"
+  integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4"
+  integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-jsx" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/plugin-transform-shorthand-properties@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
+  integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-spread@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44"
+  integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+
+"@babel/plugin-transform-template-literals@^7.0.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab"
+  integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/runtime-corejs3@^7.10.2":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7"
+  integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==
+  dependencies:
+    core-js-pure "^3.20.2"
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@7.4.5":
+  version "7.4.5"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12"
+  integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==
+  dependencies:
+    regenerator-runtime "^0.13.2"
+
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.14.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.4":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
+  integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
+  integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+  dependencies:
+    "@babel/code-frame" "^7.16.7"
+    "@babel/parser" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8":
+  version "7.16.10"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f"
+  integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==
+  dependencies:
+    "@babel/code-frame" "^7.16.7"
+    "@babel/generator" "^7.16.8"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-hoist-variables" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    "@babel/parser" "^7.16.10"
+    "@babel/types" "^7.16.8"
+    debug "^4.1.0"
+    globals "^11.1.0"
+
+"@babel/types@7.15.0":
+  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.14.9"
+    to-fast-properties "^2.0.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1"
+  integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.16.7"
+    to-fast-properties "^2.0.0"
+
+"@chec/commerce.js@^2.8.0":
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/@chec/commerce.js/-/commerce.js-2.8.0.tgz#c213cfcc2bc366fe66b77ea561dfa4b3aa7abc8c"
+  integrity sha512-OPBphT/hU33iDp52zzYOqz/oSXLhEuhGVUg2UNvYtmBW4eCNmtsM0dqW0+wu+6K0d6fZojurCBdVQMKb2R7l3g==
+  dependencies:
+    "@babel/runtime" "^7.7.4"
+    axios "^0.21.1"
+
+"@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d"
+  integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==
+  dependencies:
+    lodash.get "^4"
+    make-error "^1"
+    ts-node "^9"
+    tslib "^2"
+
+"@eslint/eslintrc@^1.0.5":
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318"
+  integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.2.0"
+    globals "^13.9.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^4.1.0"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
+"@graphql-codegen/cli@^2.3.1":
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.4.0.tgz#7df3ee2bdd5b88a5904ee6f52eafeb370ef70e51"
+  integrity sha512-4iiHH2AxBE17lX5cFdFg6+kh7I6uKQLYG0IZRalRbW/grKL7kuVp/RDUjmVB2GNJTJEhjxYLMJFJZocUmAUBlw==
+  dependencies:
+    "@graphql-codegen/core" "2.4.0"
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-tools/apollo-engine-loader" "^7.0.5"
+    "@graphql-tools/code-file-loader" "^7.0.6"
+    "@graphql-tools/git-loader" "^7.0.5"
+    "@graphql-tools/github-loader" "^7.0.5"
+    "@graphql-tools/graphql-file-loader" "^7.0.5"
+    "@graphql-tools/json-file-loader" "^7.1.2"
+    "@graphql-tools/load" "^7.3.0"
+    "@graphql-tools/prisma-loader" "^7.0.6"
+    "@graphql-tools/url-loader" "^7.0.11"
+    "@graphql-tools/utils" "^8.1.1"
+    ansi-escapes "^4.3.1"
+    chalk "^4.1.0"
+    change-case-all "1.0.14"
+    chokidar "^3.5.2"
+    common-tags "^1.8.0"
+    cosmiconfig "^7.0.0"
+    debounce "^1.2.0"
+    dependency-graph "^0.11.0"
+    detect-indent "^6.0.0"
+    glob "^7.1.6"
+    globby "^11.0.4"
+    graphql-config "^4.1.0"
+    inquirer "^8.0.0"
+    is-glob "^4.0.1"
+    json-to-pretty-yaml "^1.2.2"
+    latest-version "5.1.0"
+    listr "^0.14.3"
+    listr-update-renderer "^0.5.0"
+    log-symbols "^4.0.0"
+    minimatch "^3.0.4"
+    mkdirp "^1.0.4"
+    string-env-interpolation "^1.0.1"
+    ts-log "^2.2.3"
+    tslib "~2.3.0"
+    valid-url "^1.0.9"
+    wrap-ansi "^7.0.0"
+    yaml "^1.10.0"
+    yargs "^17.0.0"
+
+"@graphql-codegen/core@2.4.0":
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-2.4.0.tgz#d94dcc088b5e117c847ce5b10c4fe1eb7325e180"
+  integrity sha512-5RiYE1+07jayp/3w/bkyaCXtfKNeKmRabpPP4aRi369WeH2cH37l2K8NbhkIU+zhpnhoqMID61TO56x2fKldZQ==
+  dependencies:
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-tools/schema" "^8.1.2"
+    "@graphql-tools/utils" "^8.1.1"
+    tslib "~2.3.0"
+
+"@graphql-codegen/plugin-helpers@^2.3.2":
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.3.2.tgz#3f9ba625791901d19be733db1dfc9a3dbd0dac44"
+  integrity sha512-19qFA5XMAWaAY64sBljjDPYfHjE+QMk/+oalCyY13WjSlcLDvYPfmFlCNgFSsydArDELlHR8T1GMbA7C42M8TA==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.2"
+    change-case-all "1.0.14"
+    common-tags "1.8.2"
+    import-from "4.0.0"
+    lodash "~4.17.0"
+    tslib "~2.3.0"
+
+"@graphql-codegen/schema-ast@^2.4.1":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-2.4.1.tgz#ad742b53e32f7a2fbff8ea8a91ba7e617e6ef236"
+  integrity sha512-bIWlKk/ShoVJfghA4Rt1OWnd34/dQmZM/vAe6fu6QKyOh44aAdqPtYQ2dbTyFXoknmu504etKJGEDllYNUJRfg==
+  dependencies:
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-tools/utils" "^8.1.1"
+    tslib "~2.3.0"
+
+"@graphql-codegen/typescript-operations@^2.2.2":
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-2.2.2.tgz#028f2850ae85021d8932b5670e5feca7b0d5c767"
+  integrity sha512-J50AuTA37RYv67hP2oHbfr3iGxexTCoadQsbr5pEUGucrIupCA0hLEJH2W+9/h6YNh0UlZT3kRTJp81ARoAjOA==
+  dependencies:
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-codegen/typescript" "^2.4.2"
+    "@graphql-codegen/visitor-plugin-common" "2.5.2"
+    auto-bind "~4.0.0"
+    tslib "~2.3.0"
+
+"@graphql-codegen/typescript@^2.4.2":
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.4.2.tgz#a239d5fd8f11140d5d4c81cfae7ff02054b724dc"
+  integrity sha512-8ajWidiFqF1KNAywtb/692SjwTyjzrDHo1sf2Q7Z+rh9qDEIrh83VHB8naT/1CefOvxj3MS6GbcsvJMizaE/AQ==
+  dependencies:
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-codegen/schema-ast" "^2.4.1"
+    "@graphql-codegen/visitor-plugin-common" "2.5.2"
+    auto-bind "~4.0.0"
+    tslib "~2.3.0"
+
+"@graphql-codegen/visitor-plugin-common@2.5.2":
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd"
+  integrity sha512-qDMraPmumG+vEGAz42/asRkdgIRmQWH5HTc320UX+I6CY6eE/Ey85cgzoqeQGLV8gu4sj3UkNx/3/r79eX4u+Q==
+  dependencies:
+    "@graphql-codegen/plugin-helpers" "^2.3.2"
+    "@graphql-tools/optimize" "^1.0.1"
+    "@graphql-tools/relay-operation-optimizer" "^6.3.7"
+    "@graphql-tools/utils" "^8.3.0"
+    auto-bind "~4.0.0"
+    change-case-all "1.0.14"
+    dependency-graph "^0.11.0"
+    graphql-tag "^2.11.0"
+    parse-filepath "^1.0.2"
+    tslib "~2.3.0"
+
+"@graphql-tools/apollo-engine-loader@^7.0.5":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.2.tgz#1463f5d2d95b5ca2b602b35b4922b38935013860"
+  integrity sha512-jrtA1IvgbaHzla9nyBngNyvajudTcQAVE3//mgrK+DoN7UpUhtoXfxTOOq2tzZN67o4a6Bv/RJsxB3rSI3NLzg==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.1"
+    cross-undici-fetch "^0.1.19"
+    sync-fetch "0.3.1"
+    tslib "~2.3.0"
+
+"@graphql-tools/batch-execute@^8.3.1":
+  version "8.3.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.3.1.tgz#0b74c54db5ac1c5b9a273baefc034c2343ebbb74"
+  integrity sha512-63kHY8ZdoO5FoeDXYHnAak1R3ysMViMPwWC2XUblFckuVLMUPmB2ONje8rjr2CvzWBHAW8c1Zsex+U3xhKtGIA==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.1"
+    dataloader "2.0.0"
+    tslib "~2.3.0"
+    value-or-promise "1.0.11"
+
+"@graphql-tools/code-file-loader@^7.0.6":
+  version "7.2.3"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.2.3.tgz#b53e8809528da07911423c3a511e5fccf9121a12"
+  integrity sha512-aNVG3/VG5cUpS389rpCum+z7RY98qvPwOzd+J4LVr+f5hWQbDREnSFM+5RVTDfULujrsi7edKaGxGKp68pGmAA==
+  dependencies:
+    "@graphql-tools/graphql-tag-pluck" "^7.1.3"
+    "@graphql-tools/utils" "^8.5.1"
+    globby "^11.0.3"
+    tslib "~2.3.0"
+    unixify "^1.0.0"
+
+"@graphql-tools/delegate@^8.4.1", "@graphql-tools/delegate@^8.4.2":
+  version "8.4.3"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-8.4.3.tgz#ad73ed7cc3b4cad9242c6d4835a5ae0b640f7164"
+  integrity sha512-hKTJdJXJnKL0+2vpU+Kt7OHQTIXZ9mBmNBwHsYiG5WNArz/vNI7910r6TC2XMf/e7zhyyK+mXxMDBmDQkkJagA==
+  dependencies:
+    "@graphql-tools/batch-execute" "^8.3.1"
+    "@graphql-tools/schema" "^8.3.1"
+    "@graphql-tools/utils" "^8.5.4"
+    dataloader "2.0.0"
+    tslib "~2.3.0"
+    value-or-promise "1.0.11"
+
+"@graphql-tools/git-loader@^7.0.5":
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.1.2.tgz#7a7b5fc366bcc9e2e14e0463ff73f1a19aafabbd"
+  integrity sha512-vIMrISQPKQgHS893b8K/pEE1InPV+7etzFhHoyQRhYkVHXP2RBkfI64Wq9bNPezF8Ss/dwIjI/keLaPp9EQDmA==
+  dependencies:
+    "@graphql-tools/graphql-tag-pluck" "^7.1.3"
+    "@graphql-tools/utils" "^8.5.1"
+    is-glob "4.0.3"
+    micromatch "^4.0.4"
+    tslib "~2.3.0"
+    unixify "^1.0.0"
+
+"@graphql-tools/github-loader@^7.0.5":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.2.2.tgz#632351eac56cbbda25e38ff7ea7bcb256f30a277"
+  integrity sha512-prk7fWkPQdkOIGv/tFxNFAmxrBbWwc/ztOk2m5tAfmdiVM0HR3MC5Ckx3kLpODVG7lpxKRamMsPCIqmjhrCLWQ==
+  dependencies:
+    "@graphql-tools/graphql-tag-pluck" "^7.1.3"
+    "@graphql-tools/utils" "^8.5.1"
+    cross-undici-fetch "^0.1.19"
+    sync-fetch "0.3.1"
+    tslib "~2.3.0"
+
+"@graphql-tools/graphql-file-loader@^7.0.5", "@graphql-tools/graphql-file-loader@^7.3.2":
+  version "7.3.3"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.3.tgz#7cee2f84f08dc13fa756820b510248b857583d36"
+  integrity sha512-6kUJZiNpYKVhum9E5wfl5PyLLupEDYdH7c8l6oMrk6c7EPEVs6iSUyB7yQoWrtJccJLULBW2CRQ5IHp5JYK0mA==
+  dependencies:
+    "@graphql-tools/import" "^6.5.7"
+    "@graphql-tools/utils" "^8.5.1"
+    globby "^11.0.3"
+    tslib "~2.3.0"
+    unixify "^1.0.0"
+
+"@graphql-tools/graphql-tag-pluck@^7.1.3":
+  version "7.1.5"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.1.5.tgz#229ed40f38430cdea750f112cbfad89fbc29129c"
+  integrity sha512-NKbFcjlg7cbK+scLXc6eVxXIhX4k8QL6lZ/y5Ju7yrpIN18k2vA78dI6W3Qb5qdftxbDNuC+kDmScZfzzxVPjQ==
+  dependencies:
+    "@babel/parser" "^7.16.8"
+    "@babel/traverse" "^7.16.8"
+    "@babel/types" "^7.16.8"
+    "@graphql-tools/utils" "^8.5.1"
+    tslib "~2.3.0"
+
+"@graphql-tools/import@^6.5.7":
+  version "6.6.5"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.6.5.tgz#e1ec593960288ceda7d5c56c0073c702b1bdcfa0"
+  integrity sha512-w0/cYuhrr2apn+iGoTToCqt65x2NN2iHQyqRNk/Zw1NJ+e8/C3eKVw0jmW4pYQvSocuPxL4UCSI56SdKO7m3+Q==
+  dependencies:
+    "@graphql-tools/utils" "8.6.1"
+    resolve-from "5.0.0"
+    tslib "~2.3.0"
+
+"@graphql-tools/json-file-loader@^7.1.2", "@graphql-tools/json-file-loader@^7.3.2":
+  version "7.3.3"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.3.3.tgz#45cfde77b9dc4ab6c21575305ae537d2814d237f"
+  integrity sha512-CN2Qk9rt+Gepa3rb3X/mpxYA5MIYLwZBPj2Njw6lbZ6AaxG+O1ArDCL5ACoiWiBimn1FCOM778uhRM9znd0b3Q==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.1"
+    globby "^11.0.3"
+    tslib "~2.3.0"
+    unixify "^1.0.0"
+
+"@graphql-tools/load@^7.3.0", "@graphql-tools/load@^7.4.1":
+  version "7.5.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b"
+  integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg==
+  dependencies:
+    "@graphql-tools/schema" "8.3.1"
+    "@graphql-tools/utils" "^8.6.0"
+    p-limit "3.1.0"
+    tslib "~2.3.0"
+
+"@graphql-tools/merge@^8.2.1":
+  version "8.2.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff"
+  integrity sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.1"
+    tslib "~2.3.0"
+
+"@graphql-tools/optimize@^1.0.1":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.1.1.tgz#dcd59ba1ee34431e5e9b086b57fe0bdb1a176669"
+  integrity sha512-y0TEfPyGmJaQjnsTRs/UP7/ZHaB3i68VAsXW4H2doUFKY6rIOUz+ruME/uWsfy/VeTWBNqGX8/m/X7YFEi5OJQ==
+  dependencies:
+    tslib "~2.3.0"
+
+"@graphql-tools/prisma-loader@^7.0.6":
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.1.1.tgz#2a769919c97a3f7f7807668d3155c47999b0965c"
+  integrity sha512-9hVpG3BNsXAYMLPlZhSHubk6qBmiHLo/UlU0ldL100sMpqI46iBaHNhTNXZCSdd81hT+4HNqaDXNFqyKJ22OGQ==
+  dependencies:
+    "@graphql-tools/url-loader" "^7.4.2"
+    "@graphql-tools/utils" "^8.5.1"
+    "@types/js-yaml" "^4.0.0"
+    "@types/json-stable-stringify" "^1.0.32"
+    "@types/jsonwebtoken" "^8.5.0"
+    chalk "^4.1.0"
+    debug "^4.3.1"
+    dotenv "^10.0.0"
+    graphql-request "^3.3.0"
+    http-proxy-agent "^5.0.0"
+    https-proxy-agent "^5.0.0"
+    isomorphic-fetch "^3.0.0"
+    js-yaml "^4.0.0"
+    json-stable-stringify "^1.0.1"
+    jsonwebtoken "^8.5.1"
+    lodash "^4.17.20"
+    replaceall "^0.1.6"
+    scuid "^1.1.0"
+    tslib "~2.3.0"
+    yaml-ast-parser "^0.0.43"
+
+"@graphql-tools/relay-operation-optimizer@^6.3.7":
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.1.tgz#28572444e2c00850c889a84472f3cc7405dc1ad8"
+  integrity sha512-2b9D5L+31sIBnvmcmIW5tfvNUV+nJFtbHpUyarTRDmFT6EZ2cXo4WZMm9XJcHQD/Z5qvMXfPHxzQ3/JUs4xI+w==
+  dependencies:
+    "@graphql-tools/utils" "^8.5.1"
+    relay-compiler "12.0.0"
+    tslib "~2.3.0"
+
+"@graphql-tools/schema@8.3.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1":
+  version "8.3.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74"
+  integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ==
+  dependencies:
+    "@graphql-tools/merge" "^8.2.1"
+    "@graphql-tools/utils" "^8.5.1"
+    tslib "~2.3.0"
+    value-or-promise "1.0.11"
+
+"@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2":
+  version "7.7.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.7.1.tgz#2faabdc1d2c47edc8edc9cc938eee2767189869f"
+  integrity sha512-K/5amdeHtKYI976HVd/AXdSNvLL7vx5QVjMlwN0OHeYyxSgC+UOH+KkS7cshYgL13SekGu0Mxbg9ABfgQ34ECA==
+  dependencies:
+    "@graphql-tools/delegate" "^8.4.1"
+    "@graphql-tools/utils" "^8.5.1"
+    "@graphql-tools/wrap" "^8.3.1"
+    "@n1ru4l/graphql-live-query" "^0.9.0"
+    "@types/websocket" "^1.0.4"
+    "@types/ws" "^8.0.0"
+    cross-undici-fetch "^0.1.19"
+    dset "^3.1.0"
+    extract-files "^11.0.0"
+    graphql-sse "^1.0.1"
+    graphql-ws "^5.4.1"
+    isomorphic-ws "^4.0.1"
+    meros "^1.1.4"
+    subscriptions-transport-ws "^0.11.0"
+    sync-fetch "^0.3.1"
+    tslib "^2.3.0"
+    valid-url "^1.0.9"
+    value-or-promise "^1.0.11"
+    ws "^8.3.0"
+
+"@graphql-tools/utils@8.6.1", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.5.4", "@graphql-tools/utils@^8.6.0":
+  version "8.6.1"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882"
+  integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg==
+  dependencies:
+    tslib "~2.3.0"
+
+"@graphql-tools/wrap@^8.3.1":
+  version "8.3.3"
+  resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-8.3.3.tgz#014aa04a6cf671ffe477516255d1134777da056a"
+  integrity sha512-TpXN1S4Cv+oMA1Zsg9Nu4N9yrFxLuJkX+CTtSRrrdfETGHIxqfyDkm5slPDCckxP+RILA00g8ny2jzsYyNvX1w==
+  dependencies:
+    "@graphql-tools/delegate" "^8.4.2"
+    "@graphql-tools/schema" "^8.3.1"
+    "@graphql-tools/utils" "^8.5.3"
+    tslib "~2.3.0"
+    value-or-promise "1.0.11"
+
+"@humanwhocodes/config-array@^0.9.2":
+  version "0.9.2"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914"
+  integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==
+  dependencies:
+    "@humanwhocodes/object-schema" "^1.2.1"
+    debug "^4.1.1"
+    minimatch "^3.0.4"
+
+"@humanwhocodes/object-schema@^1.2.1":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
+"@iarna/toml@^2.2.5":
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
+  integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
+
+"@n1ru4l/graphql-live-query@^0.9.0":
+  version "0.9.0"
+  resolved "https://registry.yarnpkg.com/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz#defaebdd31f625bee49e6745934f36312532b2bc"
+  integrity sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg==
+
+"@next/bundle-analyzer@^12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.0.8.tgz#a4fef1b14f8a4a87c09d97a3d909deddc88d12f8"
+  integrity sha512-tRwFyAkJA0h+rwt4exq31T59qo4qwp7vPoR3yC8gIpK/E5NAwafyk40aNpk4OWhiQ2IvJMFutukMzY3xl79NXA==
+  dependencies:
+    webpack-bundle-analyzer "4.3.0"
+
+"@next/env@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/env/-/env-12.0.8.tgz#a32ca0a97d464307f2e6ff106ce09b19aac108cf"
+  integrity sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g==
+
+"@next/eslint-plugin-next@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.8.tgz#8bb026891dd3b61053e13289efcb163f66ea3dac"
+  integrity sha512-bf7O0Mvs1h3vIdbbi0hijG+6YG3ED/ebQfmUltrQSgGtHVKGADDoE2qQhwE+mrvxuz9BD8y3mJDOSy0PBLKGBA==
+  dependencies:
+    glob "7.1.7"
+
+"@next/react-refresh-utils@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-12.0.8.tgz#481760a95ef442abd091663db6582d4dc1b31f06"
+  integrity sha512-Bq4T/aOOFQUkCF9b8k9x+HpjOevu65ZPxsYJOpgEtBuJyvb+sZREtDDLKb/RtjUeLMrWrsGD0aLteyFFtiS8Og==
+
+"@next/swc-android-arm64@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.0.8.tgz#f8dc9663da367a75982730cac058339fb310d79a"
+  integrity sha512-BiXMcOZNnXSIXv+FQvbRgbMb+iYayLX/Sb2MwR0wja+eMs46BY1x/ssXDwUBADP1M8YtrGTlSPHZqUiCU94+Mg==
+
+"@next/swc-darwin-arm64@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.8.tgz#d6aced7d0a04815dd1324e7982accb3de6a643e8"
+  integrity sha512-6EGMmvcIwPpwt0/iqLbXDGx6oKHAXzbowyyVXK8cqmIvhoghRFjqfiNGBs+ar6wEBGt68zhwn/77vE3iQWoFJw==
+
+"@next/swc-darwin-x64@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.8.tgz#f4fe58d2ed852538410b15a0c80d78908050c716"
+  integrity sha512-todxgQOGP/ucz5UH2kKR3XGDdkWmWr0VZAAbzgTbiFm45Ol4ih602k2nNR3xSbza9IqNhxNuUVsMpBgeo19CFQ==
+
+"@next/swc-linux-arm-gnueabihf@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.8.tgz#2c02d824fb46e8c6094d7e758c5d7e965070f574"
+  integrity sha512-KULmdrfI+DJxBuhEyV47MQllB/WpC3P2xbwhHezxL/LkC2nkz5SbV4k432qpx2ebjIRf9SjdQ5Oz1FjD8Urayw==
+
+"@next/swc-linux-arm64-gnu@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.8.tgz#fc32caf3373b299558ede1d889e8555b9ba10ffb"
+  integrity sha512-1XO87wgIVPvt5fx5i8CqdhksRdcpqyzCOLW4KrE0f9pUCIT04EbsFiKdmsH9c73aqjNZMnCMXpbV+cn4hN8x1w==
+
+"@next/swc-linux-arm64-musl@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.8.tgz#c2d3d7bc2c34da81412b74bdd6e11d0615ae1886"
+  integrity sha512-NStRZEy/rkk2G18Yhc/Jzi1Q2Dv+zH176oO8479zlDQ5syRfc6AvRHVV4iNRc8Pai58If83r/nOJkwFgGwkKLw==
+
+"@next/swc-linux-x64-gnu@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.8.tgz#029d84f856801b818e5525ab1406f2446821d48c"
+  integrity sha512-rHxTGtTEDFsdT9/VjewzxE19S7W1NE+aZpm4TwbT1pSNGK9KQxQGcXjqoHMeB+VZCFknzNEoIU/vydbjZMlAuw==
+
+"@next/swc-linux-x64-musl@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.8.tgz#db572da90ab3bce0bc58595c6b8c2d32ec64a2d3"
+  integrity sha512-1F4kuFRQE10GSx7LMSvRmjMXFGpxT30g8rZzq9r/p/WKdErA4WB4uxaKEX0P8AINfuN63i4luKdR+LoacgBhYw==
+
+"@next/swc-win32-arm64-msvc@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.8.tgz#f33e2e56a96489935f87c6dd28f79a7b7ed3778f"
+  integrity sha512-QuRe49jqCV61TysGopC1P0HPqFAMZMWe1nbIQLyOkDLkULmZR8N2eYZq7fwqvZE5YwhMmJA/grwWFVBqSEh5Kg==
+
+"@next/swc-win32-ia32-msvc@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.8.tgz#0f6c7f3e50fc1a4752aed5c862f53c86ce77e3b8"
+  integrity sha512-0RV3/julybJr1IlPCowIWrJJZyAl+sOakJEM15y1NOOsbwTQ5eKZZXSi+7e23TN4wmy5HwNvn2dKzgOEVJ+jbA==
+
+"@next/swc-win32-x64-msvc@12.0.8":
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.8.tgz#eae6d4c94dc8aae8ba177e2de02080339d0d4563"
+  integrity sha512-tTga6OFfO2JS+Yt5hdryng259c/tzNgSWkdiU2E+RBHiysAIOta57n4PJ8iPahOSqEqjaToPI76wM+o441GaNQ==
+
+"@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.5"
+    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.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==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@polka/url@^1.0.0-next.20":
+  version "1.0.0-next.21"
+  resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
+  integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
+
+"@react-spring/animated@~9.4.0":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.2.tgz#1dc107233ce4a44b023abac829f3b2ea8327a128"
+  integrity sha512-Dzum5Ho8e+LIAegAqRyoQFakD2IVH3ZQ2nsFXJorAFq3Xjv6IVPz/+TNxb/wSvnsMludfoF+ZIf319FSFmgD5w==
+  dependencies:
+    "@react-spring/shared" "~9.4.0"
+    "@react-spring/types" "~9.4.0"
+
+"@react-spring/core@~9.4.0":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.4.2.tgz#c20249535b3acaead015d17e1c4ce839ec3d4c9f"
+  integrity sha512-Ej/ULwdx8rQtMAWEpLgwbKcQEx6vPfjyG3cxLP05zAInpCoWkYpl+sXOp9tn3r99mTNQPTTt7BgQsSnmQA8+rQ==
+  dependencies:
+    "@react-spring/animated" "~9.4.0"
+    "@react-spring/rafz" "~9.4.0"
+    "@react-spring/shared" "~9.4.0"
+    "@react-spring/types" "~9.4.0"
+
+"@react-spring/rafz@~9.4.0":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.4.2.tgz#40a663d407cd116d436f662c6849f8e5b56234b6"
+  integrity sha512-rSm+G8E/XEEpnCGtT/xYN6o8VvEXlU8wN/hyKp4Q44XAZzGSMHLIFP7pY94/MmWsxCxjkw1AxUWhiFYxWrnI5Q==
+
+"@react-spring/shared@~9.4.0":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.4.2.tgz#45e103eee04f5e857ab2c575c2a84d3a883f0bfa"
+  integrity sha512-mZtbQLpMm6Vy5+O1MSlY9KuAcMO8rdUQvtdnC7Or7y7xiZlnzj8oAILyO6Y2rD2ZC1PmgVS0gMev/8T+MykW+Q==
+  dependencies:
+    "@react-spring/rafz" "~9.4.0"
+    "@react-spring/types" "~9.4.0"
+
+"@react-spring/types@~9.4.0":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.4.2.tgz#f0518f6d23a0b0f699a71976483323ac84bc4ace"
+  integrity sha512-GGiIscTM+CEUNV52anj3g5FqAZKL2+eRKtvBOAlC99qGBbvJ3qTLImrUR/I3lXY7PRuLgzI6kh34quA1oUxWYQ==
+
+"@react-spring/web@^9.4.1":
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.4.2.tgz#ea8bb224c236d10097da463ea9e950f0939b7a5f"
+  integrity sha512-sWfA9NkVuvVOpjSlMkD2zcF6X3i8NSHTeH/uHCGKsN3mYqgkhvAF+E8GASO/H4KKGNhbRvgCZiwJXOtOGyUg6A==
+  dependencies:
+    "@react-spring/animated" "~9.4.0"
+    "@react-spring/core" "~9.4.0"
+    "@react-spring/shared" "~9.4.0"
+    "@react-spring/types" "~9.4.0"
+
+"@rushstack/eslint-patch@^1.0.8":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
+  integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
+
+"@samverschueren/stream-to-observable@^0.3.0":
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301"
+  integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==
+  dependencies:
+    any-observable "^0.3.0"
+
+"@sindresorhus/is@^0.14.0":
+  version "0.14.0"
+  resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
+  integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
+
+"@spree/storefront-api-v2-sdk@^5.1.1":
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/@spree/storefront-api-v2-sdk/-/storefront-api-v2-sdk-5.1.2.tgz#6e4842c7307071adda45c975edb5ecbd9316e319"
+  integrity sha512-Jw9J/rUG9pyegjSWaXFSA1or/2KTgXiXdlE+hjMx3htveoxL1V+uqz7ke6UkdJMv7uB2cJtYOCpg8JzrQZgg1A==
+
+"@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"
+  integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
+  dependencies:
+    defer-to-connect "^1.0.1"
+
+"@tootallnate/once@2":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+  integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
+"@types/async-retry@1.2.1":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.2.1.tgz#fa9ac165907a8ee78f4924f4e393b656c65b5bb4"
+  integrity sha512-yMQ6CVgICWtyFNBqJT3zqOc+TnqqEPLo4nKJNPFwcialiylil38Ie6q1ENeFTjvaLOkVim9K5LisHgAKJWidGQ==
+
+"@types/body-scroll-lock@^3.1.0":
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/@types/body-scroll-lock/-/body-scroll-lock-3.1.0.tgz#435f6abf682bf58640e1c2ee5978320b891970e7"
+  integrity sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA==
+
+"@types/chec__commerce.js@*", "@types/chec__commerce.js@^2.8.4":
+  version "2.8.4"
+  resolved "https://registry.yarnpkg.com/@types/chec__commerce.js/-/chec__commerce.js-2.8.4.tgz#9f671a1ebeb16ee2c21de0fd19cfaeb6c4c5a780"
+  integrity sha512-hyR2OXEB3gIRp/ESWOQaFStefBG+C5OdnkxGC1Gmp0ePVzl/wk5FyvaK5NsT1ddNC/y1YsmDAVPe+DArr6/9Jg==
+  dependencies:
+    "@types/chec__commerce.js" "*"
+
+"@types/cookie@^0.4.1":
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
+  integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
+
+"@types/js-cookie@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.1.tgz#04aa743e2e0a85a22ee9aa61f6591a8bc19b5d68"
+  integrity sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==
+
+"@types/js-yaml@^4.0.0":
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138"
+  integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==
+
+"@types/json-stable-stringify@^1.0.32":
+  version "1.0.33"
+  resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz#099b0712d824d15e2660c20e1c16e6a8381f308c"
+  integrity sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==
+
+"@types/json5@^0.0.29":
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+  integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
+"@types/jsonwebtoken@^8.5.0", "@types/jsonwebtoken@^8.5.7":
+  version "8.5.8"
+  resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz#01b39711eb844777b7af1d1f2b4cf22fda1c0c44"
+  integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==
+  dependencies:
+    "@types/node" "*"
+
+"@types/lodash.debounce@^4.0.6":
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60"
+  integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==
+  dependencies:
+    "@types/lodash" "*"
+
+"@types/lodash.random@^3.2.6":
+  version "3.2.6"
+  resolved "https://registry.yarnpkg.com/@types/lodash.random/-/lodash.random-3.2.6.tgz#64b08abad168dca39c778ed40cce75b2f9e168eb"
+  integrity sha512-RRr0pKm+3USvG/HTkuRKA8v2EqXu19VXC09j4VL2UQec8Yx8Fn6wYTPGjYdmX4UFd23ykS7SLFkiULS/rv8kTA==
+  dependencies:
+    "@types/lodash" "*"
+
+"@types/lodash.throttle@^4.1.6":
+  version "4.1.6"
+  resolved "https://registry.yarnpkg.com/@types/lodash.throttle/-/lodash.throttle-4.1.6.tgz#f5ba2c22244ee42ff6c2c49e614401a870c1009c"
+  integrity sha512-/UIH96i/sIRYGC60NoY72jGkCJtFN5KVPhEMMMTjol65effe1gPn0tycJqV5tlSwMTzX8FqzB5yAj0rfGHTPNg==
+  dependencies:
+    "@types/lodash" "*"
+
+"@types/lodash@*":
+  version "4.14.178"
+  resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8"
+  integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==
+
+"@types/lru-cache@4.1.1":
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-4.1.1.tgz#b2d87a5e3df8d4b18ca426c5105cd701c2306d40"
+  integrity sha512-8mNEUG6diOrI6pMqOHrHPDBB1JsrpedeMK9AWGzVCQ7StRRribiT9BRvUmF8aUws9iBbVlgVekOT5Sgzc1MTKw==
+
+"@types/node-fetch@2.3.2":
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.3.2.tgz#e01893b176c6fa1367743726380d65bce5d6576b"
+  integrity sha512-yW0EOebSsQme9yKu09XbdDfle4/SmWZMK4dfteWcSLCYNQQcF+YOv0kIrvm+9pO11/ghA4E6A+RNQqvYj4Nr3A==
+  dependencies:
+    "@types/node" "*"
+
+"@types/node@*", "@types/node@>=8.1.0", "@types/node@^17.0.8":
+  version "17.0.10"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab"
+  integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==
+
+"@types/node@10.12.18":
+  version "10.12.18"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
+  integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
+
+"@types/parse-json@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prop-types@*":
+  version "15.7.4"
+  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
+  integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/react@^17.0.38":
+  version "17.0.38"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.38.tgz#f24249fefd89357d5fa71f739a686b8d7c7202bd"
+  integrity sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/scheduler" "*"
+    csstype "^3.0.2"
+
+"@types/scheduler@*":
+  version "0.16.2"
+  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+  integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/uuid@8.3.1":
+  version "8.3.1"
+  resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f"
+  integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==
+
+"@types/websocket@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8"
+  integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==
+  dependencies:
+    "@types/node" "*"
+
+"@types/ws@^8.0.0":
+  version "8.2.2"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21"
+  integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==
+  dependencies:
+    "@types/node" "*"
+
+"@typescript-eslint/parser@^5.0.0":
+  version "5.10.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.1.tgz#4ce9633cc33fc70bc13786cb793c1a76fe5ad6bd"
+  integrity sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==
+  dependencies:
+    "@typescript-eslint/scope-manager" "5.10.1"
+    "@typescript-eslint/types" "5.10.1"
+    "@typescript-eslint/typescript-estree" "5.10.1"
+    debug "^4.3.2"
+
+"@typescript-eslint/scope-manager@5.10.1":
+  version "5.10.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809"
+  integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==
+  dependencies:
+    "@typescript-eslint/types" "5.10.1"
+    "@typescript-eslint/visitor-keys" "5.10.1"
+
+"@typescript-eslint/types@5.10.1":
+  version "5.10.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea"
+  integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==
+
+"@typescript-eslint/typescript-estree@5.10.1":
+  version "5.10.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15"
+  integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==
+  dependencies:
+    "@typescript-eslint/types" "5.10.1"
+    "@typescript-eslint/visitor-keys" "5.10.1"
+    debug "^4.3.2"
+    globby "^11.0.4"
+    is-glob "^4.0.3"
+    semver "^7.3.5"
+    tsutils "^3.21.0"
+
+"@typescript-eslint/visitor-keys@5.10.1":
+  version "5.10.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b"
+  integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==
+  dependencies:
+    "@typescript-eslint/types" "5.10.1"
+    eslint-visitor-keys "^3.0.0"
+
+"@vercel/fetch-cached-dns@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@vercel/fetch-cached-dns/-/fetch-cached-dns-2.0.2.tgz#975c395cf53f188fa618fad57f27af6b5ffc5bab"
+  integrity sha512-gDqKEV8CeY2YmCdZpP1rn3tFK1L07Vw2+HYkCK8zpRHOVGr/sP8yhBsW+C/yqGVj0i9z/rIvqIHe5emvRvxwgw==
+  dependencies:
+    "@types/node-fetch" "2.3.2"
+    "@zeit/dns-cached-resolve" "2.1.2"
+
+"@vercel/fetch-retry@^5.0.2":
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/@vercel/fetch-retry/-/fetch-retry-5.0.3.tgz#cce5d23f6e64f6f525c24e2ac7c78f65d6c5b1f4"
+  integrity sha512-DIIoBY92r+sQ6iHSf5WjKiYvkdsDIMPWKYATlE0KcUAj2RV6SZK9UWpUzBRKsofXqedOqpVjrI0IE6AWL7JRtg==
+  dependencies:
+    async-retry "^1.3.1"
+    debug "^3.1.0"
+
+"@vercel/fetch@^6.1.1":
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/@vercel/fetch/-/fetch-6.1.1.tgz#6564bfe9050f871842cf4834bb0117eaafd3915e"
+  integrity sha512-nddCkgpA0aVIqOlzh+qVlzDNcQq0cSnqefM+x6SciGI4GCvVZeaZ7WEowgX8I/HwBAq8Uj5Bdnd+r0+sYsJsig==
+  dependencies:
+    "@types/async-retry" "1.2.1"
+    "@vercel/fetch-cached-dns" "^2.0.2"
+    "@vercel/fetch-retry" "^5.0.2"
+    agentkeepalive "3.4.1"
+    debug "3.1.0"
+
+"@zeit/dns-cached-resolve@2.1.2":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/@zeit/dns-cached-resolve/-/dns-cached-resolve-2.1.2.tgz#2c2e33d682d67f94341c9a06ac0e2a8f14ff035f"
+  integrity sha512-A/5gbBskKPETTBqHwvlaW1Ri2orO62yqoFoXdxna1SQ7A/lXjpWgpJ1wdY3IQEcz5LydpS4sJ8SzI2gFyyLEhg==
+  dependencies:
+    "@types/async-retry" "1.2.1"
+    "@types/lru-cache" "4.1.1"
+    "@types/node" "10.12.18"
+    async-retry "1.2.3"
+    lru-cache "5.1.1"
+
+abort-controller@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+  integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+  dependencies:
+    event-target-shim "^5.0.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==
+
+acorn-node@^1.6.1:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+  integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+  dependencies:
+    acorn "^7.0.0"
+    acorn-walk "^7.0.0"
+    xtend "^4.0.2"
+
+acorn-walk@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn-walk@^8.0.0:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+  integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^7.0.0:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.0.4, acorn@^8.7.0:
+  version "8.7.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
+  integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+
+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"
+
+agentkeepalive@3.4.1:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.4.1.tgz#aa95aebc3a749bca5ed53e3880a09f5235b48f0c"
+  integrity sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==
+  dependencies:
+    humanize-ms "^1.2.1"
+
+aggregate-error@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+ajv@^6.10.0, ajv@^6.12.4:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ansi-escapes@^3.0.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+  dependencies:
+    type-fest "^0.21.3"
+
+ansi-regex@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-regex@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+  integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
+ansi-styles@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+ansi-styles@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3"
+  integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==
+
+any-observable@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
+  integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
+
+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==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+arg@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+  integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+arg@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
+  integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
+
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+aria-query@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
+  integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
+  dependencies:
+    "@babel/runtime" "^7.10.2"
+    "@babel/runtime-corejs3" "^7.10.2"
+
+array-includes-with-glob@^3.0.6:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/array-includes-with-glob/-/array-includes-with-glob-3.1.0.tgz#f04e8172f231ab8261e52bfe9756b65c08b87ab9"
+  integrity sha512-/PZEKASyXWmUTkNhuxnmqybv1CmIdY5rp3axLy3Dv6SYfaBb+EgS7Nl991mquHT1N2u0YAnE3IOafVNRM6Y9dw==
+  dependencies:
+    "@babel/runtime" "^7.14.0"
+    matcher "^4.0.0"
+
+array-includes@^3.1.3, array-includes@^3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+  integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+    get-intrinsic "^1.1.1"
+    is-string "^1.0.7"
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+array.prototype.flat@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
+  integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.0"
+
+array.prototype.flatmap@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"
+  integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.0"
+
+asap@~2.0.3:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
+ast-types-flow@^0.0.7:
+  version "0.0.7"
+  resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+  integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
+
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+async-retry@1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0"
+  integrity sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==
+  dependencies:
+    retry "0.12.0"
+
+async-retry@^1.3.1:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280"
+  integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==
+  dependencies:
+    retry "0.13.1"
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+auto-bind@~4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb"
+  integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==
+
+autoprefixer@^10.4.2:
+  version "10.4.2"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b"
+  integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
+  dependencies:
+    browserslist "^4.19.1"
+    caniuse-lite "^1.0.30001297"
+    fraction.js "^4.1.2"
+    normalize-range "^0.1.2"
+    picocolors "^1.0.0"
+    postcss-value-parser "^4.2.0"
+
+axe-core@^4.3.5:
+  version "4.3.5"
+  resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
+  integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
+
+axios@^0.21.1:
+  version "0.21.4"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+  dependencies:
+    follow-redirects "^1.14.0"
+
+axobject-query@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
+  integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
+
+babel-plugin-dynamic-import-node@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+  dependencies:
+    object.assign "^4.1.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-fbjs@^3.4.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c"
+  integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==
+  dependencies:
+    "@babel/plugin-proposal-class-properties" "^7.0.0"
+    "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+    "@babel/plugin-syntax-class-properties" "^7.0.0"
+    "@babel/plugin-syntax-flow" "^7.0.0"
+    "@babel/plugin-syntax-jsx" "^7.0.0"
+    "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+    "@babel/plugin-transform-arrow-functions" "^7.0.0"
+    "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
+    "@babel/plugin-transform-block-scoping" "^7.0.0"
+    "@babel/plugin-transform-classes" "^7.0.0"
+    "@babel/plugin-transform-computed-properties" "^7.0.0"
+    "@babel/plugin-transform-destructuring" "^7.0.0"
+    "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+    "@babel/plugin-transform-for-of" "^7.0.0"
+    "@babel/plugin-transform-function-name" "^7.0.0"
+    "@babel/plugin-transform-literals" "^7.0.0"
+    "@babel/plugin-transform-member-expression-literals" "^7.0.0"
+    "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+    "@babel/plugin-transform-object-super" "^7.0.0"
+    "@babel/plugin-transform-parameters" "^7.0.0"
+    "@babel/plugin-transform-property-literals" "^7.0.0"
+    "@babel/plugin-transform-react-display-name" "^7.0.0"
+    "@babel/plugin-transform-react-jsx" "^7.0.0"
+    "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+    "@babel/plugin-transform-spread" "^7.0.0"
+    "@babel/plugin-transform-template-literals" "^7.0.0"
+    babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
+
+backo2@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+  integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+big.js@^5.2.2:
+  version "5.2.2"
+  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+  integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bl@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+  dependencies:
+    buffer "^5.5.0"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
+
+body-scroll-lock@^4.0.0-beta.0:
+  version "4.0.0-beta.0"
+  resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e"
+  integrity sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+browserslist@^4.17.5, browserslist@^4.19.1:
+  version "4.19.1"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
+  integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+  dependencies:
+    caniuse-lite "^1.0.30001286"
+    electron-to-chromium "^1.4.17"
+    escalade "^3.1.1"
+    node-releases "^2.0.1"
+    picocolors "^1.0.0"
+
+bser@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+  integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+  dependencies:
+    node-int64 "^0.4.0"
+
+buffer-equal-constant-time@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+  integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
+
+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@^5.5.0, buffer@^5.7.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+  dependencies:
+    base64-js "^1.3.1"
+    ieee754 "^1.1.13"
+
+cacheable-request@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
+  integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
+  dependencies:
+    clone-response "^1.0.2"
+    get-stream "^5.1.0"
+    http-cache-semantics "^4.0.0"
+    keyv "^3.0.0"
+    lowercase-keys "^2.0.0"
+    normalize-url "^4.1.0"
+    responselike "^1.0.2"
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camel-case@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+  integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+  dependencies:
+    pascal-case "^3.1.2"
+    tslib "^2.0.3"
+
+camelcase-css@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+  integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+camelcase@^5.0.0:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001299:
+  version "1.0.30001301"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450"
+  integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==
+
+capital-case@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669"
+  integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+    upper-case-first "^2.0.2"
+
+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=
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.4.1:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.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==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+change-case-all@1.0.14:
+  version "1.0.14"
+  resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1"
+  integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==
+  dependencies:
+    change-case "^4.1.2"
+    is-lower-case "^2.0.2"
+    is-upper-case "^2.0.2"
+    lower-case "^2.0.2"
+    lower-case-first "^2.0.2"
+    sponge-case "^1.0.1"
+    swap-case "^2.0.2"
+    title-case "^3.0.3"
+    upper-case "^2.0.2"
+    upper-case-first "^2.0.2"
+
+change-case@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12"
+  integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==
+  dependencies:
+    camel-case "^4.1.2"
+    capital-case "^1.0.4"
+    constant-case "^3.0.4"
+    dot-case "^3.0.4"
+    header-case "^2.0.4"
+    no-case "^3.0.4"
+    param-case "^3.0.4"
+    pascal-case "^3.1.2"
+    path-case "^3.0.4"
+    sentence-case "^3.0.4"
+    snake-case "^3.0.4"
+    tslib "^2.0.3"
+
+chardet@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+  integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+chokidar@^3.5.2:
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+  integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+  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"
+
+classnames@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
+  integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
+
+clean-stack@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cli-cursor@^2.0.0, cli-cursor@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+  integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+  dependencies:
+    restore-cursor "^2.0.0"
+
+cli-cursor@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+  integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+  dependencies:
+    restore-cursor "^3.1.0"
+
+cli-spinners@^2.5.0:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
+  integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
+
+cli-truncate@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+  integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
+  dependencies:
+    slice-ansi "0.0.4"
+    string-width "^1.0.1"
+
+cli-truncate@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+  integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+  dependencies:
+    slice-ansi "^3.0.0"
+    string-width "^4.2.0"
+
+cli-truncate@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
+  integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
+  dependencies:
+    slice-ansi "^5.0.0"
+    string-width "^5.0.0"
+
+cli-width@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+  integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+
+cliui@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+  integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+  dependencies:
+    string-width "^4.2.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-response@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+  integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
+  dependencies:
+    mimic-response "^1.0.0"
+
+clone@^1.0.2:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+  integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+
+code-point-at@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+color-convert@^1.9.0:
+  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==
+  dependencies:
+    color-name "1.1.3"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.1.4, color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+colorette@^1.2.2:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
+
+colorette@^2.0.16:
+  version "2.0.16"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+  integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
+commander@^6.2.0:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
+commander@^8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+  integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
+common-tags@1.8.2, common-tags@^1.8.0:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
+  integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+constant-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1"
+  integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+    upper-case "^2.0.2"
+
+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"
+
+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"
+
+cookie@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
+  integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
+
+core-js-pure@^3.20.2:
+  version "3.20.3"
+  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.3.tgz#6cc4f36da06c61d95254efc54024fe4797fd5d02"
+  integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==
+
+cosmiconfig-toml-loader@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b"
+  integrity sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==
+  dependencies:
+    "@iarna/toml" "^2.2.5"
+
+cosmiconfig@7.0.1, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
+  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"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
+
+create-require@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+  integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cross-fetch@^3.0.4, cross-fetch@^3.0.6:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
+  integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
+  dependencies:
+    node-fetch "2.6.7"
+
+cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+cross-undici-fetch@^0.1.19:
+  version "0.1.19"
+  resolved "https://registry.yarnpkg.com/cross-undici-fetch/-/cross-undici-fetch-0.1.19.tgz#1bef41652c33ec812b51cd3b4e1295114cd62d4c"
+  integrity sha512-bNBuesVn09Iy15mAM/hpt97fLWSexblVYpUYa5FjbtLHA7om9w3g1uRGGwrEnmVxy3wouNvZyJwQzAPHXgOrxQ==
+  dependencies:
+    abort-controller "^3.0.0"
+    form-data-encoder "^1.7.1"
+    formdata-node "^4.3.1"
+    node-fetch "^2.6.7"
+    undici "^4.9.3"
+    web-streams-polyfill "^3.2.0"
+
+css-blank-pseudo@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz#f8660f6a48b17888a9277e53f25cc5abec1f0169"
+  integrity sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+css-has-pseudo@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz#4824a34cb92dae7e09ea1d3fd19691b653412098"
+  integrity sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+css-prefers-color-scheme@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz#d5c03a980caab92d8beeee176a8795d331e0c727"
+  integrity sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==
+
+cssdb@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-5.1.0.tgz#ec728d5f5c0811debd0820cbebda505d43003400"
+  integrity sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==
+
+cssesc@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+csstype@^3.0.2:
+  version "3.0.10"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
+  integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
+
+damerau-levenshtein@^1.0.7:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
+  integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
+
+dataloader@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f"
+  integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==
+
+date-fns@^1.27.2:
+  version "1.30.1"
+  resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
+  integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+
+debounce@^1.2.0, debounce@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
+  integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
+
+debug@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+  dependencies:
+    ms "2.0.0"
+
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+  dependencies:
+    ms "2.1.2"
+
+debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
+debug@^3.1.0, 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"
+
+decamelize@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decompress-response@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+  integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
+  dependencies:
+    mimic-response "^1.0.0"
+
+deep-extend@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@4.2.2, deepmerge@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+  integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+defaults@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+  integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
+  dependencies:
+    clone "^1.0.2"
+
+defer-to-connect@^1.0.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
+  integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
+
+define-properties@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+  dependencies:
+    object-keys "^1.0.12"
+
+defined@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+dependency-graph@^0.11.0:
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27"
+  integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==
+
+detect-indent@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
+  integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
+
+detective@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
+  integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+  dependencies:
+    acorn-node "^1.6.1"
+    defined "^1.0.0"
+    minimist "^1.1.1"
+
+didyoumean@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+  integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
+diff@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
+dlv@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+  integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
+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"
+
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
+dotenv@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
+  integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+
+dotenv@^12.0.3:
+  version "12.0.4"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-12.0.4.tgz#87e302cfddeef475fcaf9a617f7b44f80ac555bc"
+  integrity sha512-oWdqbSywffzH1l4WXKPHWA0TWYpqp7IyLfqjipT4upoIFS0HPMqtNotykQpD4iIg0BqtNmdgPCh2WMvMt7yTiw==
+
+dset@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.1.tgz#07de5af7a8d03eab337ad1a8ba77fe17bba61a8c"
+  integrity sha512-hYf+jZNNqJBD2GiMYb+5mqOIX4R4RRHXU3qWMWYN+rqcR2/YpRL2bUHr8C8fU+5DNvqYjJ8YvMGSLuVPWU1cNg==
+
+duplexer3@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+  integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+
+duplexer@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+  integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+eastasianwidth@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+  integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
+ecdsa-sig-formatter@1.0.11:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+  integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
+  dependencies:
+    safe-buffer "^5.0.1"
+
+electron-to-chromium@^1.4.17:
+  version "1.4.52"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz#ce44c6d6cc449e7688a4356b8c261cfeafa26833"
+  integrity sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q==
+
+elegant-spinner@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+  integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
+
+email-validator@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed"
+  integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==
+
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+  version "9.2.2"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+  integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+emojis-list@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+  integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+
+end-of-stream@^1.1.0:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+  dependencies:
+    once "^1.4.0"
+
+error-ex@^1.3.1:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+  dependencies:
+    is-arrayish "^0.2.1"
+
+es-abstract@^1.19.0, es-abstract@^1.19.1:
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
+  integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
+  dependencies:
+    call-bind "^1.0.2"
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    get-intrinsic "^1.1.1"
+    get-symbol-description "^1.0.0"
+    has "^1.0.3"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    is-callable "^1.2.4"
+    is-negative-zero "^2.0.1"
+    is-regex "^1.1.4"
+    is-shared-array-buffer "^1.0.1"
+    is-string "^1.0.7"
+    is-weakref "^1.0.1"
+    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.1"
+
+es-to-primitive@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+  dependencies:
+    is-callable "^1.1.4"
+    is-date-object "^1.0.1"
+    is-symbol "^1.0.2"
+
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+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==
+
+eslint-config-next@^12.0.8:
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.0.8.tgz#7a15114230db97d1bc727fc5db2f469416b62e0f"
+  integrity sha512-H40jvqy/yeku3r9D556ALLaM3ZmS55hj9/MTK59fWbzsqTaYlybSkUmIBG0ZFEnBazr0NnBGwrYA5cnsFYR7RQ==
+  dependencies:
+    "@next/eslint-plugin-next" "12.0.8"
+    "@rushstack/eslint-patch" "^1.0.8"
+    "@typescript-eslint/parser" "^5.0.0"
+    eslint-import-resolver-node "^0.3.4"
+    eslint-import-resolver-typescript "^2.4.0"
+    eslint-plugin-import "^2.25.2"
+    eslint-plugin-jsx-a11y "^6.5.1"
+    eslint-plugin-react "^7.27.0"
+    eslint-plugin-react-hooks "^4.3.0"
+
+eslint-config-prettier@^8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a"
+  integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==
+
+eslint-import-resolver-node@^0.3.4, 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 "^3.2.7"
+    resolve "^1.20.0"
+
+eslint-import-resolver-typescript@^2.4.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz#07661966b272d14ba97f597b51e1a588f9722f0a"
+  integrity sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==
+  dependencies:
+    debug "^4.3.1"
+    glob "^7.1.7"
+    is-glob "^4.0.1"
+    resolve "^1.20.0"
+    tsconfig-paths "^3.9.0"
+
+eslint-module-utils@^2.7.2:
+  version "2.7.2"
+  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129"
+  integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==
+  dependencies:
+    debug "^3.2.7"
+    find-up "^2.1.0"
+
+eslint-plugin-import@^2.25.2:
+  version "2.25.4"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1"
+  integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==
+  dependencies:
+    array-includes "^3.1.4"
+    array.prototype.flat "^1.2.5"
+    debug "^2.6.9"
+    doctrine "^2.1.0"
+    eslint-import-resolver-node "^0.3.6"
+    eslint-module-utils "^2.7.2"
+    has "^1.0.3"
+    is-core-module "^2.8.0"
+    is-glob "^4.0.3"
+    minimatch "^3.0.4"
+    object.values "^1.1.5"
+    resolve "^1.20.0"
+    tsconfig-paths "^3.12.0"
+
+eslint-plugin-jsx-a11y@^6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8"
+  integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==
+  dependencies:
+    "@babel/runtime" "^7.16.3"
+    aria-query "^4.2.2"
+    array-includes "^3.1.4"
+    ast-types-flow "^0.0.7"
+    axe-core "^4.3.5"
+    axobject-query "^2.2.0"
+    damerau-levenshtein "^1.0.7"
+    emoji-regex "^9.2.2"
+    has "^1.0.3"
+    jsx-ast-utils "^3.2.1"
+    language-tags "^1.0.5"
+    minimatch "^3.0.4"
+
+eslint-plugin-react-hooks@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172"
+  integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==
+
+eslint-plugin-react@^7.27.0:
+  version "7.28.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf"
+  integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==
+  dependencies:
+    array-includes "^3.1.4"
+    array.prototype.flatmap "^1.2.5"
+    doctrine "^2.1.0"
+    estraverse "^5.3.0"
+    jsx-ast-utils "^2.4.1 || ^3.0.0"
+    minimatch "^3.0.4"
+    object.entries "^1.1.5"
+    object.fromentries "^2.0.5"
+    object.hasown "^1.1.0"
+    object.values "^1.1.5"
+    prop-types "^15.7.2"
+    resolve "^2.0.0-next.3"
+    semver "^6.3.0"
+    string.prototype.matchall "^4.0.6"
+
+eslint-scope@^7.1.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153"
+  integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^5.2.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@^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==
+
+eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1"
+  integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==
+
+eslint@^8.6.0:
+  version "8.7.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c"
+  integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==
+  dependencies:
+    "@eslint/eslintrc" "^1.0.5"
+    "@humanwhocodes/config-array" "^0.9.2"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.3.2"
+    doctrine "^3.0.0"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^7.1.0"
+    eslint-utils "^3.0.0"
+    eslint-visitor-keys "^3.2.0"
+    espree "^9.3.0"
+    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 "^6.0.1"
+    globals "^13.6.0"
+    ignore "^5.2.0"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    js-yaml "^4.1.0"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.0.4"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    regexpp "^3.2.0"
+    strip-ansi "^6.0.1"
+    strip-json-comments "^3.1.0"
+    text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
+
+espree@^9.2.0, espree@^9.3.0:
+  version "9.3.0"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8"
+  integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==
+  dependencies:
+    acorn "^8.7.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^3.1.0"
+
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+event-target-shim@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+  integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
+eventemitter3@^3.1.0:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
+  integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
+
+execa@^5.1.1:
+  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"
+    human-signals "^2.1.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
+    strip-final-newline "^2.0.0"
+
+external-editor@^3.0.3:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+  integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+  dependencies:
+    chardet "^0.7.0"
+    iconv-lite "^0.4.24"
+    tmp "^0.0.33"
+
+extract-files@^11.0.0:
+  version "11.0.0"
+  resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a"
+  integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==
+
+extract-files@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a"
+  integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==
+
+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==
+
+fast-glob@^3.2.11, fast-glob@^3.2.9:
+  version "3.2.11"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
+  integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fastq@^1.6.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+  dependencies:
+    reusify "^1.0.4"
+
+fb-watchman@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+  integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
+  dependencies:
+    bser "2.1.1"
+
+fbjs-css-vars@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
+  integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
+
+fbjs@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.2.tgz#dfae08a85c66a58372993ce2caf30863f569ff94"
+  integrity sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==
+  dependencies:
+    cross-fetch "^3.0.4"
+    fbjs-css-vars "^1.0.0"
+    loose-envify "^1.0.0"
+    object-assign "^4.1.0"
+    promise "^7.1.1"
+    setimmediate "^1.0.5"
+    ua-parser-js "^0.7.30"
+
+figures@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+  integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+  dependencies:
+    escape-string-regexp "^1.0.5"
+    object-assign "^4.1.0"
+
+figures@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+  integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
+  dependencies:
+    escape-string-regexp "^1.0.5"
+
+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==
+  dependencies:
+    escape-string-regexp "^1.0.5"
+
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+find-up@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+  dependencies:
+    locate-path "^2.0.0"
+
+find-up@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flatted@^3.1.0:
+  version "3.2.4"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
+  integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
+
+follow-redirects@^1.14.0:
+  version "1.14.7"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
+  integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
+
+form-data-encoder@^1.7.1:
+  version "1.7.1"
+  resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96"
+  integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==
+
+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"
+
+formdata-node@^4.3.1:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.3.2.tgz#0262e94931e36db7239c2b08bdb6aaf18ec47d21"
+  integrity sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==
+  dependencies:
+    node-domexception "1.0.0"
+    web-streams-polyfill "4.0.0-beta.1"
+
+fraction.js@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8"
+  integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+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==
+
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gensync@^1.0.0-beta.2:
+  version "1.0.0-beta.2"
+  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+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.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==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+get-symbol-description@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
+  integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.1"
+
+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==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-parent@^6.0.1, glob-parent@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+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==
+  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.1.1, glob@^7.1.3, glob@^7.1.6, glob@^7.1.7:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+  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"
+
+globals@^11.1.0:
+  version "11.12.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.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e"
+  integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==
+  dependencies:
+    type-fest "^0.20.2"
+
+globby@^11.0.3, globby@^11.0.4:
+  version "11.1.0"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+  integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.2.9"
+    ignore "^5.2.0"
+    merge2 "^1.4.1"
+    slash "^3.0.0"
+
+got@^9.6.0:
+  version "9.6.0"
+  resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
+  integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
+  dependencies:
+    "@sindresorhus/is" "^0.14.0"
+    "@szmarczak/http-timer" "^1.1.2"
+    cacheable-request "^6.0.0"
+    decompress-response "^3.3.0"
+    duplexer3 "^0.1.4"
+    get-stream "^4.1.0"
+    lowercase-keys "^1.0.1"
+    mimic-response "^1.0.1"
+    p-cancelable "^1.0.0"
+    to-readable-stream "^1.0.0"
+    url-parse-lax "^3.0.0"
+
+graphql-config@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.1.0.tgz#a3b28d3fb537952ebeb69c75e4430605a10695e3"
+  integrity sha512-Myqay6pmdcmX3KqoH+bMbeKZ1cTODpHS2CxF1ZzNnfTE+YUpGTcp01bOw6LpzamRb0T/WTYtGFbZeXGo9Hab2Q==
+  dependencies:
+    "@endemolshinegroup/cosmiconfig-typescript-loader" "3.0.2"
+    "@graphql-tools/graphql-file-loader" "^7.3.2"
+    "@graphql-tools/json-file-loader" "^7.3.2"
+    "@graphql-tools/load" "^7.4.1"
+    "@graphql-tools/merge" "^8.2.1"
+    "@graphql-tools/url-loader" "^7.4.2"
+    "@graphql-tools/utils" "^8.5.1"
+    cosmiconfig "7.0.1"
+    cosmiconfig-toml-loader "1.0.0"
+    minimatch "3.0.4"
+    string-env-interpolation "1.0.1"
+
+graphql-request@^3.3.0:
+  version "3.7.0"
+  resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-3.7.0.tgz#c7406e537084f8b9788541e3e6704340ca13055b"
+  integrity sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==
+  dependencies:
+    cross-fetch "^3.0.6"
+    extract-files "^9.0.0"
+    form-data "^3.0.0"
+
+graphql-sse@^1.0.1:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/graphql-sse/-/graphql-sse-1.0.6.tgz#4f98e0a06f2020542ed054399116108491263224"
+  integrity sha512-y2mVBN2KwNrzxX2KBncQ6kzc6JWvecxuBernrl0j65hsr6MAS3+Yn8PTFSOgRmtolxugepxveyZVQEuaNEbw3w==
+
+graphql-tag@^2.11.0:
+  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==
+  dependencies:
+    tslib "^2.1.0"
+
+graphql-ws@^5.4.1:
+  version "5.5.5"
+  resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9"
+  integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw==
+
+gzip-size@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+  integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
+  dependencies:
+    duplexer "^0.1.2"
+
+has-ansi@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+  dependencies:
+    ansi-regex "^2.0.0"
+
+has-bigints@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+  version "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@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+  dependencies:
+    function-bind "^1.1.1"
+
+header-case@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063"
+  integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==
+  dependencies:
+    capital-case "^1.0.4"
+    tslib "^2.0.3"
+
+http-cache-semantics@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+  integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+
+http-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+  integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+  dependencies:
+    "@tootallnate/once" "2"
+    agent-base "6"
+    debug "4"
+
+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@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+humanize-ms@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+  integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=
+  dependencies:
+    ms "^2.0.0"
+
+husky@^7.0.4:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
+  integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
+
+iconv-lite@^0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+ieee754@^1.1.13:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ignore@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
+  integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+
+immutability-helper@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-3.1.1.tgz#2b86b2286ed3b1241c9e23b7b21e0444f52f77b7"
+  integrity sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==
+
+immutable@~3.7.6:
+  version "3.7.6"
+  resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
+  integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks=
+
+import-cwd@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92"
+  integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==
+  dependencies:
+    import-from "^3.0.0"
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.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@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966"
+  integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==
+  dependencies:
+    resolve-from "^5.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^3.0.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+  integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+
+indent-string@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@~1.3.0:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+inquirer@^8.0.0:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.0.tgz#f44f008dd344bbfc4b30031f45d984e034a3ac3a"
+  integrity sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==
+  dependencies:
+    ansi-escapes "^4.2.1"
+    chalk "^4.1.1"
+    cli-cursor "^3.1.0"
+    cli-width "^3.0.0"
+    external-editor "^3.0.3"
+    figures "^3.0.0"
+    lodash "^4.17.21"
+    mute-stream "0.0.8"
+    ora "^5.4.1"
+    run-async "^2.4.0"
+    rxjs "^7.2.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+    through "^2.3.6"
+
+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.4:
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+  dependencies:
+    loose-envify "^1.0.0"
+
+is-absolute@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576"
+  integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==
+  dependencies:
+    is-relative "^1.0.0"
+    is-windows "^1.0.1"
+
+is-arrayish@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+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"
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    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==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
+is-callable@^1.1.4, is-callable@^1.2.4:
+  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-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1:
+  version "2.8.1"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
+  integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+  dependencies:
+    has "^1.0.3"
+
+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"
+
+is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-fullwidth-code-point@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
+  integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
+
+is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-interactive@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+  integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+
+is-lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a"
+  integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==
+  dependencies:
+    tslib "^2.0.3"
+
+is-negative-zero@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
+  integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+
+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"
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-observable@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
+  integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
+  dependencies:
+    symbol-observable "^1.1.0"
+
+is-promise@^2.1.0:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
+
+is-regex@^1.1.4:
+  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-tostringtag "^1.0.0"
+
+is-relative@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"
+  integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==
+  dependencies:
+    is-unc-path "^1.0.0"
+
+is-shared-array-buffer@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
+  integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
+
+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=
+
+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==
+
+is-string@^1.0.5, is-string@^1.0.7:
+  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.4"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+  dependencies:
+    has-symbols "^1.0.2"
+
+is-unc-path@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d"
+  integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==
+  dependencies:
+    unc-path-regex "^0.1.2"
+
+is-unicode-supported@^0.1.0:
+  version "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-upper-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649"
+  integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==
+  dependencies:
+    tslib "^2.0.3"
+
+is-weakref@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+  integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+  dependencies:
+    call-bind "^1.0.2"
+
+is-windows@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isomorphic-fetch@3.0.0, isomorphic-fetch@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
+  integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
+  dependencies:
+    node-fetch "^2.6.1"
+    whatwg-fetch "^3.4.1"
+
+isomorphic-ws@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc"
+  integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
+
+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==
+
+jest-worker@27.0.0-next.5:
+  version "27.0.0-next.5"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.0-next.5.tgz#5985ee29b12a4e191f4aae4bb73b97971d86ec28"
+  integrity sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^8.0.0"
+
+js-cookie@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
+  integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^4.0.0, js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+jsesc@^2.5.1:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json-buffer@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+  integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json-stable-stringify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+  integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
+  dependencies:
+    jsonify "~0.0.0"
+
+json-to-pretty-yaml@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b"
+  integrity sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=
+  dependencies:
+    remedial "^1.0.7"
+    remove-trailing-spaces "^1.0.6"
+
+json5@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+  integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+  dependencies:
+    minimist "^1.2.0"
+
+json5@^2.1.2:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
+jsonify@~0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+  integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+
+jsonwebtoken@^8.5.1:
+  version "8.5.1"
+  resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+  integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+  dependencies:
+    jws "^3.2.2"
+    lodash.includes "^4.3.0"
+    lodash.isboolean "^3.0.3"
+    lodash.isinteger "^4.0.4"
+    lodash.isnumber "^3.0.3"
+    lodash.isplainobject "^4.0.6"
+    lodash.isstring "^4.0.1"
+    lodash.once "^4.0.0"
+    ms "^2.1.1"
+    semver "^5.6.0"
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
+  integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
+  dependencies:
+    array-includes "^3.1.3"
+    object.assign "^4.1.2"
+
+jwa@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
+  integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
+  dependencies:
+    buffer-equal-constant-time "1.0.1"
+    ecdsa-sig-formatter "1.0.11"
+    safe-buffer "^5.0.1"
+
+jws@^3.2.2:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
+  integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
+  dependencies:
+    jwa "^1.4.1"
+    safe-buffer "^5.0.1"
+
+keen-slider@^6.6.3:
+  version "6.6.3"
+  resolved "https://registry.yarnpkg.com/keen-slider/-/keen-slider-6.6.3.tgz#b99eb61aa2c4f3cae5274a3424e2a010b26b7081"
+  integrity sha512-IDJh3CNeiCY/0N/ht+4/TUUD0plS064ijO8AcQ2sJXS07PhJOnv7kNUVsQdNh+t8Vmmy3sJ+sHNubSGdrEcMlQ==
+
+keyv@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
+  integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
+  dependencies:
+    json-buffer "3.0.0"
+
+language-subtag-registry@~0.3.2:
+  version "0.3.21"
+  resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
+  integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==
+
+language-tags@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
+  integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
+  dependencies:
+    language-subtag-registry "~0.3.2"
+
+latest-version@5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
+  integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
+  dependencies:
+    package-json "^6.3.0"
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+lilconfig@2.0.4, lilconfig@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
+  integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
+
+lines-and-columns@^1.1.6:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+  integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+lint-staged@^12.1.7:
+  version "12.3.1"
+  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.1.tgz#d475b0c0d0a12d91dde58a429ac6268dea485f06"
+  integrity sha512-Ocht/eT+4/siWOZDJpNUKcKX2UeWW/pDbohJ4gRsrafAjBi79JK8kiNVk2ciIVNKdw0Q4ABptl2nr6uQAlRImw==
+  dependencies:
+    cli-truncate "^3.1.0"
+    colorette "^2.0.16"
+    commander "^8.3.0"
+    debug "^4.3.3"
+    execa "^5.1.1"
+    lilconfig "2.0.4"
+    listr2 "^4.0.1"
+    micromatch "^4.0.4"
+    normalize-path "^3.0.0"
+    object-inspect "^1.12.0"
+    string-argv "^0.3.1"
+    supports-color "^9.2.1"
+    yaml "^1.10.2"
+
+listr-silent-renderer@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+  integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
+
+listr-update-renderer@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
+  integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
+  dependencies:
+    chalk "^1.1.3"
+    cli-truncate "^0.2.1"
+    elegant-spinner "^1.0.1"
+    figures "^1.7.0"
+    indent-string "^3.0.0"
+    log-symbols "^1.0.2"
+    log-update "^2.3.0"
+    strip-ansi "^3.0.1"
+
+listr-verbose-renderer@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
+  integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
+  dependencies:
+    chalk "^2.4.1"
+    cli-cursor "^2.1.0"
+    date-fns "^1.27.2"
+    figures "^2.0.0"
+
+listr2@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.1.tgz#e050c1fd390276e191f582603d6e3531cd6fd2b3"
+  integrity sha512-D65Nl+zyYHL2jQBGmxtH/pU8koPZo5C8iCNE8EoB04RwPgQG1wuaKwVbeZv9LJpiH4Nxs0FCp+nNcG8OqpniiA==
+  dependencies:
+    cli-truncate "^2.1.0"
+    colorette "^2.0.16"
+    log-update "^4.0.0"
+    p-map "^4.0.0"
+    rfdc "^1.3.0"
+    rxjs "^7.5.2"
+    through "^2.3.8"
+    wrap-ansi "^7.0.0"
+
+listr@^0.14.3:
+  version "0.14.3"
+  resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
+  integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+  dependencies:
+    "@samverschueren/stream-to-observable" "^0.3.0"
+    is-observable "^1.1.0"
+    is-promise "^2.1.0"
+    is-stream "^1.1.0"
+    listr-silent-renderer "^1.1.1"
+    listr-update-renderer "^0.5.0"
+    listr-verbose-renderer "^0.5.0"
+    p-map "^2.0.0"
+    rxjs "^6.3.3"
+
+loader-utils@1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
+  integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^2.0.0"
+    json5 "^1.0.1"
+
+locate-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+  dependencies:
+    p-locate "^2.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+  dependencies:
+    p-locate "^4.1.0"
+
+lodash.camelcase@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
+
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+lodash.debounce@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+  integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.get@^4:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
+lodash.includes@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+  integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
+lodash.isboolean@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+  integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
+lodash.isdate@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/lodash.isdate/-/lodash.isdate-4.0.1.tgz#35a543673b9d76110de4114b32cc577048a7f366"
+  integrity sha1-NaVDZzuddhEN5BFLMsxXcEin82Y=
+
+lodash.isinteger@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+  integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+lodash.isnumber@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+  integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+lodash.isplainobject@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+  integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.isstring@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+  integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.once@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+  integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
+lodash.random@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/lodash.random/-/lodash.random-3.2.0.tgz#96e24e763333199130d2c9e2fd57f91703cc262d"
+  integrity sha1-luJOdjMzGZEw0sni/Vf5FwPMJi0=
+
+lodash.snakecase@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
+  integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=
+
+lodash.throttle@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
+  integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
+
+lodash.uniq@^4.5.0:
+  version "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.17.20, lodash@^4.17.21, lodash@~4.17.0:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+  integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
+  dependencies:
+    chalk "^1.0.0"
+
+log-symbols@^4.0.0, log-symbols@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+  integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+  dependencies:
+    chalk "^4.1.0"
+    is-unicode-supported "^0.1.0"
+
+log-update@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
+  integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+  dependencies:
+    ansi-escapes "^3.0.0"
+    cli-cursor "^2.0.0"
+    wrap-ansi "^3.0.1"
+
+log-update@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+  integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
+  dependencies:
+    ansi-escapes "^4.3.0"
+    cli-cursor "^3.1.0"
+    slice-ansi "^4.0.0"
+    wrap-ansi "^6.2.0"
+
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+  dependencies:
+    js-tokens "^3.0.0 || ^4.0.0"
+
+lower-case-first@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b"
+  integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==
+  dependencies:
+    tslib "^2.0.3"
+
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+  dependencies:
+    tslib "^2.0.3"
+
+lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+  integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
+
+lowercase-keys@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+  integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
+lru-cache@5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+  integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+  dependencies:
+    yallist "^3.0.2"
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+make-error@^1, make-error@^1.1.1:
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+  integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+map-cache@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+matcher@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/matcher/-/matcher-4.0.0.tgz#a42a05a09aaed92e2d241eb91fddac689461ea51"
+  integrity sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==
+  dependencies:
+    escape-string-regexp "^4.0.0"
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+meros@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/meros/-/meros-1.1.4.tgz#c17994d3133db8b23807f62bec7f0cb276cfd948"
+  integrity sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==
+
+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==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
+mime-db@1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+
+mime-types@^2.1.12:
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+  dependencies:
+    mime-db "1.51.0"
+
+mimic-fn@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+mimic-fn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+mimic-response@^1.0.0, mimic-response@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+  integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
+minimatch@3.0.4, 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==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist@^1.1.1, 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==
+
+mkdirp@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+  integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+mrmime@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b"
+  integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==
+
+ms@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@^2.0.0, ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+mute-stream@0.0.8:
+  version "0.0.8"
+  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+  integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
+nanoid@^3.1.23, nanoid@^3.1.30:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
+  integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
+
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+next-seo@^4.28.1:
+  version "4.29.0"
+  resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-4.29.0.tgz#d281e95ba47914117cc99e9e468599f0547d9b9b"
+  integrity sha512-xmwzcz4uHaYJ8glbuhs6FSBQ7z3irmdPYdJJ5saWm72Uy3o+mPKGaPCXQetTCE6/xxVnpoDV4yFtFlEjUcljSg==
+
+next-themes@^0.0.15:
+  version "0.0.15"
+  resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.0.15.tgz#ab0cee69cd763b77d41211f631e108beab39bf7d"
+  integrity sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==
+
+next@^12.0.8:
+  version "12.0.8"
+  resolved "https://registry.yarnpkg.com/next/-/next-12.0.8.tgz#29138f7cdd045e4bbba466af45bf430e769634b4"
+  integrity sha512-g5c1Kuh1F8tSXJn2rVvzYBzqe9EXaR6+rY3/KrQ7y0D9FueRLfHI35wM0DRadDcPSc3+vncspfhYH3jnYE/KjA==
+  dependencies:
+    "@next/env" "12.0.8"
+    "@next/react-refresh-utils" "12.0.8"
+    caniuse-lite "^1.0.30001283"
+    jest-worker "27.0.0-next.5"
+    node-fetch "2.6.1"
+    postcss "8.2.15"
+    react-is "17.0.2"
+    react-refresh "0.8.3"
+    stream-browserify "3.0.0"
+    styled-jsx "5.0.0-beta.6"
+    use-subscription "1.5.1"
+  optionalDependencies:
+    "@next/swc-android-arm64" "12.0.8"
+    "@next/swc-darwin-arm64" "12.0.8"
+    "@next/swc-darwin-x64" "12.0.8"
+    "@next/swc-linux-arm-gnueabihf" "12.0.8"
+    "@next/swc-linux-arm64-gnu" "12.0.8"
+    "@next/swc-linux-arm64-musl" "12.0.8"
+    "@next/swc-linux-x64-gnu" "12.0.8"
+    "@next/swc-linux-x64-musl" "12.0.8"
+    "@next/swc-win32-arm64-msvc" "12.0.8"
+    "@next/swc-win32-ia32-msvc" "12.0.8"
+    "@next/swc-win32-x64-msvc" "12.0.8"
+
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+  dependencies:
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
+
+node-domexception@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
+  integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
+
+node-fetch@2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
+node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7:
+  version "2.6.7"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+  integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+  dependencies:
+    whatwg-url "^5.0.0"
+
+node-int64@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+  integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
+
+node-releases@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
+  integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
+
+normalize-path@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+  dependencies:
+    remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+  integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+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==
+
+npm-run-path@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+  dependencies:
+    path-key "^3.0.0"
+
+nullthrows@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
+  integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
+
+number-is-nan@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+object-assign@^4.1.0, object-assign@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-hash@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
+  integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+
+object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0:
+  version "1.12.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
+  integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
+
+object-keys-normalizer@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/object-keys-normalizer/-/object-keys-normalizer-1.0.1.tgz#db178dbba5e4c7b18b40837c8ef83365ee9348e7"
+  integrity sha1-2xeNu6Xkx7GLQIN8jvgzZe6TSOc=
+  dependencies:
+    lodash.camelcase "^4.3.0"
+    lodash.snakecase "^4.1.1"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-merge-advanced@12.0.3:
+  version "12.0.3"
+  resolved "https://registry.yarnpkg.com/object-merge-advanced/-/object-merge-advanced-12.0.3.tgz#e03c19aa33cf88da6b32187e4907b487668808d9"
+  integrity sha512-xQIf2Vup1rpKiHr2tQca5jyNYgT4O0kNxOfAp3ZNonm2hS+5yaJgI0Czdk/QMy52bcRwQKX3uc3H8XtAiiYfVA==
+  dependencies:
+    "@babel/runtime" "^7.12.13"
+    array-includes-with-glob "^3.0.6"
+    lodash.clonedeep "^4.5.0"
+    lodash.includes "^4.3.0"
+    lodash.isdate "^4.0.1"
+    lodash.isplainobject "^4.0.6"
+    lodash.uniq "^4.5.0"
+    util-nonempty "^3.0.6"
+
+object.assign@^4.1.0, object.assign@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
+
+object.entries@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
+  integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.fromentries@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
+  integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.hasown@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"
+  integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.values@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+  integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  dependencies:
+    wrappy "1"
+
+onetime@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+  integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+  dependencies:
+    mimic-fn "^1.0.0"
+
+onetime@^5.1.0, onetime@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+  dependencies:
+    mimic-fn "^2.1.0"
+
+opener@^1.5.2:
+  version "1.5.2"
+  resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
+  integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
+
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+  dependencies:
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
+
+ora@^5.4.1:
+  version "5.4.1"
+  resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+  integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
+  dependencies:
+    bl "^4.1.0"
+    chalk "^4.1.0"
+    cli-cursor "^3.1.0"
+    cli-spinners "^2.5.0"
+    is-interactive "^1.0.0"
+    is-unicode-supported "^0.1.0"
+    log-symbols "^4.1.0"
+    strip-ansi "^6.0.0"
+    wcwidth "^1.0.1"
+
+os-tmpdir@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+p-cancelable@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
+  integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
+
+p-limit@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-limit@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+  dependencies:
+    p-try "^1.0.0"
+
+p-limit@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+  dependencies:
+    p-try "^2.0.0"
+
+p-locate@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+  dependencies:
+    p-limit "^1.1.0"
+
+p-locate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+  dependencies:
+    p-limit "^2.2.0"
+
+p-map@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-map@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-try@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json@^6.3.0:
+  version "6.5.0"
+  resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
+  integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
+  dependencies:
+    got "^9.6.0"
+    registry-auth-token "^4.0.0"
+    registry-url "^5.0.0"
+    semver "^6.2.0"
+
+param-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+  integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+parse-filepath@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891"
+  integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=
+  dependencies:
+    is-absolute "^1.0.0"
+    map-cache "^0.2.0"
+    path-root "^0.1.1"
+
+parse-json@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    error-ex "^1.3.1"
+    json-parse-even-better-errors "^2.3.0"
+    lines-and-columns "^1.1.6"
+
+pascal-case@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
+path-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
+  integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
+path-exists@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^3.0.0, path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6, path-parse@^1.0.7:
+  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-root-regex@^0.1.0:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
+  integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=
+
+path-root@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
+  integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=
+  dependencies:
+    path-root-regex "^0.1.0"
+
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+postcss-attribute-case-insensitive@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz#39cbf6babf3ded1e4abf37d09d6eda21c644105c"
+  integrity sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==
+  dependencies:
+    postcss-selector-parser "^6.0.2"
+
+postcss-color-functional-notation@^4.2.1:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz#a25e9e1855e14d04319222a689f120b3240d39e0"
+  integrity sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-color-hex-alpha@^8.0.2:
+  version "8.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz#7a248b006dd47bd83063f662352d31fd982f74ec"
+  integrity sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-color-rebeccapurple@^7.0.2:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079"
+  integrity sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-custom-media@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1"
+  integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==
+
+postcss-custom-properties@^12.1.2:
+  version "12.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.3.tgz#8e37651c7188e72e6762eeae8db39755e84d3a64"
+  integrity sha512-rtu3otIeY532PnEuuBrIIe+N+pcdbX/7JMZfrcL09wc78YayrHw5E8UkDfvnlOhEUrI4ptCuzXQfj+Or6spbGA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-custom-selectors@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz#022839e41fbf71c47ae6e316cb0e6213012df5ef"
+  integrity sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==
+  dependencies:
+    postcss-selector-parser "^6.0.4"
+
+postcss-dir-pseudo-class@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz#febfe305e75267913a53bf5094c7679f5cfa9b55"
+  integrity sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+postcss-double-position-gradients@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz#2484b9785ef3ba81b0f03a279c52ec58fc5344c2"
+  integrity sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-env-function@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.4.tgz#4e85359ca4fcdde4ec4b73752a41de818dbe91cc"
+  integrity sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-flexbugs-fixes@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d"
+  integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==
+
+postcss-focus-visible@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz#14635b71a6b9140f488f11f26cbc9965a13f6843"
+  integrity sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+postcss-focus-within@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz#0b0bf425f14a646bbfd973b463e2d20d85a3a841"
+  integrity sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+postcss-font-variant@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66"
+  integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==
+
+postcss-gap-properties@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz#562fbf43a6a721565b3ca0e01008690991d2f726"
+  integrity sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==
+
+postcss-image-set-function@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz#ce91579ab2c1386d412ff5cd5e733c474b1f75ee"
+  integrity sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-initial@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42"
+  integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==
+
+postcss-js@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
+  integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
+  dependencies:
+    camelcase-css "^2.0.1"
+
+postcss-lab-function@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz#633745b324afbcd5881da85fe2cef58b17487536"
+  integrity sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-load-config@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.1.tgz#2f53a17f2f543d9e63864460af42efdac0d41f87"
+  integrity sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==
+  dependencies:
+    lilconfig "^2.0.4"
+    yaml "^1.10.2"
+
+postcss-logical@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.3.tgz#9934e0fb16af70adbd94217b24d2f315ceb5c2f0"
+  integrity sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==
+
+postcss-media-minmax@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5"
+  integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==
+
+postcss-nested@5.0.6:
+  version "5.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
+  integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
+  dependencies:
+    postcss-selector-parser "^6.0.6"
+
+postcss-nesting@^10.1.2:
+  version "10.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.2.tgz#2e5f811b3d75602ea18a95dd445bde5297145141"
+  integrity sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+postcss-nesting@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-8.0.1.tgz#4a8ab3c540a0f138fd3f5d2ee65e4a24d1888024"
+  integrity sha512-cHPNhW5VvRQjszFDxmy16mis9qFQqQLBNw6KVmueLqqE3M182ZAk9+QoxGqbGVryzLVhannw2B5Yhosqq522fA==
+
+postcss-overflow-shorthand@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz#b4e9c89728cd1e4918173dfb95936b75f78d4148"
+  integrity sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==
+
+postcss-page-break@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f"
+  integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==
+
+postcss-place@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.3.tgz#ca8040dfd937c7769a233a3bd6e66e139cf89e62"
+  integrity sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-preset-env@^7.2.3:
+  version "7.2.3"
+  resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz#01b9b6eea0ff16c27a3d514f10105d56363428a6"
+  integrity sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==
+  dependencies:
+    autoprefixer "^10.4.2"
+    browserslist "^4.19.1"
+    caniuse-lite "^1.0.30001299"
+    css-blank-pseudo "^3.0.2"
+    css-has-pseudo "^3.0.3"
+    css-prefers-color-scheme "^6.0.2"
+    cssdb "^5.0.0"
+    postcss-attribute-case-insensitive "^5.0.0"
+    postcss-color-functional-notation "^4.2.1"
+    postcss-color-hex-alpha "^8.0.2"
+    postcss-color-rebeccapurple "^7.0.2"
+    postcss-custom-media "^8.0.0"
+    postcss-custom-properties "^12.1.2"
+    postcss-custom-selectors "^6.0.0"
+    postcss-dir-pseudo-class "^6.0.3"
+    postcss-double-position-gradients "^3.0.4"
+    postcss-env-function "^4.0.4"
+    postcss-focus-visible "^6.0.3"
+    postcss-focus-within "^5.0.3"
+    postcss-font-variant "^5.0.0"
+    postcss-gap-properties "^3.0.2"
+    postcss-image-set-function "^4.0.4"
+    postcss-initial "^4.0.1"
+    postcss-lab-function "^4.0.3"
+    postcss-logical "^5.0.3"
+    postcss-media-minmax "^5.0.0"
+    postcss-nesting "^10.1.2"
+    postcss-overflow-shorthand "^3.0.2"
+    postcss-page-break "^3.0.4"
+    postcss-place "^7.0.3"
+    postcss-pseudo-class-any-link "^7.0.2"
+    postcss-replace-overflow-wrap "^4.0.0"
+    postcss-selector-not "^5.0.0"
+
+postcss-pseudo-class-any-link@^7.0.2:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz#6284c2f970715c78fe992d2fac1130e9991585c9"
+  integrity sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA==
+  dependencies:
+    postcss-selector-parser "^6.0.8"
+
+postcss-replace-overflow-wrap@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319"
+  integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==
+
+postcss-selector-not@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz#ac5fc506f7565dd872f82f5314c0f81a05630dc7"
+  integrity sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==
+  dependencies:
+    balanced-match "^1.0.0"
+
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.8:
+  version "6.0.9"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
+  integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
+  dependencies:
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
+
+postcss-value-parser@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@8.2.15:
+  version "8.2.15"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65"
+  integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==
+  dependencies:
+    colorette "^1.2.2"
+    nanoid "^3.1.23"
+    source-map "^0.6.1"
+
+postcss@^8.3.5:
+  version "8.4.5"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
+  integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
+  dependencies:
+    nanoid "^3.1.30"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.1"
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prepend-http@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+  integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+
+prettier@^2.5.1:
+  version "2.5.1"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
+  integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+
+promise@^7.1.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+  integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+  dependencies:
+    asap "~2.0.3"
+
+prop-types@^15.7.2:
+  version "15.8.1"
+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+  integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+  dependencies:
+    loose-envify "^1.4.0"
+    object-assign "^4.1.1"
+    react-is "^16.13.1"
+
+pump@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+punycode@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+qs@6.7.0:
+  version "6.7.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+
+qs@^6.6.0:
+  version "6.10.3"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
+  integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
+  dependencies:
+    side-channel "^1.0.4"
+
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+  integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+rc@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+  dependencies:
+    deep-extend "^0.6.0"
+    ini "~1.3.0"
+    minimist "^1.2.0"
+    strip-json-comments "~2.0.1"
+
+react-dom@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
+  integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+    scheduler "^0.20.2"
+
+react-fast-marquee@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/react-fast-marquee/-/react-fast-marquee-1.3.1.tgz#e026ecbf95e73f287c94af9233bed5886913883c"
+  integrity sha512-JUlQMU+IVVNKV+D4BRfRaNEaBj+VyHcI0uupBKyeFhkSY2GBkKw7oGvpNdCkPtKd8Q3H0M5eY7PyUj7AdmKCRA==
+
+react-is@17.0.2:
+  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==
+
+react-is@^16.13.1:
+  version "16.13.1"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-merge-refs@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
+  integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
+
+react-refresh@0.8.3:
+  version "0.8.3"
+  resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
+  integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
+
+react-use-measure@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba"
+  integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==
+  dependencies:
+    debounce "^1.2.1"
+
+react@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
+  integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+readable-stream@^3.4.0, readable-stream@^3.5.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==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+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"
+
+regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+  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==
+
+regexp.prototype.flags@^1.3.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
+  integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+regexpp@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+  integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+registry-auth-token@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
+  integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
+  dependencies:
+    rc "^1.2.8"
+
+registry-url@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
+  integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
+  dependencies:
+    rc "^1.2.8"
+
+relay-compiler@12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-12.0.0.tgz#9f292d483fb871976018704138423a96c8a45439"
+  integrity sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==
+  dependencies:
+    "@babel/core" "^7.14.0"
+    "@babel/generator" "^7.14.0"
+    "@babel/parser" "^7.14.0"
+    "@babel/runtime" "^7.0.0"
+    "@babel/traverse" "^7.14.0"
+    "@babel/types" "^7.0.0"
+    babel-preset-fbjs "^3.4.0"
+    chalk "^4.0.0"
+    fb-watchman "^2.0.0"
+    fbjs "^3.0.0"
+    glob "^7.1.1"
+    immutable "~3.7.6"
+    invariant "^2.2.4"
+    nullthrows "^1.1.1"
+    relay-runtime "12.0.0"
+    signedsource "^1.0.0"
+    yargs "^15.3.1"
+
+relay-runtime@12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237"
+  integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==
+  dependencies:
+    "@babel/runtime" "^7.0.0"
+    fbjs "^3.0.0"
+    invariant "^2.2.4"
+
+remedial@^1.0.7:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0"
+  integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==
+
+remove-trailing-separator@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+remove-trailing-spaces@^1.0.6:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7"
+  integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==
+
+replaceall@^0.1.6:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/replaceall/-/replaceall-0.1.6.tgz#81d81ac7aeb72d7f5c4942adf2697a3220688d8e"
+  integrity sha1-gdgax663LX9cSUKt8ml6MiBojY4=
+
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+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"
+  integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve@^1.20.0, resolve@^1.21.0:
+  version "1.22.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+  integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+  dependencies:
+    is-core-module "^2.8.1"
+    path-parse "^1.0.7"
+    supports-preserve-symlinks-flag "^1.0.0"
+
+resolve@^2.0.0-next.3:
+  version "2.0.0-next.3"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
+  integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
+responselike@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
+  integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
+  dependencies:
+    lowercase-keys "^1.0.0"
+
+restore-cursor@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+  integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+  dependencies:
+    onetime "^2.0.0"
+    signal-exit "^3.0.2"
+
+restore-cursor@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+  integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+  dependencies:
+    onetime "^5.1.0"
+    signal-exit "^3.0.2"
+
+retry@0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+  integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+
+retry@0.13.1:
+  version "0.13.1"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+  integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rfdc@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
+  integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
+
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+run-async@^2.4.0:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+  integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+rxjs@^6.3.3:
+  version "6.6.7"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+  dependencies:
+    tslib "^1.9.0"
+
+rxjs@^7.2.0, rxjs@^7.5.2:
+  version "7.5.2"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b"
+  integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==
+  dependencies:
+    tslib "^2.1.0"
+
+safe-buffer@^5.0.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==
+
+safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scheduler@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+  integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+scuid@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab"
+  integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==
+
+semver@^5.6.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+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.3.5:
+  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"
+
+sentence-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f"
+  integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+    upper-case-first "^2.0.2"
+
+set-blocking@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+setimmediate@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+  integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
+
+signal-exit@^3.0.2, signal-exit@^3.0.3:
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
+
+signedsource@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a"
+  integrity sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=
+
+sirv@^1.0.7:
+  version "1.0.19"
+  resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49"
+  integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==
+  dependencies:
+    "@polka/url" "^1.0.0-next.20"
+    mrmime "^1.0.0"
+    totalist "^1.0.0"
+
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slice-ansi@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+  integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+
+slice-ansi@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+  integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
+  integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
+  dependencies:
+    ansi-styles "^6.0.0"
+    is-fullwidth-code-point "^4.0.0"
+
+snake-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
+  integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
+source-map-js@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map-support@^0.5.17:
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map@0.7.3:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+source-map@^0.5.0:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+sponge-case@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c"
+  integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==
+  dependencies:
+    tslib "^2.0.3"
+
+stream-browserify@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
+  integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
+  dependencies:
+    inherits "~2.0.4"
+    readable-stream "^3.5.0"
+
+string-argv@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+  integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
+
+string-env-interpolation@1.0.1, string-env-interpolation@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152"
+  integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==
+
+string-hash@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
+  integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
+
+string-width@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
+string-width@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^4.0.0"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
+
+string-width@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3"
+  integrity sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==
+  dependencies:
+    eastasianwidth "^0.2.0"
+    emoji-regex "^9.2.2"
+    strip-ansi "^7.0.1"
+
+string.prototype.matchall@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
+  integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+    get-intrinsic "^1.1.1"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    regexp.prototype.flags "^1.3.1"
+    side-channel "^1.0.4"
+
+string.prototype.trimend@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string_decoder@^1.1.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+  dependencies:
+    ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+  dependencies:
+    ansi-regex "^3.0.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
+strip-ansi@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
+  integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
+  dependencies:
+    ansi-regex "^6.0.1"
+
+strip-bom@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+  integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-final-newline@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@^3.1.0, 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"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+stripe@^8.197.0:
+  version "8.199.0"
+  resolved "https://registry.yarnpkg.com/stripe/-/stripe-8.199.0.tgz#dcd109f16ff0c33da638a0d154c966d0f20c73d1"
+  integrity sha512-Bc5Zfp6eOOCdde9x5NPrAczeGSKuNwemzjsfGJXWtpbUfQXgJujzTGgkhx2YuzamqakDYJkTgf9w7Ry2uY8QNA==
+  dependencies:
+    "@types/node" ">=8.1.0"
+    qs "^6.6.0"
+
+styled-jsx@5.0.0-beta.6:
+  version "5.0.0-beta.6"
+  resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0-beta.6.tgz#666552f8831a06f80c9084a47afc4b32b0c9f461"
+  integrity sha512-b1cM7Xyp2r1lsNpvoZ6wmTI8qxD0557vH2feHakNU8LMkzfJDgTQMul6O7sSYY0GxQ73pKEN69hCDp71w6Q0nA==
+  dependencies:
+    "@babel/plugin-syntax-jsx" "7.14.5"
+    "@babel/types" "7.15.0"
+    convert-source-map "1.7.0"
+    loader-utils "1.2.3"
+    source-map "0.7.3"
+    string-hash "1.1.3"
+    stylis "3.5.4"
+    stylis-rule-sheet "0.0.10"
+
+stylis-rule-sheet@0.0.10:
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
+  integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
+
+stylis@3.5.4:
+  version "3.5.4"
+  resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
+  integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
+subscriptions-transport-ws@^0.11.0:
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz#baf88f050cba51d52afe781de5e81b3c31f89883"
+  integrity sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==
+  dependencies:
+    backo2 "^1.0.2"
+    eventemitter3 "^3.1.0"
+    iterall "^1.2.1"
+    symbol-observable "^1.0.4"
+    ws "^5.2.0 || ^6.0.0 || ^7.0.0"
+
+supports-color@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+supports-color@^5.3.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  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-color@^9.2.1:
+  version "9.2.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891"
+  integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==
+
+supports-preserve-symlinks-flag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+  integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+swap-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9"
+  integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==
+  dependencies:
+    tslib "^2.0.3"
+
+swell-js@^4.0.0-next.0:
+  version "4.0.0-next.0"
+  resolved "https://registry.yarnpkg.com/swell-js/-/swell-js-4.0.0-next.0.tgz#870599372e3c9eafefeafc2c63863c4032d8be6b"
+  integrity sha512-OQ1FLft3ruKpQw5P0TiCzs/X2Ma95+Qz+I2Xzs4KC6v+zVaFVUGNs80dQdtjfInisWoFC7iFZF2AITgellVGAg==
+  dependencies:
+    "@babel/runtime" "7.4.5"
+    deepmerge "4.2.2"
+    isomorphic-fetch "3.0.0"
+    lodash "4.17.21"
+    object-keys-normalizer "1.0.1"
+    object-merge-advanced "12.0.3"
+    qs "6.7.0"
+
+swr@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/swr/-/swr-1.2.0.tgz#8649f6e9131ce94bbcf7ffd65c21334da3d1ec20"
+  integrity sha512-C3IXeKOREn0jQ1ewXRENE7ED7jjGbFTakwB64eLACkCqkF/A0N2ckvpCTftcaSYi5yV36PzoehgVCOVRmtECcA==
+
+symbol-observable@^1.0.4, symbol-observable@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+  integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+
+sync-fetch@0.3.1, sync-fetch@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/sync-fetch/-/sync-fetch-0.3.1.tgz#62aa82c4b4d43afd6906bfd7b5f92056458509f0"
+  integrity sha512-xj5qiCDap/03kpci5a+qc5wSJjc8ZSixgG2EUmH1B8Ea2sfWclQA7eH40hiHPCtkCn6MCk4Wb+dqcXdCy2PP3g==
+  dependencies:
+    buffer "^5.7.0"
+    node-fetch "^2.6.1"
+
+tabbable@^5.2.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.2.1.tgz#e3fda7367ddbb172dcda9f871c0fdb36d1c4cd9c"
+  integrity sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==
+
+tailwindcss@^3.0.13:
+  version "3.0.16"
+  resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.16.tgz#eb6e7a0ecec56e43b9dad439b8cb3a5da1e0c1a3"
+  integrity sha512-1L8E5Wr+o1c4kxxObNz2owJe94a7BLEMV+2Lz6wzprJdcs3ENSRR9t4OZf2OqtRNS/q/zFPuOKoLtQoy3Lrhhw==
+  dependencies:
+    arg "^5.0.1"
+    chalk "^4.1.2"
+    chokidar "^3.5.2"
+    color-name "^1.1.4"
+    cosmiconfig "^7.0.1"
+    detective "^5.2.0"
+    didyoumean "^1.2.2"
+    dlv "^1.1.3"
+    fast-glob "^3.2.11"
+    glob-parent "^6.0.2"
+    is-glob "^4.0.3"
+    normalize-path "^3.0.0"
+    object-hash "^2.2.0"
+    postcss-js "^4.0.0"
+    postcss-load-config "^3.1.0"
+    postcss-nested "5.0.6"
+    postcss-selector-parser "^6.0.8"
+    postcss-value-parser "^4.2.0"
+    quick-lru "^5.1.1"
+    resolve "^1.21.0"
+
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+through@^2.3.6, through@^2.3.8:
+  version "2.3.8"
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+title-case@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982"
+  integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==
+  dependencies:
+    tslib "^2.0.3"
+
+tmp@^0.0.33:
+  version "0.0.33"
+  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+  integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+  dependencies:
+    os-tmpdir "~1.0.2"
+
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-readable-stream@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
+  integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+totalist@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
+  integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
+
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
+ts-log@^2.2.3:
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.4.tgz#d672cf904b33735eaba67a7395c93d45fba475b3"
+  integrity sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==
+
+ts-node@^9:
+  version "9.1.1"
+  resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
+  integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
+  dependencies:
+    arg "^4.1.0"
+    create-require "^1.1.0"
+    diff "^4.0.1"
+    make-error "^1.1.1"
+    source-map-support "^0.5.17"
+    yn "3.1.1"
+
+tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0:
+  version "3.12.0"
+  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
+  integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
+  dependencies:
+    "@types/json5" "^0.0.29"
+    json5 "^1.0.1"
+    minimist "^1.2.0"
+    strip-bom "^3.0.0"
+
+tslib@^1.8.1, tslib@^1.9.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2, 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==
+
+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==
+  dependencies:
+    tslib "^1.8.1"
+
+turbo-darwin-64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.0.28.tgz#662392368698c4e698b31871f0953836872f7b0e"
+  integrity sha512-uvARrncW6HNTFi7PFe4sq4JqSOKs1vPgWjJjOEyVhsCFwBgYkXxYsJSdDfO8OhvJa3wv+eYFAK5RaUCk80Z8eg==
+
+turbo-darwin-arm64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.0.28.tgz#3ba1a6f9a960321391b8cf809ed8fab0276a499d"
+  integrity sha512-d/ANU+RIq4Fx/MphkqFThvwOpb+NYDuR+07aV5w8cwI7ljw7hPAe3EW3CSlkPJhvjs6P/oh+F86jhh1Q581mVA==
+
+turbo-freebsd-64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.0.28.tgz#f94e39dc455573c0a42f96f1a84649b252bf0571"
+  integrity sha512-JMJWftuWhJan+Momc39vbbwaLYEcMpYyBxIrumyIrIkQVaiSKs/6oEFzh1YA+KE16kAgzTPJPXFDkmsY3idAQg==
+
+turbo-freebsd-arm64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.0.28.tgz#5551f5c67a82a16ce1ba3193410764bae0849d1a"
+  integrity sha512-fGJNE8qJUhosaIK5sGBheeve9y074FLWv8KfYuXMyV/6+dxpNV60HoAFvw8tL3q8TNp47pU6x8e8h+u1/rn1wQ==
+
+turbo-linux-32@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.0.28.tgz#742340e6ca7d77c4fb884159bbc8c7faa8d61026"
+  integrity sha512-fE0qIExxYuVFo5WlVWY0DJ1YZ/w+EC9RheT9nc1tU2EK83XPE1CZFW4lFIsWsXnIy9337zUeNDFVoVxOxCBSUQ==
+
+turbo-linux-64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.0.28.tgz#167acbd2899c0da9252f755ae74d619aaf99efe6"
+  integrity sha512-e+f/O1MlcKCMhJf10q1x+1KSImHwuFUW2+A6DbLk+ekBUW5RELC2qF7hGypCzcpm8xIqtj5A0kP3blFy60AMxw==
+
+turbo-linux-arm64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.0.28.tgz#785415e2a04125a69c7b1d45073150dbab3985f6"
+  integrity sha512-zN0nQClxp4nP4edinbdTd/9CpPjgNPsULc8LgunuJD+B9A0NRcRP5NCDo8/6ctTWs456sE3UhUF3t2b+uEgDzw==
+
+turbo-linux-arm@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.0.28.tgz#f6de485aa732ba14cc1c851ba30b0f0a901507f3"
+  integrity sha512-PbB/RzN4W9M6sNZTvcjmc3PZ2S4CeFyQv/53tSs82pIlwM7NKVJzxVC0j3xCtoqoDDgXoJBhCpPV7MUEjCARQg==
+
+turbo-linux-mips64le@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.0.28.tgz#4f993f387d90fa99037ad9592e98648fdb9ca608"
+  integrity sha512-7LKmFS9M+AKW5slTHLz00Y4ovZh2CpjgMUkNNC6qtJB8YyWwXwoU0U7Yz28q3+rNVkcEiqWWx4l1Tj1AotTlaA==
+
+turbo-linux-ppc64le@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.0.28.tgz#053163e9042790102ceb1d299a3b79b1aa197be4"
+  integrity sha512-R382Op75XxcIiY1pWPnVnefxOeVbrVAeABIHLL1hKetbu9UPNzKAnQKqJYGzKIdTRKtPh5CQuErEFzs/Ky2ZgA==
+
+turbo-windows-32@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.0.28.tgz#b2b735fa56182aaf4095c9e4555fcf39ba050561"
+  integrity sha512-SjDgimlD5TMvkrFRtsJb4uVP7T44gwr0HqiIpAuWj1m5d8Pz/OisOoUkM/ISPKqVycIU5JF8wx0+CTnxC7YNhQ==
+
+turbo-windows-64@1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.0.28.tgz#7a2ad6f8416f04f20a1445c8b7123b80c6b16583"
+  integrity sha512-nT7bgcdl/9QNGBiwCYwTQ2VszcsqJ4NqT4YkE954KFZYxgSwMjjVTdoXcsnXMHpWiMiYfFF7HZLecUNnDm1uUA==
+
+turbo@^1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.0.28.tgz#fb33cecd2d025e3140ddbcc8c274f0ed7328f09d"
+  integrity sha512-5xmyVabNYqA0sCAU4VLdUS2A6GwIyy8FTszB/Fx4eNHwHudQwo00F2qORcDFwBHE4MqtnRoBFhL3ZJzo8c9A2w==
+  optionalDependencies:
+    turbo-darwin-64 "1.0.28"
+    turbo-darwin-arm64 "1.0.28"
+    turbo-freebsd-64 "1.0.28"
+    turbo-freebsd-arm64 "1.0.28"
+    turbo-linux-32 "1.0.28"
+    turbo-linux-64 "1.0.28"
+    turbo-linux-arm "1.0.28"
+    turbo-linux-arm64 "1.0.28"
+    turbo-linux-mips64le "1.0.28"
+    turbo-linux-ppc64le "1.0.28"
+    turbo-windows-32 "1.0.28"
+    turbo-windows-64 "1.0.28"
+
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.21.3:
+  version "0.21.3"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+typescript@4.3.4:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
+  integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
+
+typescript@^4.5.4:
+  version "4.5.5"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
+  integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
+
+ua-parser-js@^0.7.30:
+  version "0.7.31"
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6"
+  integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==
+
+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==
+  dependencies:
+    function-bind "^1.1.1"
+    has-bigints "^1.0.1"
+    has-symbols "^1.0.2"
+    which-boxed-primitive "^1.0.2"
+
+unc-path-regex@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
+  integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo=
+
+undici@^4.9.3:
+  version "4.12.2"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-4.12.2.tgz#f2fc50ca77a774ed8c0e7067c9361ee18a2f422b"
+  integrity sha512-RZj6SbkQFs5O/pJCboGEo6l5DTCe3Zg4r/8Z/0/2qnIv08+s6zL4akohOPMYWKc3mzwv15WTvsfMWaafZcvYoQ==
+
+unixify@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090"
+  integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=
+  dependencies:
+    normalize-path "^2.1.1"
+
+upper-case-first@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324"
+  integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==
+  dependencies:
+    tslib "^2.0.3"
+
+upper-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a"
+  integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==
+  dependencies:
+    tslib "^2.0.3"
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+url-parse-lax@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+  integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
+  dependencies:
+    prepend-http "^2.0.0"
+
+use-subscription@1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1"
+  integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
+  dependencies:
+    object-assign "^4.1.1"
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util-nonempty@^3.0.6:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/util-nonempty/-/util-nonempty-3.1.0.tgz#927a9472ead1817afca159b209e5806523b752d3"
+  integrity sha512-OSZlWoCL74Go83Qw/aeZgSmFZnp9d06bF77b1eAOKipkPWhvxjRYB2nmKiGspoVjkJJEJimzxAgBFUQiUV/oZQ==
+  dependencies:
+    "@babel/runtime" "^7.14.0"
+    lodash.isplainobject "^4.0.6"
+
+uuid@8.3.2:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+uuidv4@^6.2.12:
+  version "6.2.12"
+  resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.2.12.tgz#e8c1d1d733c3fa4963d4610b8a3a09b4ec58ca96"
+  integrity sha512-UnN4ThIYWhv3ZUE8UwDnnCvh4JafCNu+sQkxmLyjCVwK3rjLfkg3DYiEv6oCMDIAIVEDP4INg4kX/C5hKaRzZA==
+  dependencies:
+    "@types/uuid" "8.3.1"
+    uuid "8.3.2"
+
+v8-compile-cache@^2.0.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+valid-url@^1.0.9:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200"
+  integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=
+
+value-or-promise@1.0.11, value-or-promise@^1.0.11:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140"
+  integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==
+
+wcwidth@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+  integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
+  dependencies:
+    defaults "^1.0.3"
+
+web-streams-polyfill@4.0.0-beta.1:
+  version "4.0.0-beta.1"
+  resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95"
+  integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==
+
+web-streams-polyfill@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz#a6b74026b38e4885869fb5c589e90b95ccfc7965"
+  integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==
+
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+webpack-bundle-analyzer@4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz#2f3c0ca9041d5ee47fa418693cf56b4a518b578b"
+  integrity sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==
+  dependencies:
+    acorn "^8.0.4"
+    acorn-walk "^8.0.0"
+    chalk "^4.1.0"
+    commander "^6.2.0"
+    gzip-size "^6.0.0"
+    lodash "^4.17.20"
+    opener "^1.5.2"
+    sirv "^1.0.7"
+    ws "^7.3.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==
+
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
+which-boxed-primitive@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+  dependencies:
+    is-bigint "^1.0.1"
+    is-boolean-object "^1.1.0"
+    is-number-object "^1.0.4"
+    is-string "^1.0.5"
+    is-symbol "^1.0.3"
+
+which-module@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+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==
+
+wrap-ansi@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
+  integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
+  dependencies:
+    string-width "^2.1.1"
+    strip-ansi "^4.0.0"
+
+wrap-ansi@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1:
+  version "7.5.6"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
+  integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
+
+ws@^8.3.0:
+  version "8.4.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b"
+  integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==
+
+xtend@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^4.0.0:
+  version "4.0.3"
+  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@^3.0.2:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+  integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml-ast-parser@^0.0.43:
+  version "0.0.43"
+  resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb"
+  integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==
+
+yaml@^1.10.0, yaml@^1.10.2:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^18.1.2:
+  version "18.1.3"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+  integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
+  dependencies:
+    camelcase "^5.0.0"
+    decamelize "^1.2.0"
+
+yargs-parser@^21.0.0:
+  version "21.0.0"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55"
+  integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==
+
+yargs@^15.3.1:
+  version "15.4.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
+  integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
+  dependencies:
+    cliui "^6.0.0"
+    decamelize "^1.2.0"
+    find-up "^4.1.0"
+    get-caller-file "^2.0.1"
+    require-directory "^2.1.1"
+    require-main-filename "^2.0.0"
+    set-blocking "^2.0.0"
+    string-width "^4.2.0"
+    which-module "^2.0.0"
+    y18n "^4.0.0"
+    yargs-parser "^18.1.2"
+
+yargs@^17.0.0:
+  version "17.3.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9"
+  integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.3"
+    y18n "^5.0.5"
+    yargs-parser "^21.0.0"
+
+yn@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+  integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==

From 4508b13a3cd8feaf3c83557a441e1fcfb0017ec2 Mon Sep 17 00:00:00 2001
From: Dom Sip <dominik.sipowicz@gmail.com>
Date: Fri, 4 Feb 2022 15:51:30 +0000
Subject: [PATCH 2/7] update run and build docs (#667)

---
 README.md | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index 745f51d09..1af8bbf35 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,7 @@ Next.js Commerce integrates out-of-the-box with BigCommerce, Shopify, Swell, Sal
 
 ### How to change providers
 
-Open `.env.local` and change the value of `COMMERCE_PROVIDER` to the provider you would like to use, then set the environment variables for that provider (use `.env.template` as the base).
+Open `site/.env.local` and change the value of `COMMERCE_PROVIDER` to the provider you would like to use, then set the environment variables for that provider (use `site/.env.template` as the base).
 
 The setup for Shopify would look like this for example:
 
@@ -73,7 +73,7 @@ For example: Turning `cart` off will disable Cart capabilities.
 
 > NOTE: The selected provider should support the feature that you are toggling. (This means that you can't turn wishlist on if the provider doesn't support this functionality out the box)
 
-- Open `commerce.config.json`
+- Open `site/commerce.config.json`
 - You'll see a config file like this:
   ```json
   {
@@ -98,10 +98,11 @@ Our commitment to Open Source can be found [here](https://vercel.com/oss).
 
 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device.
 2. Create a new branch `git checkout -b MY_BRANCH_NAME`
-3. Install the dependencies: `npm i`
-4. Duplicate `.env.template` and rename it to `.env.local`
-5. Add proper store values to `.env.local`
-6. Run `npm run dev` to build and watch for code changes
+3. Install the dependencies: `yarn`
+4. Duplicate `site/.env.template` and rename it to `site/.env.local`
+5. Add proper store values to `site/.env.local`
+6. Run `cd site` and `yarn dev` to build and watch for code changes
+7. Run `yarn turbo run build` to check the build after your changes
 
 ## Work in progress
 

From c11b1ca868e1b7a5f10842c0d0e73b9631c71117 Mon Sep 17 00:00:00 2001
From: Dom Sip <dominik.sipowicz@gmail.com>
Date: Tue, 8 Feb 2022 16:53:32 +0000
Subject: [PATCH 3/7] refactor: SOL-122: replace classnames with clsx (#656)

refactor: SOL-122: replace classnames with clsx
---
 site/components/cart/CartItem/CartItem.tsx             |  2 +-
 .../cart/CartSidebarView/CartSidebarView.tsx           |  2 +-
 .../checkout/PaymentMethodView/PaymentMethodView.tsx   |  2 +-
 site/components/checkout/ShippingView/ShippingView.tsx |  2 +-
 .../checkout/ShippingWidget/ShippingWidget.tsx         |  1 -
 site/components/common/FeatureBar/FeatureBar.tsx       |  2 +-
 site/components/common/Footer/Footer.tsx               |  2 +-
 site/components/common/I18nWidget/I18nWidget.tsx       |  2 +-
 site/components/common/Layout/Layout.tsx               |  2 +-
 site/components/common/Navbar/NavbarRoot.tsx           |  2 +-
 site/components/common/Searchbar/Searchbar.tsx         |  2 +-
 site/components/common/SidebarLayout/SidebarLayout.tsx |  2 +-
 site/components/common/UserNav/DropdownMenu.tsx        |  2 +-
 site/components/common/UserNav/UserNav.tsx             |  2 +-
 site/components/product/ProductCard/ProductCard.tsx    |  2 +-
 .../components/product/ProductSlider/ProductSlider.tsx |  2 +-
 .../ProductSliderControl/ProductSliderControl.tsx      |  2 +-
 site/components/product/ProductTag/ProductTag.tsx      |  2 +-
 site/components/product/ProductView/ProductView.tsx    |  2 +-
 site/components/product/Swatch/Swatch.tsx              |  2 +-
 site/components/search.tsx                             |  2 +-
 site/components/ui/Button/Button.tsx                   |  2 +-
 site/components/ui/Collapse/Collapse.tsx               |  2 +-
 site/components/ui/Container/Container.tsx             |  2 +-
 site/components/ui/Grid/Grid.tsx                       |  2 +-
 site/components/ui/Input/Input.tsx                     |  2 +-
 site/components/ui/Marquee/Marquee.tsx                 |  2 +-
 site/components/ui/Quantity/Quantity.tsx               |  2 +-
 site/components/ui/Rating/Rating.tsx                   |  2 +-
 site/components/ui/Sidebar/Sidebar.tsx                 |  2 +-
 site/components/ui/Skeleton/Skeleton.tsx               |  2 +-
 site/components/ui/Text/Text.tsx                       |  2 +-
 .../wishlist/WishlistButton/WishlistButton.tsx         |  2 +-
 site/components/wishlist/WishlistCard/WishlistCard.tsx |  2 +-
 site/package.json                                      |  2 +-
 yarn.lock                                              | 10 +++++-----
 36 files changed, 39 insertions(+), 40 deletions(-)

diff --git a/site/components/cart/CartItem/CartItem.tsx b/site/components/cart/CartItem/CartItem.tsx
index a9d143a1c..ecd3e39ae 100644
--- a/site/components/cart/CartItem/CartItem.tsx
+++ b/site/components/cart/CartItem/CartItem.tsx
@@ -1,5 +1,5 @@
 import { ChangeEvent, FocusEventHandler, useEffect, useState } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import Image from 'next/image'
 import Link from 'next/link'
 import s from './CartItem.module.css'
diff --git a/site/components/cart/CartSidebarView/CartSidebarView.tsx b/site/components/cart/CartSidebarView/CartSidebarView.tsx
index 2fa7980f2..327602c0b 100644
--- a/site/components/cart/CartSidebarView/CartSidebarView.tsx
+++ b/site/components/cart/CartSidebarView/CartSidebarView.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import { FC } from 'react'
 import s from './CartSidebarView.module.css'
diff --git a/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx b/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx
index 972073756..115619c75 100644
--- a/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx
+++ b/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx
@@ -1,5 +1,5 @@
 import { FC } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 
 import useAddCard from '@framework/customer/card/use-add-item'
 import { Button, Text } from '@components/ui'
diff --git a/site/components/checkout/ShippingView/ShippingView.tsx b/site/components/checkout/ShippingView/ShippingView.tsx
index 571730ed5..ef7c74325 100644
--- a/site/components/checkout/ShippingView/ShippingView.tsx
+++ b/site/components/checkout/ShippingView/ShippingView.tsx
@@ -1,5 +1,5 @@
 import { FC } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 
 import Button from '@components/ui/Button'
 import { useUI } from '@components/ui/context'
diff --git a/site/components/checkout/ShippingWidget/ShippingWidget.tsx b/site/components/checkout/ShippingWidget/ShippingWidget.tsx
index 557a69a8b..1418a2b51 100644
--- a/site/components/checkout/ShippingWidget/ShippingWidget.tsx
+++ b/site/components/checkout/ShippingWidget/ShippingWidget.tsx
@@ -1,7 +1,6 @@
 import { FC } from 'react'
 import s from './ShippingWidget.module.css'
 import { ChevronRight, MapPin, Check } from '@components/icons'
-import cn from 'classnames'
 
 interface ComponentProps {
   onClick?: () => any
diff --git a/site/components/common/FeatureBar/FeatureBar.tsx b/site/components/common/FeatureBar/FeatureBar.tsx
index 8923a721e..075528618 100644
--- a/site/components/common/FeatureBar/FeatureBar.tsx
+++ b/site/components/common/FeatureBar/FeatureBar.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './FeatureBar.module.css'
 
 interface FeatureBarProps {
diff --git a/site/components/common/Footer/Footer.tsx b/site/components/common/Footer/Footer.tsx
index 8cfcc9666..18e9b4027 100644
--- a/site/components/common/Footer/Footer.tsx
+++ b/site/components/common/Footer/Footer.tsx
@@ -1,5 +1,5 @@
 import { FC } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import { useRouter } from 'next/router'
 import type { Page } from '@commerce/types/page'
diff --git a/site/components/common/I18nWidget/I18nWidget.tsx b/site/components/common/I18nWidget/I18nWidget.tsx
index 58135f12a..d09dd1d6d 100644
--- a/site/components/common/I18nWidget/I18nWidget.tsx
+++ b/site/components/common/I18nWidget/I18nWidget.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import { FC, useState } from 'react'
 import { useRouter } from 'next/router'
diff --git a/site/components/common/Layout/Layout.tsx b/site/components/common/Layout/Layout.tsx
index adf323f2c..5c936a09f 100644
--- a/site/components/common/Layout/Layout.tsx
+++ b/site/components/common/Layout/Layout.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import React, { FC } from 'react'
 import dynamic from 'next/dynamic'
 import { useRouter } from 'next/router'
diff --git a/site/components/common/Navbar/NavbarRoot.tsx b/site/components/common/Navbar/NavbarRoot.tsx
index 2eb8c5429..16556e842 100644
--- a/site/components/common/Navbar/NavbarRoot.tsx
+++ b/site/components/common/Navbar/NavbarRoot.tsx
@@ -1,6 +1,6 @@
 import { FC, useState, useEffect } from 'react'
 import throttle from 'lodash.throttle'
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './Navbar.module.css'
 
 const NavbarRoot: FC = ({ children }) => {
diff --git a/site/components/common/Searchbar/Searchbar.tsx b/site/components/common/Searchbar/Searchbar.tsx
index ee20a3ade..0d9c8e807 100644
--- a/site/components/common/Searchbar/Searchbar.tsx
+++ b/site/components/common/Searchbar/Searchbar.tsx
@@ -1,5 +1,5 @@
 import { FC, memo, useEffect } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './Searchbar.module.css'
 import { useRouter } from 'next/router'
 
diff --git a/site/components/common/SidebarLayout/SidebarLayout.tsx b/site/components/common/SidebarLayout/SidebarLayout.tsx
index 025bf20e6..407a938ea 100644
--- a/site/components/common/SidebarLayout/SidebarLayout.tsx
+++ b/site/components/common/SidebarLayout/SidebarLayout.tsx
@@ -1,7 +1,7 @@
 import React, { FC } from 'react'
 import { Cross, ChevronLeft } from '@components/icons'
 import { UserNav } from '@components/common'
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './SidebarLayout.module.css'
 
 type ComponentProps = { className?: string } & (
diff --git a/site/components/common/UserNav/DropdownMenu.tsx b/site/components/common/UserNav/DropdownMenu.tsx
index f79fd5821..9a73003dc 100644
--- a/site/components/common/UserNav/DropdownMenu.tsx
+++ b/site/components/common/UserNav/DropdownMenu.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import { FC, useRef, useState, useEffect } from 'react'
 import { useTheme } from 'next-themes'
diff --git a/site/components/common/UserNav/UserNav.tsx b/site/components/common/UserNav/UserNav.tsx
index bb2e48915..aef14f49c 100644
--- a/site/components/common/UserNav/UserNav.tsx
+++ b/site/components/common/UserNav/UserNav.tsx
@@ -1,6 +1,6 @@
 import { FC } from 'react'
 import Link from 'next/link'
-import cn from 'classnames'
+import cn from 'clsx'
 import type { LineItem } from '@commerce/types/cart'
 import useCart from '@framework/cart/use-cart'
 import useCustomer from '@framework/customer/use-customer'
diff --git a/site/components/product/ProductCard/ProductCard.tsx b/site/components/product/ProductCard/ProductCard.tsx
index 96e2382cb..c70461f6c 100644
--- a/site/components/product/ProductCard/ProductCard.tsx
+++ b/site/components/product/ProductCard/ProductCard.tsx
@@ -1,5 +1,5 @@
 import { FC } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import type { Product } from '@commerce/types/product'
 import s from './ProductCard.module.css'
diff --git a/site/components/product/ProductSlider/ProductSlider.tsx b/site/components/product/ProductSlider/ProductSlider.tsx
index 209256b9d..009d058c8 100644
--- a/site/components/product/ProductSlider/ProductSlider.tsx
+++ b/site/components/product/ProductSlider/ProductSlider.tsx
@@ -6,7 +6,7 @@ import React, {
   useRef,
   useEffect,
 } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import { a } from '@react-spring/web'
 import s from './ProductSlider.module.css'
 import ProductSliderControl from '../ProductSliderControl'
diff --git a/site/components/product/ProductSliderControl/ProductSliderControl.tsx b/site/components/product/ProductSliderControl/ProductSliderControl.tsx
index 5525c58de..29b30b789 100644
--- a/site/components/product/ProductSliderControl/ProductSliderControl.tsx
+++ b/site/components/product/ProductSliderControl/ProductSliderControl.tsx
@@ -1,5 +1,5 @@
 import { FC, MouseEventHandler, memo } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './ProductSliderControl.module.css'
 import { ArrowLeft, ArrowRight } from '@components/icons'
 
diff --git a/site/components/product/ProductTag/ProductTag.tsx b/site/components/product/ProductTag/ProductTag.tsx
index 2bc80b878..0db4866e9 100644
--- a/site/components/product/ProductTag/ProductTag.tsx
+++ b/site/components/product/ProductTag/ProductTag.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import { inherits } from 'util'
 import s from './ProductTag.module.css'
 
diff --git a/site/components/product/ProductView/ProductView.tsx b/site/components/product/ProductView/ProductView.tsx
index 1ddd3990b..b20c85b0a 100644
--- a/site/components/product/ProductView/ProductView.tsx
+++ b/site/components/product/ProductView/ProductView.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import Image from 'next/image'
 import { NextSeo } from 'next-seo'
 import s from './ProductView.module.css'
diff --git a/site/components/product/Swatch/Swatch.tsx b/site/components/product/Swatch/Swatch.tsx
index 710ddbbf2..865f43398 100644
--- a/site/components/product/Swatch/Swatch.tsx
+++ b/site/components/product/Swatch/Swatch.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import React from 'react'
 import s from './Swatch.module.css'
 import { Check } from '@components/icons'
diff --git a/site/components/search.tsx b/site/components/search.tsx
index 0a653c6cd..664085e5b 100644
--- a/site/components/search.tsx
+++ b/site/components/search.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import type { SearchPropsType } from '@lib/search-props'
 import Link from 'next/link'
 import { useState } from 'react'
diff --git a/site/components/ui/Button/Button.tsx b/site/components/ui/Button/Button.tsx
index 89c15987d..47d474f2b 100644
--- a/site/components/ui/Button/Button.tsx
+++ b/site/components/ui/Button/Button.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import React, {
   forwardRef,
   ButtonHTMLAttributes,
diff --git a/site/components/ui/Collapse/Collapse.tsx b/site/components/ui/Collapse/Collapse.tsx
index 9f3016943..8ec71ee5a 100644
--- a/site/components/ui/Collapse/Collapse.tsx
+++ b/site/components/ui/Collapse/Collapse.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import React, { FC, ReactNode, useState } from 'react'
 import s from './Collapse.module.css'
 import { ChevronRight } from '@components/icons'
diff --git a/site/components/ui/Container/Container.tsx b/site/components/ui/Container/Container.tsx
index 538b1cac7..095d4f9d4 100644
--- a/site/components/ui/Container/Container.tsx
+++ b/site/components/ui/Container/Container.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import React, { FC } from 'react'
 
 interface ContainerProps {
diff --git a/site/components/ui/Grid/Grid.tsx b/site/components/ui/Grid/Grid.tsx
index 55ca78277..9b033c0a1 100644
--- a/site/components/ui/Grid/Grid.tsx
+++ b/site/components/ui/Grid/Grid.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import { FC, ReactNode, Component } from 'react'
 import s from './Grid.module.css'
 
diff --git a/site/components/ui/Input/Input.tsx b/site/components/ui/Input/Input.tsx
index e630728b2..8a17588be 100644
--- a/site/components/ui/Input/Input.tsx
+++ b/site/components/ui/Input/Input.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './Input.module.css'
 import React, { InputHTMLAttributes } from 'react'
 
diff --git a/site/components/ui/Marquee/Marquee.tsx b/site/components/ui/Marquee/Marquee.tsx
index ce5ec2338..cf5bd436b 100644
--- a/site/components/ui/Marquee/Marquee.tsx
+++ b/site/components/ui/Marquee/Marquee.tsx
@@ -1,4 +1,4 @@
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './Marquee.module.css'
 import { FC, ReactNode, Component, Children } from 'react'
 import { default as FastMarquee } from 'react-fast-marquee'
diff --git a/site/components/ui/Quantity/Quantity.tsx b/site/components/ui/Quantity/Quantity.tsx
index abde145aa..7317ddbe6 100644
--- a/site/components/ui/Quantity/Quantity.tsx
+++ b/site/components/ui/Quantity/Quantity.tsx
@@ -1,7 +1,7 @@
 import React, { FC } from 'react'
 import s from './Quantity.module.css'
 import { Cross, Plus, Minus } from '@components/icons'
-import cn from 'classnames'
+import cn from 'clsx'
 export interface QuantityProps {
   value: number
   increase: () => any
diff --git a/site/components/ui/Rating/Rating.tsx b/site/components/ui/Rating/Rating.tsx
index e3a9c6d12..efd2ca0d8 100644
--- a/site/components/ui/Rating/Rating.tsx
+++ b/site/components/ui/Rating/Rating.tsx
@@ -1,7 +1,7 @@
 import { FC, memo } from 'react'
 import rangeMap from '@lib/range-map'
 import { Star } from '@components/icons'
-import cn from 'classnames'
+import cn from 'clsx'
 
 export interface RatingProps {
   value: number
diff --git a/site/components/ui/Sidebar/Sidebar.tsx b/site/components/ui/Sidebar/Sidebar.tsx
index 688d9aa58..fd0ce9057 100644
--- a/site/components/ui/Sidebar/Sidebar.tsx
+++ b/site/components/ui/Sidebar/Sidebar.tsx
@@ -1,6 +1,6 @@
 import { FC, useEffect, useRef } from 'react'
 import s from './Sidebar.module.css'
-import cn from 'classnames'
+import cn from 'clsx'
 import { disableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock'
 
 interface SidebarProps {
diff --git a/site/components/ui/Skeleton/Skeleton.tsx b/site/components/ui/Skeleton/Skeleton.tsx
index 9cef2c1ac..f4ca677e6 100644
--- a/site/components/ui/Skeleton/Skeleton.tsx
+++ b/site/components/ui/Skeleton/Skeleton.tsx
@@ -1,5 +1,5 @@
 import React, { CSSProperties } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import px from '@lib/to-pixels'
 import s from './Skeleton.module.css'
 
diff --git a/site/components/ui/Text/Text.tsx b/site/components/ui/Text/Text.tsx
index 6106c209a..486b77d3d 100644
--- a/site/components/ui/Text/Text.tsx
+++ b/site/components/ui/Text/Text.tsx
@@ -3,7 +3,7 @@ import React, {
   JSXElementConstructor,
   CSSProperties,
 } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import s from './Text.module.css'
 
 interface TextProps {
diff --git a/site/components/wishlist/WishlistButton/WishlistButton.tsx b/site/components/wishlist/WishlistButton/WishlistButton.tsx
index 7b1801e83..419d271a5 100644
--- a/site/components/wishlist/WishlistButton/WishlistButton.tsx
+++ b/site/components/wishlist/WishlistButton/WishlistButton.tsx
@@ -1,5 +1,5 @@
 import React, { FC, useState } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import { useUI } from '@components/ui'
 import { Heart } from '@components/icons'
 import useAddItem from '@framework/wishlist/use-add-item'
diff --git a/site/components/wishlist/WishlistCard/WishlistCard.tsx b/site/components/wishlist/WishlistCard/WishlistCard.tsx
index dc7a95482..7d0c6710a 100644
--- a/site/components/wishlist/WishlistCard/WishlistCard.tsx
+++ b/site/components/wishlist/WishlistCard/WishlistCard.tsx
@@ -1,5 +1,5 @@
 import { FC, useState } from 'react'
-import cn from 'classnames'
+import cn from 'clsx'
 import Link from 'next/link'
 import Image from 'next/image'
 import s from './WishlistCard.module.css'
diff --git a/site/package.json b/site/package.json
index aa4e6bb84..7a28e7e7b 100644
--- a/site/package.json
+++ b/site/package.json
@@ -27,7 +27,7 @@
     "@vercel/commerce-vendure": "^0.0.1",
     "autoprefixer": "^10.4.2",
     "body-scroll-lock": "^4.0.0-beta.0",
-    "classnames": "^2.3.1",
+    "clsx": "^1.1.1",
     "email-validator": "^2.0.4",
     "js-cookie": "^3.0.1",
     "keen-slider": "^6.6.3",
diff --git a/yarn.lock b/yarn.lock
index 4eb075f0c..417b2d9e1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1834,11 +1834,6 @@ chokidar@^3.5.2:
   optionalDependencies:
     fsevents "~2.3.2"
 
-classnames@^2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
-  integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
-
 clean-stack@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
@@ -1922,6 +1917,11 @@ clone@^1.0.2:
   resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
   integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
+clsx@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
+  integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
+
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"

From 541491f169ed2566c5ee1b2a0f1023be1100ef56 Mon Sep 17 00:00:00 2001
From: Luis Alvarez D <luis@vercel.com>
Date: Wed, 9 Feb 2022 10:30:59 -0500
Subject: [PATCH 4/7] Replace tsc with SWC for package compilation and file
 watching (#675)

* Updated turbo version

* Added taskr to packages/local

* Move json files

* Include missing extension

* Fixed prettierignore

* Updated swc plugin

* Moved swc plugin to its own package

* Added note

* Removed unused package

* Added watch for file changes

* Added taskr deps to every package

* Added taskfile to every package

* Updated scripts in every package

* Added 2 utiity scripts

* Fix turbo dev script

* Update swc plugin to include jsx import

* Updated build script in main package.json
---
 .prettierignore                    |    5 +-
 package.json                       |   48 +-
 packages/bigcommerce/package.json  |   12 +-
 packages/bigcommerce/taskfile.js   |   20 +
 packages/commerce/package.json     |   11 +-
 packages/commerce/taskfile.js      |   20 +
 packages/commercejs/package.json   |   11 +-
 packages/commercejs/taskfile.js    |   20 +
 packages/kibocommerce/package.json |   11 +-
 packages/kibocommerce/taskfile.js  |   20 +
 packages/local/package.json        |   11 +-
 packages/local/taskfile.js         |   20 +
 packages/ordercloud/package.json   |   11 +-
 packages/ordercloud/taskfile.js    |   20 +
 packages/saleor/package.json       |   11 +-
 packages/saleor/taskfile.js        |   20 +
 packages/shopify/package.json      |   11 +-
 packages/shopify/taskfile.js       |   20 +
 packages/spree/package.json        |   11 +-
 packages/spree/taskfile.js         |   20 +
 packages/swell/package.json        |   11 +-
 packages/swell/taskfile.js         |   20 +
 packages/taskr-swc/.prettierrc     |    6 +
 packages/taskr-swc/package.json    |   16 +
 packages/taskr-swc/taskfile-swc.js |  123 +++
 packages/vendure/package.json      |   11 +-
 packages/vendure/taskfile.js       |   20 +
 turbo.json                         |   29 +
 yarn.lock                          | 1196 ++++++++++++++++++++++++++--
 29 files changed, 1625 insertions(+), 140 deletions(-)
 create mode 100644 packages/bigcommerce/taskfile.js
 create mode 100644 packages/commerce/taskfile.js
 create mode 100644 packages/commercejs/taskfile.js
 create mode 100644 packages/kibocommerce/taskfile.js
 create mode 100644 packages/local/taskfile.js
 create mode 100644 packages/ordercloud/taskfile.js
 create mode 100644 packages/saleor/taskfile.js
 create mode 100644 packages/shopify/taskfile.js
 create mode 100644 packages/spree/taskfile.js
 create mode 100644 packages/swell/taskfile.js
 create mode 100644 packages/taskr-swc/.prettierrc
 create mode 100644 packages/taskr-swc/package.json
 create mode 100644 packages/taskr-swc/taskfile-swc.js
 create mode 100644 packages/vendure/taskfile.js
 create mode 100644 turbo.json

diff --git a/.prettierignore b/.prettierignore
index c5d909d2f..1c8b279ce 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,4 +1,5 @@
 # Every package defines its prettier config
 node_modules
-packages
-site
+dist
+.next
+public
diff --git a/package.json b/package.json
index dd2ede975..2854cf992 100644
--- a/package.json
+++ b/package.json
@@ -7,56 +7,20 @@
     "packages/*"
   ],
   "scripts": {
+    "build": "turbo run build --scope=next-commerce --include-dependencies --no-deps",
+    "dev": "turbo run dev",
+    "start": "turbo run start",
     "prettier-fix": "prettier --write ."
   },
-  "turbo": {
-    "baseBranch": "origin/main",
-    "pipeline": {
-      "build": {
-        "dependsOn": [
-          "^build"
-        ],
-        "outputs": [
-          "dist/**"
-        ]
-      },
-      "next-commerce#build": {
-        "dependsOn": [
-          "^build",
-          "$COMMERCE_PROVIDER"
-        ],
-        "outputs": [
-          ".next/**"
-        ]
-      },
-      "test": {
-        "dependsOn": [
-          "^build"
-        ],
-        "outputs": []
-      },
-      "lint": {
-        "outputs": []
-      },
-      "prettier-fix": {
-        "outputs": []
-      },
-      "dev": {
-        "cache": false
-      },
-      "start": {
-        "cache": false
-      }
-    }
-  },
   "devDependencies": {
     "husky": "^7.0.4",
     "prettier": "^2.5.1",
-    "turbo": "^1.0.28"
+    "turbo": "^1.1.2"
   },
   "husky": {
     "hooks": {
       "pre-commit": "turbo run lint"
     }
-  }
+  },
+  "packageManager": "yarn@1.22.17"
 }
diff --git a/packages/bigcommerce/package.json b/packages/bigcommerce/package.json
index 7df99130b..34b8ac614 100644
--- a/packages/bigcommerce/package.json
+++ b/packages/bigcommerce/package.json
@@ -3,9 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
-    "prettier-fix": "prettier --write .",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "generate:definitions": "node scripts/generate-definitions.js"
   },
   "sideEffects": false,
@@ -59,6 +60,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/cookie": "^0.4.1",
     "@types/jsonwebtoken": "^8.5.7",
     "@types/lodash.debounce": "^4.0.6",
@@ -69,6 +73,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/bigcommerce/taskfile.js b/packages/bigcommerce/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/bigcommerce/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/commerce/package.json b/packages/commerce/package.json
index 17302b77f..17343a8b2 100644
--- a/packages/commerce/package.json
+++ b/packages/commerce/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -57,6 +59,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/js-cookie": "^3.0.1",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
@@ -65,6 +70,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/commerce/taskfile.js b/packages/commerce/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/commerce/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/commercejs/package.json b/packages/commercejs/package.json
index 5719f3060..f1ae97dba 100644
--- a/packages/commercejs/package.json
+++ b/packages/commercejs/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -54,6 +56,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/chec__commerce.js": "^2.8.4",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
@@ -62,6 +67,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/commercejs/taskfile.js b/packages/commercejs/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/commercejs/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/kibocommerce/package.json b/packages/kibocommerce/package.json
index 52d64be6e..6d27b3804 100644
--- a/packages/kibocommerce/package.json
+++ b/packages/kibocommerce/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write .",
     "generate": "graphql-codegen"
   },
@@ -60,6 +62,9 @@
     "@graphql-codegen/schema-ast": "^2.4.1",
     "@graphql-codegen/typescript": "^2.4.2",
     "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -67,6 +72,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/kibocommerce/taskfile.js b/packages/kibocommerce/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/kibocommerce/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/local/package.json b/packages/local/package.json
index b2d860569..3ec3e69a4 100644
--- a/packages/local/package.json
+++ b/packages/local/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -54,6 +56,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -61,6 +66,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/local/taskfile.js b/packages/local/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/local/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/ordercloud/package.json b/packages/ordercloud/package.json
index a749b90d9..8c6439c54 100644
--- a/packages/ordercloud/package.json
+++ b/packages/ordercloud/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -55,6 +57,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -62,6 +67,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/ordercloud/taskfile.js b/packages/ordercloud/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/ordercloud/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/saleor/package.json b/packages/saleor/package.json
index 6a7118149..43ba1b7c7 100644
--- a/packages/saleor/package.json
+++ b/packages/saleor/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write .",
     "generate": "graphql-codegen"
   },
@@ -60,6 +62,9 @@
     "@graphql-codegen/schema-ast": "^2.4.1",
     "@graphql-codegen/typescript": "^2.4.2",
     "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -67,6 +72,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/saleor/taskfile.js b/packages/saleor/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/saleor/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/shopify/package.json b/packages/shopify/package.json
index b406fc7c4..a98e3b507 100644
--- a/packages/shopify/package.json
+++ b/packages/shopify/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write .",
     "generate": "DOTENV_CONFIG_PATH=./.env graphql-codegen -r dotenv/config"
   },
@@ -60,6 +62,9 @@
     "@graphql-codegen/schema-ast": "^2.4.1",
     "@graphql-codegen/typescript": "^2.4.2",
     "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "dotenv": "^12.0.3",
@@ -68,6 +73,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/shopify/taskfile.js b/packages/shopify/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/shopify/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/spree/package.json b/packages/spree/package.json
index cbdfa208a..d441f8b6e 100644
--- a/packages/spree/package.json
+++ b/packages/spree/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -56,6 +58,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -63,6 +68,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/spree/taskfile.js b/packages/spree/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/spree/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/swell/package.json b/packages/swell/package.json
index c751ab954..172f68925 100644
--- a/packages/swell/package.json
+++ b/packages/swell/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write ."
   },
   "sideEffects": false,
@@ -56,6 +58,9 @@
     "react-dom": "^17"
   },
   "devDependencies": {
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -63,6 +68,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/swell/taskfile.js b/packages/swell/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/swell/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/packages/taskr-swc/.prettierrc b/packages/taskr-swc/.prettierrc
new file mode 100644
index 000000000..a4fb43a48
--- /dev/null
+++ b/packages/taskr-swc/.prettierrc
@@ -0,0 +1,6 @@
+{
+      "semi": false,
+      "singleQuote": true,
+      "tabWidth": 2,
+      "useTabs": false
+}
diff --git a/packages/taskr-swc/package.json b/packages/taskr-swc/package.json
new file mode 100644
index 000000000..1a91b5b38
--- /dev/null
+++ b/packages/taskr-swc/package.json
@@ -0,0 +1,16 @@
+{
+  "name": "taskr-swc",
+  "version": "0.0.1",
+  "license": "MIT",
+  "scripts": {
+    "prettier-fix": "prettier --write ."
+  },
+  "main": "taskfile-swc.js",
+  "files": [
+    "taskfile-swc.js"
+  ],
+  "devDependencies": {
+    "@swc/core": "^1.2.138",
+    "prettier": "^2.5.1"
+  }
+}
diff --git a/packages/taskr-swc/taskfile-swc.js b/packages/taskr-swc/taskfile-swc.js
new file mode 100644
index 000000000..26fcad520
--- /dev/null
+++ b/packages/taskr-swc/taskfile-swc.js
@@ -0,0 +1,123 @@
+// Based on
+// https://github.com/vercel/next.js/blob/canary/packages/next/taskfile-swc.js
+
+// taskr babel plugin with Babel 7 support
+// https://github.com/lukeed/taskr/pull/305
+
+const path = require('path')
+const transform = require('@swc/core').transform
+
+module.exports = function (task) {
+  task.plugin(
+    'swc',
+    {},
+    function* (
+      file,
+      { server = true, stripExtension, dev, outDir = 'dist', baseUrl = '' } = {}
+    ) {
+      // Don't compile .d.ts
+      if (file.base.endsWith('.d.ts')) return
+
+      const swcClientOptions = {
+        module: {
+          type: 'es6',
+          ignoreDynamic: true,
+        },
+        jsc: {
+          loose: true,
+          target: 'es2016',
+          parser: {
+            syntax: 'typescript',
+            dynamicImport: true,
+            tsx: file.base.endsWith('.tsx'),
+          },
+          transform: {
+            react: {
+              runtime: 'automatic',
+              pragma: 'React.createElement',
+              pragmaFrag: 'React.Fragment',
+              throwIfNamespace: true,
+              development: false,
+              useBuiltins: true,
+            },
+          },
+        },
+      }
+      const swcServerOptions = {
+        module: {
+          type: 'es6',
+          ignoreDynamic: true,
+        },
+        env: {
+          targets: {
+            node: '14.0.0',
+          },
+        },
+        jsc: {
+          loose: true,
+          parser: {
+            syntax: 'typescript',
+            dynamicImport: true,
+            tsx: file.base.endsWith('.tsx'),
+          },
+          transform: {
+            react: {
+              runtime: 'automatic',
+              pragma: 'React.createElement',
+              pragmaFrag: 'React.Fragment',
+              throwIfNamespace: true,
+              development: false,
+              useBuiltins: true,
+            },
+          },
+        },
+      }
+
+      const swcOptions = server ? swcServerOptions : swcClientOptions
+      const filePath = path.join(file.dir, file.base)
+      const options = {
+        filename: filePath,
+        sourceMaps: false,
+        ...swcOptions,
+      }
+
+      if (options.sourceMaps && !options.sourceFileName) {
+        // Using `outDir` and `baseUrl` build a relative path from `outDir` to
+        // the `baseUrl` path for source maps
+        const basePath = path.join(__dirname, baseUrl)
+        const relativeFilePath = path.relative(basePath, filePath)
+        const fullFilePath = path.join(__dirname, filePath)
+        const distFilePath = path.dirname(
+          path.join(__dirname, outDir, relativeFilePath)
+        )
+
+        options.sourceFileName = path.relative(distFilePath, fullFilePath)
+      }
+
+      const output = yield transform(file.data.toString('utf-8'), options)
+      const ext = path.extname(file.base)
+
+      // Replace `.ts|.tsx` with `.js` in files with an extension
+      if (ext) {
+        const extRegex = new RegExp(ext.replace('.', '\\.') + '$', 'i')
+        // Remove the extension if stripExtension is enabled or replace it with `.js`
+        file.base = file.base.replace(extRegex, stripExtension ? '' : '.js')
+      }
+
+      if (output.map) {
+        const map = `${file.base}.map`
+
+        output.code += Buffer.from(`\n//# sourceMappingURL=${map}`)
+
+        // add sourcemap to `files` array
+        this._.files.push({
+          base: map,
+          dir: file.dir,
+          data: Buffer.from(output.map),
+        })
+      }
+
+      file.data = Buffer.from(output.code)
+    }
+  )
+}
diff --git a/packages/vendure/package.json b/packages/vendure/package.json
index dc9818aee..484a52743 100644
--- a/packages/vendure/package.json
+++ b/packages/vendure/package.json
@@ -3,8 +3,10 @@
   "version": "0.0.1",
   "license": "MIT",
   "scripts": {
-    "build": "rm -fr dist/* && tsc",
-    "dev": "npm run build -- --watch",
+    "release": "taskr release",
+    "build": "taskr build",
+    "dev": "taskr",
+    "types": "tsc --emitDeclarationOnly",
     "prettier-fix": "prettier --write .",
     "generate": "graphql-codegen"
   },
@@ -60,6 +62,9 @@
     "@graphql-codegen/schema-ast": "^2.4.1",
     "@graphql-codegen/typescript": "^2.4.2",
     "@graphql-codegen/typescript-operations": "^2.2.2",
+    "@taskr/clear": "^1.1.0",
+    "@taskr/esnext": "^1.1.0",
+    "@taskr/watch": "^1.1.0",
     "@types/node": "^17.0.8",
     "@types/react": "^17.0.38",
     "lint-staged": "^12.1.7",
@@ -67,6 +72,8 @@
     "prettier": "^2.5.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
+    "taskr": "^1.1.0",
+    "taskr-swc": "^0.0.1",
     "typescript": "^4.5.4"
   },
   "lint-staged": {
diff --git a/packages/vendure/taskfile.js b/packages/vendure/taskfile.js
new file mode 100644
index 000000000..39b1b2a86
--- /dev/null
+++ b/packages/vendure/taskfile.js
@@ -0,0 +1,20 @@
+export async function build(task, opts) {
+  await task
+    .source('src/**/*.+(ts|tsx|js)')
+    .swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
+    .target('dist')
+    .source('src/**/*.+(cjs|json)')
+    .target('dist')
+  task.$.log('Compiled src files')
+}
+
+export async function release(task) {
+  await task.clear('dist').start('build')
+}
+
+export default async function dev(task) {
+  const opts = { dev: true }
+  await task.clear('dist')
+  await task.start('build', opts)
+  await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
+}
diff --git a/turbo.json b/turbo.json
new file mode 100644
index 000000000..ccd7d3567
--- /dev/null
+++ b/turbo.json
@@ -0,0 +1,29 @@
+{
+  "baseBranch": "origin/main",
+  "pipeline": {
+    "build": {
+      "dependsOn": ["^build"],
+      "outputs": ["dist/**"]
+    },
+    "next-commerce#build": {
+      "dependsOn": ["^build", "$COMMERCE_PROVIDER"],
+      "outputs": [".next/**"]
+    },
+    "test": {
+      "dependsOn": ["^build"],
+      "outputs": []
+    },
+    "lint": {
+      "outputs": []
+    },
+    "prettier-fix": {
+      "outputs": []
+    },
+    "dev": {
+      "cache": false
+    },
+    "start": {
+      "cache": false
+    }
+  }
+}
diff --git a/yarn.lock b/yarn.lock
index 417b2d9e1..1c1a7fc7b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1050,6 +1050,90 @@
   resolved "https://registry.yarnpkg.com/@spree/storefront-api-v2-sdk/-/storefront-api-v2-sdk-5.1.2.tgz#6e4842c7307071adda45c975edb5ecbd9316e319"
   integrity sha512-Jw9J/rUG9pyegjSWaXFSA1or/2KTgXiXdlE+hjMx3htveoxL1V+uqz7ke6UkdJMv7uB2cJtYOCpg8JzrQZgg1A==
 
+"@swc/core-android-arm-eabi@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz#4605fa4afc0bb515798a7b7ebd274eb06f67775b"
+  integrity sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==
+
+"@swc/core-android-arm64@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz#7bb94a78d7253ca8b6ec92be435c5a7686dbd68c"
+  integrity sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==
+
+"@swc/core-darwin-arm64@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz#8a31dbdb90626f503a837ee71fa3bb7866ac3eb1"
+  integrity sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==
+
+"@swc/core-darwin-x64@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz#cc389708336dabc411a6d4705c2be17f9407054b"
+  integrity sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==
+
+"@swc/core-freebsd-x64@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz#2f29b1e8f133825fefb558a071f3bdb67dcf3c32"
+  integrity sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==
+
+"@swc/core-linux-arm-gnueabihf@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz#255c2011d865ff8f8118753f8900b51545c30000"
+  integrity sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==
+
+"@swc/core-linux-arm64-gnu@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz#89813e14240bde17aaa914a47e84626a10ae13ec"
+  integrity sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==
+
+"@swc/core-linux-arm64-musl@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz#c33351846218a4bd471505c9215233608f648ab9"
+  integrity sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==
+
+"@swc/core-linux-x64-gnu@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz#0be2226c7c701d8f58051ca47e78f24d479a9faa"
+  integrity sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==
+
+"@swc/core-linux-x64-musl@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz#07feede753206a4858dd275a0a4f99501909010e"
+  integrity sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==
+
+"@swc/core-win32-arm64-msvc@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz#04e7dbfefb2e933433be32254c52c65add15c086"
+  integrity sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==
+
+"@swc/core-win32-ia32-msvc@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz#7d897c97ac5338e8a947d6c0c032e8068b521a2e"
+  integrity sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==
+
+"@swc/core-win32-x64-msvc@1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz#6a54a72ed035d3b327f2576f4a586da093dc4898"
+  integrity sha512-wYrARtnPg/svsQd0oovbth2JAhOugAgbnaOS0CMiWB4vaFBx+1GHJl5wzdhh9jt1kzsu4xZ4237tUeMH+s6d0A==
+
+"@swc/core@^1.2.138":
+  version "1.2.138"
+  resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.138.tgz#e54d8488094f7f90cb00455cb0380693c0935865"
+  integrity sha512-XMbpq6y2BiTju5KCtveM3h32Ma3chGm/fQEjErZmWNOcPIpupGLPosSU1bH35Udee4GHNJH3NfkZIDR0cjHWIg==
+  optionalDependencies:
+    "@swc/core-android-arm-eabi" "1.2.138"
+    "@swc/core-android-arm64" "1.2.138"
+    "@swc/core-darwin-arm64" "1.2.138"
+    "@swc/core-darwin-x64" "1.2.138"
+    "@swc/core-freebsd-x64" "1.2.138"
+    "@swc/core-linux-arm-gnueabihf" "1.2.138"
+    "@swc/core-linux-arm64-gnu" "1.2.138"
+    "@swc/core-linux-arm64-musl" "1.2.138"
+    "@swc/core-linux-x64-gnu" "1.2.138"
+    "@swc/core-linux-x64-musl" "1.2.138"
+    "@swc/core-win32-arm64-msvc" "1.2.138"
+    "@swc/core-win32-ia32-msvc" "1.2.138"
+    "@swc/core-win32-x64-msvc" "1.2.138"
+
 "@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"
@@ -1057,6 +1141,29 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
+"@taskr/clear@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@taskr/clear/-/clear-1.1.0.tgz#0a88d180bed2f91f310136375a72c00b50834fd1"
+  integrity sha1-CojRgL7S+R8xATY3WnLAC1CDT9E=
+  dependencies:
+    bluebird "^3.5.0"
+    rimraf "^2.5.4"
+
+"@taskr/esnext@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@taskr/esnext/-/esnext-1.1.0.tgz#e8ca509f45fc57a4e2152945c27500c531cf87dd"
+  integrity sha1-6MpQn0X8V6TiFSlFwnUAxTHPh90=
+  dependencies:
+    require-like "^0.1.2"
+    rewrite-imports "^1.0.0"
+
+"@taskr/watch@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@taskr/watch/-/watch-1.1.0.tgz#bf447178cfac71fc99b250ff46c40ad3f96173d6"
+  integrity sha1-v0RxeM+scfyZslD/RsQK0/lhc9Y=
+  dependencies:
+    chokidar "^1.7.0"
+
 "@tootallnate/once@2":
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
@@ -1418,6 +1525,14 @@ any-observable@^0.3.0:
   resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
   integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
 
+anymatch@^1.3.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
+  integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
+  dependencies:
+    micromatch "^2.1.5"
+    normalize-path "^2.0.0"
+
 anymatch@~3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
@@ -1449,6 +1564,28 @@ aria-query@^4.2.2:
     "@babel/runtime" "^7.10.2"
     "@babel/runtime-corejs3" "^7.10.2"
 
+arr-diff@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+  integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
+  dependencies:
+    arr-flatten "^1.0.1"
+
+arr-diff@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
 array-includes-with-glob@^3.0.6:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/array-includes-with-glob/-/array-includes-with-glob-3.1.0.tgz#f04e8172f231ab8261e52bfe9756b65c08b87ab9"
@@ -1473,6 +1610,16 @@ array-union@^2.1.0:
   resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
   integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
 
+array-unique@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+  integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
+
+array-unique@^0.3.2:
+  version "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.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
@@ -1496,6 +1643,11 @@ asap@~2.0.3:
   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
   integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
 
+assign-symbols@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
 ast-types-flow@^0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
@@ -1506,6 +1658,11 @@ astral-regex@^2.0.0:
   resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
   integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
+async-each@^1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+
 async-retry@1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0"
@@ -1525,6 +1682,11 @@ asynckit@^0.4.0:
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
   integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
 
+atob@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
 auto-bind@~4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb"
@@ -1619,16 +1781,41 @@ base64-js@^1.3.1:
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 
+base@^0.11.1:
+  version "0.11.2"
+  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+  dependencies:
+    cache-base "^1.0.1"
+    class-utils "^0.3.5"
+    component-emitter "^1.2.1"
+    define-property "^1.0.0"
+    isobject "^3.0.1"
+    mixin-deep "^1.2.0"
+    pascalcase "^0.1.1"
+
 big.js@^5.2.2:
   version "5.2.2"
   resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
   integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
 
+binary-extensions@^1.0.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+  integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
 binary-extensions@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
   integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 
+bindings@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+  integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+  dependencies:
+    file-uri-to-path "1.0.0"
+
 bl@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@@ -1638,6 +1825,11 @@ bl@^4.1.0:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
+bluebird@^3.5.0:
+  version "3.7.2"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
 body-scroll-lock@^4.0.0-beta.0:
   version "4.0.0-beta.0"
   resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e"
@@ -1651,6 +1843,31 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
+braces@^1.8.2:
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+  integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
+  dependencies:
+    expand-range "^1.8.1"
+    preserve "^0.2.0"
+    repeat-element "^1.1.2"
+
+braces@^2.3.1:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+  dependencies:
+    arr-flatten "^1.1.0"
+    array-unique "^0.3.2"
+    extend-shallow "^2.0.1"
+    fill-range "^4.0.0"
+    isobject "^3.0.1"
+    repeat-element "^1.1.2"
+    snapdragon "^0.8.1"
+    snapdragon-node "^2.0.1"
+    split-string "^3.0.2"
+    to-regex "^3.0.1"
+
 braces@^3.0.1, braces@~3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -1694,6 +1911,21 @@ buffer@^5.5.0, buffer@^5.7.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
+cache-base@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+  dependencies:
+    collection-visit "^1.0.0"
+    component-emitter "^1.2.1"
+    get-value "^2.0.6"
+    has-value "^1.0.0"
+    isobject "^3.0.1"
+    set-value "^2.0.0"
+    to-object-path "^0.3.0"
+    union-value "^1.0.0"
+    unset-value "^1.0.0"
+
 cacheable-request@^6.0.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
@@ -1819,6 +2051,22 @@ chardet@^0.7.0:
   resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
   integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
 
+chokidar@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+  integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
+  dependencies:
+    anymatch "^1.3.0"
+    async-each "^1.0.0"
+    glob-parent "^2.0.0"
+    inherits "^2.0.1"
+    is-binary-path "^1.0.0"
+    is-glob "^2.0.0"
+    path-is-absolute "^1.0.0"
+    readdirp "^2.0.0"
+  optionalDependencies:
+    fsevents "^1.0.0"
+
 chokidar@^3.5.2:
   version "3.5.3"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -1834,6 +2082,16 @@ chokidar@^3.5.2:
   optionalDependencies:
     fsevents "~2.3.2"
 
+class-utils@^0.3.5:
+  version "0.3.6"
+  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+  dependencies:
+    arr-union "^3.1.0"
+    define-property "^0.2.5"
+    isobject "^3.0.0"
+    static-extend "^0.1.1"
+
 clean-stack@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
@@ -1917,6 +2175,11 @@ clone@^1.0.2:
   resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
   integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
+clor@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/clor/-/clor-5.2.0.tgz#9ddc74e7e86728cfcd05a80546ba58d317b81035"
+  integrity sha512-Z+jjxoF4lNUJQtsdz7d9HLz7yP49hnt4CH76AB7DLusHws14gOlVMl/ShtkMPfoFculqejaiQW5EG2Gt5/cCdg==
+
 clsx@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
@@ -1927,6 +2190,14 @@ code-point-at@^1.0.0:
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
   integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
 
+collection-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+  dependencies:
+    map-visit "^1.0.0"
+    object-visit "^1.0.0"
+
 color-convert@^1.9.0:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -1983,6 +2254,11 @@ common-tags@1.8.2, common-tags@^1.8.0:
   resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
   integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
 
+component-emitter@^1.2.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -2016,11 +2292,21 @@ cookie@^0.4.1:
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
   integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
 
+copy-descriptor@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
 core-js-pure@^3.20.2:
   version "3.20.3"
   resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.3.tgz#6cc4f36da06c61d95254efc54024fe4797fd5d02"
   integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==
 
+core-util-is@~1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
 cosmiconfig-toml-loader@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b"
@@ -2140,7 +2426,7 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
   dependencies:
     ms "2.1.2"
 
-debug@^2.6.9:
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -2159,6 +2445,11 @@ decamelize@^1.2.0:
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
   integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
 
+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"
+  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
 decompress-response@^3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
@@ -2200,6 +2491,28 @@ define-properties@^1.1.3:
   dependencies:
     object-keys "^1.0.12"
 
+define-property@^0.2.5:
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+  dependencies:
+    is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+  dependencies:
+    is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+  dependencies:
+    is-descriptor "^1.0.2"
+    isobject "^3.0.1"
+
 defined@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
@@ -2637,6 +2950,48 @@ execa@^5.1.1:
     signal-exit "^3.0.3"
     strip-final-newline "^2.0.0"
 
+expand-brackets@^0.1.4:
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+  integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
+  dependencies:
+    is-posix-bracket "^0.1.0"
+
+expand-brackets@^2.1.4:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+  dependencies:
+    debug "^2.3.3"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    posix-character-classes "^0.1.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+expand-range@^1.8.1:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+  integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
+  dependencies:
+    fill-range "^2.1.0"
+
+extend-shallow@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+  dependencies:
+    is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+  dependencies:
+    assign-symbols "^1.0.0"
+    is-extendable "^1.0.1"
+
 external-editor@^3.0.3:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
@@ -2646,6 +3001,27 @@ external-editor@^3.0.3:
     iconv-lite "^0.4.24"
     tmp "^0.0.33"
 
+extglob@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+  integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
+  dependencies:
+    is-extglob "^1.0.0"
+
+extglob@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+  dependencies:
+    array-unique "^0.3.2"
+    define-property "^1.0.0"
+    expand-brackets "^2.1.4"
+    extend-shallow "^2.0.1"
+    fragment-cache "^0.2.1"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
 extract-files@^11.0.0:
   version "11.0.0"
   resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a"
@@ -2743,6 +3119,37 @@ file-entry-cache@^6.0.1:
   dependencies:
     flat-cache "^3.0.4"
 
+file-uri-to-path@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+filename-regex@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+  integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
+
+fill-range@^2.1.0:
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+  integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
+  dependencies:
+    is-number "^2.1.0"
+    isobject "^2.0.0"
+    randomatic "^3.0.0"
+    repeat-element "^1.1.2"
+    repeat-string "^1.5.2"
+
+fill-range@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+    to-regex-range "^2.1.0"
+
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -2783,6 +3190,18 @@ follow-redirects@^1.14.0:
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
   integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
 
+for-in@^1.0.1, for-in@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+for-own@^0.1.4:
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+  integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
+  dependencies:
+    for-in "^1.0.1"
+
 form-data-encoder@^1.7.1:
   version "1.7.1"
   resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96"
@@ -2810,11 +3229,26 @@ fraction.js@^4.1.2:
   resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8"
   integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==
 
+fragment-cache@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+  dependencies:
+    map-cache "^0.2.2"
+
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
+fsevents@^1.0.0:
+  version "1.2.13"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+  integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
+  dependencies:
+    bindings "^1.5.0"
+    nan "^2.12.1"
+
 fsevents@~2.3.2:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
@@ -2876,6 +3310,26 @@ get-symbol-description@^1.0.0:
     call-bind "^1.0.2"
     get-intrinsic "^1.1.1"
 
+get-value@^2.0.3, get-value@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+glob-base@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+  integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
+  dependencies:
+    glob-parent "^2.0.0"
+    is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+  integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
+  dependencies:
+    is-glob "^2.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"
@@ -2902,7 +3356,7 @@ glob@7.1.7:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^7.1.1, glob@^7.1.3, glob@^7.1.6, glob@^7.1.7:
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6, glob@^7.1.7:
   version "7.2.0"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
   integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -2955,6 +3409,11 @@ got@^9.6.0:
     to-readable-stream "^1.0.0"
     url-parse-lax "^3.0.0"
 
+graceful-fs@^4.1.11:
+  version "4.2.9"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
+  integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
+
 graphql-config@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.1.0.tgz#a3b28d3fb537952ebeb69c75e4430605a10695e3"
@@ -3039,6 +3498,37 @@ has-tostringtag@^1.0.0:
   dependencies:
     has-symbols "^1.0.2"
 
+has-value@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+  dependencies:
+    get-value "^2.0.3"
+    has-values "^0.1.4"
+    isobject "^2.0.0"
+
+has-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+  dependencies:
+    get-value "^2.0.6"
+    has-values "^1.0.0"
+    isobject "^3.0.0"
+
+has-values@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+  dependencies:
+    is-number "^3.0.0"
+    kind-of "^4.0.0"
+
 has@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -3175,7 +3665,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4:
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -3229,6 +3719,20 @@ is-absolute@^1.0.0:
     is-relative "^1.0.0"
     is-windows "^1.0.1"
 
+is-accessor-descriptor@^0.1.6:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+  dependencies:
+    kind-of "^6.0.0"
+
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -3241,6 +3745,13 @@ is-bigint@^1.0.1:
   dependencies:
     has-bigints "^1.0.1"
 
+is-binary-path@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+  dependencies:
+    binary-extensions "^1.0.0"
+
 is-binary-path@~2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
@@ -3256,6 +3767,11 @@ is-boolean-object@^1.1.0:
     call-bind "^1.0.2"
     has-tostringtag "^1.0.0"
 
+is-buffer@^1.1.5:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
 is-callable@^1.1.4, is-callable@^1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
@@ -3268,6 +3784,20 @@ is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1:
   dependencies:
     has "^1.0.3"
 
+is-data-descriptor@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+  dependencies:
+    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"
@@ -3275,6 +3805,53 @@ is-date-object@^1.0.1:
   dependencies:
     has-tostringtag "^1.0.0"
 
+is-descriptor@^0.1.0:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+  dependencies:
+    is-accessor-descriptor "^0.1.6"
+    is-data-descriptor "^0.1.4"
+    kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+  dependencies:
+    is-accessor-descriptor "^1.0.0"
+    is-data-descriptor "^1.0.0"
+    kind-of "^6.0.2"
+
+is-dotfile@^1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+  integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
+
+is-equal-shallow@^0.1.3:
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+  integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
+  dependencies:
+    is-primitive "^2.0.0"
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+  dependencies:
+    is-plain-object "^2.0.4"
+
+is-extglob@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+  integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
+
 is-extglob@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -3309,6 +3886,13 @@ is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
   dependencies:
     is-extglob "^2.1.1"
 
+is-glob@^2.0.0, is-glob@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+  integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
+  dependencies:
+    is-extglob "^1.0.0"
+
 is-interactive@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
@@ -3333,6 +3917,25 @@ is-number-object@^1.0.4:
   dependencies:
     has-tostringtag "^1.0.0"
 
+is-number@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+  integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-number@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-number@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+  integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+
 is-number@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -3345,6 +3948,23 @@ is-observable@^1.1.0:
   dependencies:
     symbol-observable "^1.1.0"
 
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+  dependencies:
+    isobject "^3.0.1"
+
+is-posix-bracket@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+  integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
+
+is-primitive@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+  integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
+
 is-promise@^2.1.0:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
@@ -3420,16 +4040,33 @@ is-weakref@^1.0.1:
   dependencies:
     call-bind "^1.0.2"
 
-is-windows@^1.0.1:
+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==
 
+isarray@1.0.0, isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
+isobject@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+  dependencies:
+    isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
 isomorphic-fetch@3.0.0, isomorphic-fetch@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
@@ -3586,6 +4223,30 @@ keyv@^3.0.0:
   dependencies:
     json-buffer "3.0.0"
 
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
 language-subtag-registry@~0.3.2:
   version "0.3.21"
   resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
@@ -3898,11 +4559,18 @@ make-error@^1, make-error@^1.1.1:
   resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
   integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
 
-map-cache@^0.2.0:
+map-cache@^0.2.0, map-cache@^0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
   integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
 
+map-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+  dependencies:
+    object-visit "^1.0.0"
+
 matcher@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/matcher/-/matcher-4.0.0.tgz#a42a05a09aaed92e2d241eb91fddac689461ea51"
@@ -3910,6 +4578,11 @@ matcher@^4.0.0:
   dependencies:
     escape-string-regexp "^4.0.0"
 
+math-random@^1.0.1:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
+  integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
+
 merge-stream@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -3925,6 +4598,44 @@ meros@^1.1.4:
   resolved "https://registry.yarnpkg.com/meros/-/meros-1.1.4.tgz#c17994d3133db8b23807f62bec7f0cb276cfd948"
   integrity sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==
 
+micromatch@^2.1.5:
+  version "2.3.11"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+  integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
+  dependencies:
+    arr-diff "^2.0.0"
+    array-unique "^0.2.1"
+    braces "^1.8.2"
+    expand-brackets "^0.1.4"
+    extglob "^0.3.1"
+    filename-regex "^2.0.0"
+    is-extglob "^1.0.0"
+    is-glob "^2.0.1"
+    kind-of "^3.0.2"
+    normalize-path "^2.0.1"
+    object.omit "^2.0.0"
+    parse-glob "^3.0.4"
+    regex-cache "^0.4.2"
+
+micromatch@^3.1.10:
+  version "3.1.10"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    braces "^2.3.1"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    extglob "^2.0.4"
+    fragment-cache "^0.2.1"
+    kind-of "^6.0.2"
+    nanomatch "^1.2.9"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.2"
+
 micromatch@^4.0.4:
   version "4.0.4"
   resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
@@ -3972,11 +4683,29 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
+mixin-deep@^1.2.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+  dependencies:
+    for-in "^1.0.2"
+    is-extendable "^1.0.1"
+
+mk-dirs@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/mk-dirs/-/mk-dirs-1.0.0.tgz#44ee67f82341c6762718e88e85e577882e1f67fd"
+  integrity sha1-RO5n+CNBxnYnGOiOheV3iC4fZ/0=
+
 mkdirp@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
+mri@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
+  integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
+
 mrmime@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b"
@@ -4002,11 +4731,33 @@ mute-stream@0.0.8:
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
   integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
 
+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==
+
 nanoid@^3.1.23, nanoid@^3.1.30:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
   integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
 
+nanomatch@^1.2.9:
+  version "1.2.13"
+  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    fragment-cache "^0.2.1"
+    is-windows "^1.0.2"
+    kind-of "^6.0.2"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -4086,7 +4837,7 @@ node-releases@^2.0.1:
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
   integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
 
-normalize-path@^2.1.1:
+normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
   integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
@@ -4130,6 +4881,15 @@ object-assign@^4.1.0, object-assign@^4.1.1:
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
 
+object-copy@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+  dependencies:
+    copy-descriptor "^0.1.0"
+    define-property "^0.2.5"
+    kind-of "^3.0.3"
+
 object-hash@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
@@ -4167,6 +4927,13 @@ object-merge-advanced@12.0.3:
     lodash.uniq "^4.5.0"
     util-nonempty "^3.0.6"
 
+object-visit@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+  dependencies:
+    isobject "^3.0.0"
+
 object.assign@^4.1.0, object.assign@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
@@ -4203,6 +4970,21 @@ object.hasown@^1.1.0:
     define-properties "^1.1.3"
     es-abstract "^1.19.1"
 
+object.omit@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+  integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
+  dependencies:
+    for-own "^0.1.4"
+    is-extendable "^0.1.1"
+
+object.pick@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+  dependencies:
+    isobject "^3.0.1"
+
 object.values@^1.1.5:
   version "1.1.5"
   resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
@@ -4366,6 +5148,16 @@ parse-filepath@^1.0.2:
     map-cache "^0.2.0"
     path-root "^0.1.1"
 
+parse-glob@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+  integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
+  dependencies:
+    glob-base "^0.3.0"
+    is-dotfile "^1.0.0"
+    is-extglob "^1.0.0"
+    is-glob "^2.0.0"
+
 parse-json@^5.0.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -4384,6 +5176,11 @@ pascal-case@^3.1.2:
     no-case "^3.0.4"
     tslib "^2.0.3"
 
+pascalcase@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
 path-case@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
@@ -4444,6 +5241,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
   integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
+posix-character-classes@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
 postcss-attribute-case-insensitive@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz#39cbf6babf3ded1e4abf37d09d6eda21c644105c"
@@ -4720,11 +5522,21 @@ prepend-http@^2.0.0:
   resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
   integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
 
+preserve@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+  integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
+
 prettier@^2.5.1:
   version "2.5.1"
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
   integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
 
+process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
 promise@^7.1.1:
   version "7.3.1"
   resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
@@ -4776,6 +5588,15 @@ quick-lru@^5.1.1:
   resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
   integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
 
+randomatic@^3.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
+  integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
+  dependencies:
+    is-number "^4.0.0"
+    kind-of "^6.0.0"
+    math-random "^1.0.1"
+
 rc@^1.2.8:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@@ -4835,6 +5656,19 @@ react@^17.0.2:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
 
+readable-stream@^2.0.2:
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.3"
+    isarray "~1.0.0"
+    process-nextick-args "~2.0.0"
+    safe-buffer "~5.1.1"
+    string_decoder "~1.1.1"
+    util-deprecate "~1.0.1"
+
 readable-stream@^3.4.0, readable-stream@^3.5.0:
   version "3.6.0"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
@@ -4844,6 +5678,15 @@ readable-stream@^3.4.0, readable-stream@^3.5.0:
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
+readdirp@^2.0.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+  dependencies:
+    graceful-fs "^4.1.11"
+    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"
@@ -4856,6 +5699,21 @@ regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
   integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
 
+regex-cache@^0.4.2:
+  version "0.4.4"
+  resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+  integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
+  dependencies:
+    is-equal-shallow "^0.1.3"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+  dependencies:
+    extend-shallow "^3.0.2"
+    safe-regex "^1.1.0"
+
 regexp.prototype.flags@^1.3.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
@@ -4930,6 +5788,16 @@ remove-trailing-spaces@^1.0.6:
   resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7"
   integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==
 
+repeat-element@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.5.2, repeat-string@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
 replaceall@^0.1.6:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/replaceall/-/replaceall-0.1.6.tgz#81d81ac7aeb72d7f5c4942adf2697a3220688d8e"
@@ -4940,6 +5808,11 @@ require-directory@^2.1.1:
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
+require-like@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa"
+  integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=
+
 require-main-filename@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
@@ -4955,6 +5828,11 @@ 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-url@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
 resolve@^1.20.0, resolve@^1.21.0:
   version "1.22.0"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
@@ -4995,6 +5873,11 @@ restore-cursor@^3.1.0:
     onetime "^5.1.0"
     signal-exit "^3.0.2"
 
+ret@~0.1.10:
+  version "0.1.15"
+  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
 retry@0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -5010,11 +5893,23 @@ reusify@^1.0.4:
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
+rewrite-imports@^1.0.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/rewrite-imports/-/rewrite-imports-1.4.0.tgz#198ebb73f59cfee8d214516c774b6aeef2c54a6e"
+  integrity sha512-k4pGuRsZ6UMSLW4mxpKVxqvGAwXCC81ZnLD+o+S9/7b3+fZ/pguNLHZpZ7qgi/5AmtqzuzppInhaARBjjDquOA==
+
 rfdc@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
   integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
 
+rimraf@^2.5.4:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+  dependencies:
+    glob "^7.1.3"
+
 rimraf@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
@@ -5053,11 +5948,18 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0:
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
-safe-buffer@~5.1.1:
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
+safe-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+  dependencies:
+    ret "~0.1.10"
+
 "safer-buffer@>= 2.1.2 < 3":
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -5107,6 +6009,16 @@ set-blocking@^2.0.0:
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
 
+set-value@^2.0.0, set-value@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-extendable "^0.1.1"
+    is-plain-object "^2.0.3"
+    split-string "^3.0.1"
+
 setimmediate@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
@@ -5196,11 +6108,52 @@ snake-case@^3.0.4:
     dot-case "^3.0.4"
     tslib "^2.0.3"
 
+snapdragon-node@^2.0.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+  dependencies:
+    define-property "^1.0.0"
+    isobject "^3.0.0"
+    snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+  dependencies:
+    kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+  dependencies:
+    base "^0.11.1"
+    debug "^2.2.0"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    map-cache "^0.2.2"
+    source-map "^0.5.6"
+    source-map-resolve "^0.5.0"
+    use "^3.1.0"
+
 source-map-js@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
+source-map-resolve@^0.5.0:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+  dependencies:
+    atob "^2.1.2"
+    decode-uri-component "^0.2.0"
+    resolve-url "^0.2.1"
+    source-map-url "^0.4.0"
+    urix "^0.1.0"
+
 source-map-support@^0.5.17:
   version "0.5.21"
   resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
@@ -5209,12 +6162,17 @@ source-map-support@^0.5.17:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
+source-map-url@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
 source-map@0.7.3:
   version "0.7.3"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 
-source-map@^0.5.0:
+source-map@^0.5.0, source-map@^0.5.6:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -5224,6 +6182,13 @@ source-map@^0.6.0, source-map@^0.6.1:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
+split-string@^3.0.1, split-string@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+  dependencies:
+    extend-shallow "^3.0.0"
+
 sponge-case@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c"
@@ -5231,6 +6196,14 @@ sponge-case@^1.0.1:
   dependencies:
     tslib "^2.0.3"
 
+static-extend@^0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+  dependencies:
+    define-property "^0.2.5"
+    object-copy "^0.1.0"
+
 stream-browserify@3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
@@ -5326,6 +6299,13 @@ string_decoder@^1.1.1:
   dependencies:
     safe-buffer "~5.2.0"
 
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
 strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -5522,6 +6502,18 @@ tailwindcss@^3.0.13:
     quick-lru "^5.1.1"
     resolve "^1.21.0"
 
+taskr@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/taskr/-/taskr-1.1.0.tgz#4f29d0ace26f4deae9a478eabf9aa0432e884438"
+  integrity sha1-TynQrOJvTerppHjqv5qgQy6IRDg=
+  dependencies:
+    bluebird "^3.5.0"
+    clor "^5.1.0"
+    glob "^7.1.2"
+    mk-dirs "^1.0.0"
+    mri "^1.1.0"
+    tinydate "^1.0.0"
+
 text-table@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -5532,6 +6524,11 @@ through@^2.3.6, through@^2.3.8:
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
   integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
+tinydate@^1.0.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/tinydate/-/tinydate-1.3.0.tgz#e6ca8e5a22b51bb4ea1c3a2a4fd1352dbd4c57fb"
+  integrity sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==
+
 title-case@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982"
@@ -5551,11 +6548,26 @@ to-fast-properties@^2.0.0:
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
   integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
 
+to-object-path@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+  dependencies:
+    kind-of "^3.0.2"
+
 to-readable-stream@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
   integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
 
+to-regex-range@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+  dependencies:
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+
 to-regex-range@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -5563,6 +6575,16 @@ to-regex-range@^5.0.1:
   dependencies:
     is-number "^7.0.0"
 
+to-regex@^3.0.1, to-regex@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+  dependencies:
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    regex-not "^1.0.2"
+    safe-regex "^1.1.0"
+
 totalist@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
@@ -5617,83 +6639,83 @@ tsutils@^3.21.0:
   dependencies:
     tslib "^1.8.1"
 
-turbo-darwin-64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.0.28.tgz#662392368698c4e698b31871f0953836872f7b0e"
-  integrity sha512-uvARrncW6HNTFi7PFe4sq4JqSOKs1vPgWjJjOEyVhsCFwBgYkXxYsJSdDfO8OhvJa3wv+eYFAK5RaUCk80Z8eg==
+turbo-darwin-64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.1.2.tgz#b129aaf538821de78d5e2129495c553627174650"
+  integrity sha512-rua17HnVvAqAU54gVfiQoH7cfopOqANv+yI6NtxLMD8aFfX2cJ9m8SSvH2v2vCaToNDW6OnTkdqDKQpqIHzbCw==
 
-turbo-darwin-arm64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.0.28.tgz#3ba1a6f9a960321391b8cf809ed8fab0276a499d"
-  integrity sha512-d/ANU+RIq4Fx/MphkqFThvwOpb+NYDuR+07aV5w8cwI7ljw7hPAe3EW3CSlkPJhvjs6P/oh+F86jhh1Q581mVA==
+turbo-darwin-arm64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.1.2.tgz#07a783ad2e3e8af600ae7406cc4062ff56ac0351"
+  integrity sha512-otqSQNYDyKg0KqB3NM0BI4oiRPKdJkUE/XBn8dcUS+zeRLrL00XtaM0eSwynZs1tb6zU/Y+SPMSBRygD1TCOnw==
 
-turbo-freebsd-64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.0.28.tgz#f94e39dc455573c0a42f96f1a84649b252bf0571"
-  integrity sha512-JMJWftuWhJan+Momc39vbbwaLYEcMpYyBxIrumyIrIkQVaiSKs/6oEFzh1YA+KE16kAgzTPJPXFDkmsY3idAQg==
+turbo-freebsd-64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.1.2.tgz#9e22abf04ec2298f205a57b5c9ce14e22844baf3"
+  integrity sha512-2nxwVDTAM0DtIQ2i3UOfEsQLF7vp+XZ/b9SKtiHxz710fXvdyuGivYI25axDdcBn8kQ45rnbUnarF1aW8CMGgg==
 
-turbo-freebsd-arm64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.0.28.tgz#5551f5c67a82a16ce1ba3193410764bae0849d1a"
-  integrity sha512-fGJNE8qJUhosaIK5sGBheeve9y074FLWv8KfYuXMyV/6+dxpNV60HoAFvw8tL3q8TNp47pU6x8e8h+u1/rn1wQ==
+turbo-freebsd-arm64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.1.2.tgz#6095c9012881225a5fdfb55362defa12f24b1f8e"
+  integrity sha512-ro1Ah96yzgzyT0BJe1mceAqxPxi0pUwzAvN3IKVpMqi4hYkT3aRbzDCaSxzyC6let2Al/NUsgHnbAv38OF2Xkw==
 
-turbo-linux-32@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.0.28.tgz#742340e6ca7d77c4fb884159bbc8c7faa8d61026"
-  integrity sha512-fE0qIExxYuVFo5WlVWY0DJ1YZ/w+EC9RheT9nc1tU2EK83XPE1CZFW4lFIsWsXnIy9337zUeNDFVoVxOxCBSUQ==
+turbo-linux-32@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.1.2.tgz#4726e533d6966172b6bc4a960524ec2eb61adaab"
+  integrity sha512-HKBsETxQMVaf/DJwMg7pypPbGA6KEu0gEf9C8o2aPJvwMPBYgNsNaU08Xizuh5xzEQTzpbIWfQyqdNgMV4RG3Q==
 
-turbo-linux-64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.0.28.tgz#167acbd2899c0da9252f755ae74d619aaf99efe6"
-  integrity sha512-e+f/O1MlcKCMhJf10q1x+1KSImHwuFUW2+A6DbLk+ekBUW5RELC2qF7hGypCzcpm8xIqtj5A0kP3blFy60AMxw==
+turbo-linux-64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.1.2.tgz#dfe7f3a4c91acecdb84ecab330acee06857e568e"
+  integrity sha512-IklKsOklcRHIWkTzKg95BQ6jgJ53kLvRMrp8yqzlvZprkWdiyhAgUxrUTTHOOTce2XA3+jdN2+MwixG44uY2vg==
 
-turbo-linux-arm64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.0.28.tgz#785415e2a04125a69c7b1d45073150dbab3985f6"
-  integrity sha512-zN0nQClxp4nP4edinbdTd/9CpPjgNPsULc8LgunuJD+B9A0NRcRP5NCDo8/6ctTWs456sE3UhUF3t2b+uEgDzw==
+turbo-linux-arm64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.1.2.tgz#c39b6c50657fa0e82627407c86a5c43f19598e2b"
+  integrity sha512-3kS6sk2lOtuBBqkcL+yeGqD1yew4UZ1o7XUcbDD8UPwhF2kAfK7Qs0vTJw4lnO1scjhihkoTrmXM7yozvjf4/w==
 
-turbo-linux-arm@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.0.28.tgz#f6de485aa732ba14cc1c851ba30b0f0a901507f3"
-  integrity sha512-PbB/RzN4W9M6sNZTvcjmc3PZ2S4CeFyQv/53tSs82pIlwM7NKVJzxVC0j3xCtoqoDDgXoJBhCpPV7MUEjCARQg==
+turbo-linux-arm@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.1.2.tgz#2f51f93a3aa144b8ba25d7b0e3c53ea186a0e9dd"
+  integrity sha512-CNbaTvRozq7H/5jpy9OZlzJ6BkeEXF+nF2n9dHiUrbAXd3nq84Qt9odcQJmGnexP19YS9w6l3tIHncX4BgwtqA==
 
-turbo-linux-mips64le@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.0.28.tgz#4f993f387d90fa99037ad9592e98648fdb9ca608"
-  integrity sha512-7LKmFS9M+AKW5slTHLz00Y4ovZh2CpjgMUkNNC6qtJB8YyWwXwoU0U7Yz28q3+rNVkcEiqWWx4l1Tj1AotTlaA==
+turbo-linux-mips64le@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.1.2.tgz#f52b7f410ac289d4e539f108679d2324aa5e271e"
+  integrity sha512-CDoXVIlW43C6KLgYxe13KkG8h6DswXHxbTVHiZdOwRQ56j46lU+JOVpLoh6wpQGcHvj58VEiypZBRTGVFMeogw==
 
-turbo-linux-ppc64le@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.0.28.tgz#053163e9042790102ceb1d299a3b79b1aa197be4"
-  integrity sha512-R382Op75XxcIiY1pWPnVnefxOeVbrVAeABIHLL1hKetbu9UPNzKAnQKqJYGzKIdTRKtPh5CQuErEFzs/Ky2ZgA==
+turbo-linux-ppc64le@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.1.2.tgz#18d08d3414075d0dcb4be83ca837dda508313996"
+  integrity sha512-xPVMHoiOJE/qI63jSOXwYIUFQXLdstxDV6fLnRxvq0QnJNxgTKq+mLUeE8M4LDVh1bdqHLcfk/HmyQ6+X1XVkQ==
 
-turbo-windows-32@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.0.28.tgz#b2b735fa56182aaf4095c9e4555fcf39ba050561"
-  integrity sha512-SjDgimlD5TMvkrFRtsJb4uVP7T44gwr0HqiIpAuWj1m5d8Pz/OisOoUkM/ISPKqVycIU5JF8wx0+CTnxC7YNhQ==
+turbo-windows-32@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.1.2.tgz#96033019094bcb091647d6063c3c9b8e83d0acbe"
+  integrity sha512-Gj1yvPE0aMDSOxGVSBaecLnwsVDT1xX8U0dtLrg52TYY2jlaci0atjHKr9nTFuX7z8uwAf6PopwdriGoCeT3ng==
 
-turbo-windows-64@1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.0.28.tgz#7a2ad6f8416f04f20a1445c8b7123b80c6b16583"
-  integrity sha512-nT7bgcdl/9QNGBiwCYwTQ2VszcsqJ4NqT4YkE954KFZYxgSwMjjVTdoXcsnXMHpWiMiYfFF7HZLecUNnDm1uUA==
+turbo-windows-64@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.1.2.tgz#8eb3f77ab7e04b077752ae2204114c82e5c74697"
+  integrity sha512-0Ncx/iKhnKrdAU8hJ+8NUcF9jtFr8KoW5mMWfiFzy+mgUbVKbpzWT2eoGR6zJExedQsRvYOejbEX5iihbnj5bA==
 
-turbo@^1.0.28:
-  version "1.0.28"
-  resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.0.28.tgz#fb33cecd2d025e3140ddbcc8c274f0ed7328f09d"
-  integrity sha512-5xmyVabNYqA0sCAU4VLdUS2A6GwIyy8FTszB/Fx4eNHwHudQwo00F2qORcDFwBHE4MqtnRoBFhL3ZJzo8c9A2w==
+turbo@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.1.2.tgz#751b9651dc3ebe469898db76afab6405666ad0ff"
+  integrity sha512-3ViHKyAkaBKNKwHASTa1zkVT3tVVhQNLrpxBS7LoN+794ouQUYmy6lf0rTqzG3iTZHtIDwC+piZSdTl4XjEVMg==
   optionalDependencies:
-    turbo-darwin-64 "1.0.28"
-    turbo-darwin-arm64 "1.0.28"
-    turbo-freebsd-64 "1.0.28"
-    turbo-freebsd-arm64 "1.0.28"
-    turbo-linux-32 "1.0.28"
-    turbo-linux-64 "1.0.28"
-    turbo-linux-arm "1.0.28"
-    turbo-linux-arm64 "1.0.28"
-    turbo-linux-mips64le "1.0.28"
-    turbo-linux-ppc64le "1.0.28"
-    turbo-windows-32 "1.0.28"
-    turbo-windows-64 "1.0.28"
+    turbo-darwin-64 "1.1.2"
+    turbo-darwin-arm64 "1.1.2"
+    turbo-freebsd-64 "1.1.2"
+    turbo-freebsd-arm64 "1.1.2"
+    turbo-linux-32 "1.1.2"
+    turbo-linux-64 "1.1.2"
+    turbo-linux-arm "1.1.2"
+    turbo-linux-arm64 "1.1.2"
+    turbo-linux-mips64le "1.1.2"
+    turbo-linux-ppc64le "1.1.2"
+    turbo-windows-32 "1.1.2"
+    turbo-windows-64 "1.1.2"
 
 type-check@^0.4.0, type-check@~0.4.0:
   version "0.4.0"
@@ -5747,6 +6769,16 @@ undici@^4.9.3:
   resolved "https://registry.yarnpkg.com/undici/-/undici-4.12.2.tgz#f2fc50ca77a774ed8c0e7067c9361ee18a2f422b"
   integrity sha512-RZj6SbkQFs5O/pJCboGEo6l5DTCe3Zg4r/8Z/0/2qnIv08+s6zL4akohOPMYWKc3mzwv15WTvsfMWaafZcvYoQ==
 
+union-value@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+  dependencies:
+    arr-union "^3.1.0"
+    get-value "^2.0.6"
+    is-extendable "^0.1.1"
+    set-value "^2.0.1"
+
 unixify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090"
@@ -5754,6 +6786,14 @@ unixify@^1.0.0:
   dependencies:
     normalize-path "^2.1.1"
 
+unset-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+  dependencies:
+    has-value "^0.3.1"
+    isobject "^3.0.0"
+
 upper-case-first@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324"
@@ -5775,6 +6815,11 @@ uri-js@^4.2.2:
   dependencies:
     punycode "^2.1.0"
 
+urix@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
 url-parse-lax@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
@@ -5789,7 +6834,12 @@ use-subscription@1.5.1:
   dependencies:
     object-assign "^4.1.1"
 
-util-deprecate@^1.0.1, util-deprecate@^1.0.2:
+use@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=

From 65c9d39ae61cdccfbc871605a276a89687e88e32 Mon Sep 17 00:00:00 2001
From: Luis Alvarez D <luis@vercel.com>
Date: Fri, 11 Feb 2022 11:42:25 -0500
Subject: [PATCH 5/7] Add env vars used for provider detection as keys (#679)

---
 turbo.json | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/turbo.json b/turbo.json
index ccd7d3567..c734b801f 100644
--- a/turbo.json
+++ b/turbo.json
@@ -6,7 +6,13 @@
       "outputs": ["dist/**"]
     },
     "next-commerce#build": {
-      "dependsOn": ["^build", "$COMMERCE_PROVIDER"],
+      "dependsOn": [
+        "^build",
+        "$COMMERCE_PROVIDER",
+        "$BIGCOMMERCE_STOREFRONT_API_URL",
+        "$NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN",
+        "$NEXT_PUBLIC_SWELL_STORE_ID"
+      ],
       "outputs": [".next/**"]
     },
     "test": {

From db170558d55ee34b4bf86635f78d1aecc9269fa7 Mon Sep 17 00:00:00 2001
From: Dom Sip <dominik.sipowicz@gmail.com>
Date: Fri, 18 Feb 2022 09:26:31 +0000
Subject: [PATCH 6/7] feat: replace next-seo with custom solution (#660)

* replace next-seo with custom solution

* Updated check

Co-authored-by: LFades <luis@vercel.com>
---
 site/components/common/Head/Head.tsx          |  23 ++-
 site/components/common/SEO/SEO.tsx            | 157 ++++++++++++++++++
 site/components/common/SEO/index.ts           |   1 +
 site/components/common/index.ts               |   1 +
 .../product/ProductView/ProductView.tsx       |   8 +-
 site/config/{seo.json => seo_meta.json}       |   5 +-
 site/package.json                             |   1 -
 yarn.lock                                     |   5 -
 8 files changed, 176 insertions(+), 25 deletions(-)
 create mode 100644 site/components/common/SEO/SEO.tsx
 create mode 100644 site/components/common/SEO/index.ts
 rename site/config/{seo.json => seo_meta.json} (90%)

diff --git a/site/components/common/Head/Head.tsx b/site/components/common/Head/Head.tsx
index b2c0c997b..ed43c0d39 100644
--- a/site/components/common/Head/Head.tsx
+++ b/site/components/common/Head/Head.tsx
@@ -1,17 +1,16 @@
-import { FC } from 'react'
-import NextHead from 'next/head'
-import { DefaultSeo } from 'next-seo'
-import config from '@config/seo.json'
+import type { VFC } from 'react'
+import { SEO } from '@components/common'
 
-const Head: FC = () => {
+const Head: VFC = () => {
   return (
-    <>
-      <DefaultSeo {...config} />
-      <NextHead>
-        <meta name="viewport" content="width=device-width, initial-scale=1" />
-        <link rel="manifest" href="/site.webmanifest" key="site-manifest" />
-      </NextHead>
-    </>
+    <SEO>
+      <meta
+        key="viewport"
+        name="viewport"
+        content="width=device-width, initial-scale=1"
+      />
+      <link rel="manifest" href="/site.webmanifest" key="site-manifest" />
+    </SEO>
   )
 }
 
diff --git a/site/components/common/SEO/SEO.tsx b/site/components/common/SEO/SEO.tsx
new file mode 100644
index 000000000..b5e3ad23b
--- /dev/null
+++ b/site/components/common/SEO/SEO.tsx
@@ -0,0 +1,157 @@
+import Head from 'next/head'
+import { FC, Fragment, ReactNode } from 'react'
+import config from '@config/seo_meta.json'
+
+const storeUrl =
+  process.env.NEXT_PUBLIC_STORE_URL || process.env.NEXT_PUBLIC_VERCEL_URL
+const storeBaseUrl = storeUrl ? `https://${storeUrl}` : null
+
+interface OgImage {
+  url?: string
+  width?: string
+  height?: string
+  alt?: string
+}
+
+interface Props {
+  title?: string
+  description?: string
+  robots?: string
+  openGraph?: {
+    title?: string
+    type?: string
+    locale?: string
+    description?: string
+    site_name?: string
+    url?: string
+    images?: OgImage[]
+  }
+  children?: ReactNode
+}
+
+const ogImage = ({ url, width, height, alt }: OgImage, index: number) => {
+  // generate full URL for OG image url with store base URL
+  const imgUrl = storeBaseUrl ? new URL(url!, storeBaseUrl).toString() : url
+  return (
+    <Fragment key={`og:image:${index}`}>
+      <meta
+        key={`og:image:url:${index}`}
+        property="og:image"
+        content={imgUrl}
+      />
+      <meta
+        key={`og:image:width:${index}`}
+        property="og:image:width"
+        content={width}
+      />
+      <meta
+        key={`og:image:height:${index}`}
+        property="og:image:height"
+        content={height}
+      />
+      <meta
+        key={`og:image:alt:${index}`}
+        property="og:image:alt"
+        content={alt}
+      />
+    </Fragment>
+  )
+}
+
+const SEO: FC<Props> = ({
+  title,
+  description,
+  openGraph,
+  robots,
+  children,
+}) => {
+  /**
+   * @see https://nextjs.org/docs/api-reference/next/head
+   *
+   * meta or any other elements need to be contained as direct children of the Head element,
+   * or wrapped into maximum one level of <React.Fragment> or arrays
+   * otherwise the tags won't be correctly picked up on client-side navigations.
+   *
+   * The `key` property makes the tag is only rendered once,
+   */
+  return (
+    <Head>
+      <title key="title">
+        {title ? `${config.titleTemplate.replace(/%s/g, title)}` : config.title}
+      </title>
+      <meta
+        key="description"
+        name="description"
+        content={description || config.description}
+      />
+      <meta
+        key="og:type"
+        property="og:type"
+        content={openGraph?.type ?? config.openGraph.type}
+      />
+      <meta
+        key="og:title"
+        property="og:title"
+        content={
+          openGraph?.title ?? config.openGraph.title ?? title ?? config.title
+        }
+      />
+      <meta
+        key="og:description"
+        property="og:description"
+        content={
+          openGraph?.description ??
+          config.openGraph.description ??
+          description ??
+          config.description
+        }
+      />
+      <meta
+        key="og:site_name"
+        property="og:site_name"
+        content={openGraph?.site_name ?? config.openGraph.site_name}
+      />
+      <meta
+        key="og:url"
+        property="og:url"
+        content={openGraph?.url ?? config.openGraph.url}
+      ></meta>
+      {openGraph?.locale && (
+        <meta key="og:locale" property="og:locale" content={openGraph.locale} />
+      )}
+      {openGraph?.images?.length
+        ? openGraph.images.map((img, index) => ogImage(img, index))
+        : ogImage(config.openGraph.images[0], 0)}
+      {config.twitter.cardType && (
+        <meta
+          key="twitter:card"
+          name="twitter:card"
+          content={config.twitter.cardType}
+        />
+      )}
+      {config.twitter.site && (
+        <meta
+          key="twitter:site"
+          name="twitter:site"
+          content={config.twitter.site}
+        />
+      )}
+      {config.twitter.handle && (
+        <meta
+          key="twitter:creator"
+          name="twitter:creator"
+          content={config.twitter.handle}
+        />
+      )}
+      <meta key="robots" name="robots" content={robots ?? 'index,follow'} />
+      <meta
+        key="googlebot"
+        name="googlebot"
+        content={robots ?? 'index,follow'}
+      ></meta>
+      {children}
+    </Head>
+  )
+}
+
+export default SEO
diff --git a/site/components/common/SEO/index.ts b/site/components/common/SEO/index.ts
new file mode 100644
index 000000000..e20ec8600
--- /dev/null
+++ b/site/components/common/SEO/index.ts
@@ -0,0 +1 @@
+export { default } from './SEO'
diff --git a/site/components/common/index.ts b/site/components/common/index.ts
index 98dd3394b..054110c75 100644
--- a/site/components/common/index.ts
+++ b/site/components/common/index.ts
@@ -7,3 +7,4 @@ export { default as Searchbar } from './Searchbar'
 export { default as UserNav } from './UserNav'
 export { default as Head } from './Head'
 export { default as I18nWidget } from './I18nWidget'
+export { default as SEO } from './SEO'
diff --git a/site/components/product/ProductView/ProductView.tsx b/site/components/product/ProductView/ProductView.tsx
index b20c85b0a..31cbcd577 100644
--- a/site/components/product/ProductView/ProductView.tsx
+++ b/site/components/product/ProductView/ProductView.tsx
@@ -1,6 +1,5 @@
 import cn from 'clsx'
 import Image from 'next/image'
-import { NextSeo } from 'next-seo'
 import s from './ProductView.module.css'
 import { FC } from 'react'
 import type { Product } from '@commerce/types/product'
@@ -8,6 +7,7 @@ import usePrice from '@framework/product/use-price'
 import { WishlistButton } from '@components/wishlist'
 import { ProductSlider, ProductCard } from '@components/product'
 import { Container, Text } from '@components/ui'
+import { SEO } from '@components/common'
 import ProductSidebar from '../ProductSidebar'
 import ProductTag from '../ProductTag'
 interface ProductViewProps {
@@ -89,7 +89,7 @@ const ProductView: FC<ProductViewProps> = ({ product, relatedProducts }) => {
           </div>
         </section>
       </Container>
-      <NextSeo
+      <SEO
         title={product.name}
         description={product.description}
         openGraph={{
@@ -99,8 +99,8 @@ const ProductView: FC<ProductViewProps> = ({ product, relatedProducts }) => {
           images: [
             {
               url: product.images[0]?.url!,
-              width: 800,
-              height: 600,
+              width: '800',
+              height: '600',
               alt: product.name,
             },
           ],
diff --git a/site/config/seo.json b/site/config/seo_meta.json
similarity index 90%
rename from site/config/seo.json
rename to site/config/seo_meta.json
index 82520cf9b..c9c5fc226 100644
--- a/site/config/seo.json
+++ b/site/config/seo_meta.json
@@ -6,14 +6,13 @@
     "title": "ACME Storefront | Powered by Next.js Commerce",
     "description": "Next.js Commerce - https://www.nextjs.org/commerce",
     "type": "website",
-    "locale": "en_IE",
     "url": "https://nextjs.org/commerce",
     "site_name": "Next.js Commerce",
     "images": [
       {
         "url": "/card.png",
-        "width": 800,
-        "height": 600,
+        "width": "800",
+        "height": "600",
         "alt": "Next.js Commerce"
       }
     ]
diff --git a/site/package.json b/site/package.json
index 7a28e7e7b..f5b38acfd 100644
--- a/site/package.json
+++ b/site/package.json
@@ -34,7 +34,6 @@
     "lodash.random": "^3.2.0",
     "lodash.throttle": "^4.1.1",
     "next": "^12.0.8",
-    "next-seo": "^4.28.1",
     "next-themes": "^0.0.15",
     "postcss": "^8.3.5",
     "postcss-nesting": "^8.0.1",
diff --git a/yarn.lock b/yarn.lock
index 1c1a7fc7b..302dd2402 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4763,11 +4763,6 @@ natural-compare@^1.4.0:
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
-next-seo@^4.28.1:
-  version "4.29.0"
-  resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-4.29.0.tgz#d281e95ba47914117cc99e9e468599f0547d9b9b"
-  integrity sha512-xmwzcz4uHaYJ8glbuhs6FSBQ7z3irmdPYdJJ5saWm72Uy3o+mPKGaPCXQetTCE6/xxVnpoDV4yFtFlEjUcljSg==
-
 next-themes@^0.0.15:
   version "0.0.15"
   resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.0.15.tgz#ab0cee69cd763b77d41211f631e108beab39bf7d"

From 9387178538f35db1c9946543a93c8c936f88098a Mon Sep 17 00:00:00 2001
From: Andrea Barani <andrea.barani@vubai.com>
Date: Fri, 18 Feb 2022 10:40:59 +0100
Subject: [PATCH 7/7] fix(bigcommerce): add limit on product variants (#655)

add explicit limit on product variants field to load more than default
---
 packages/bigcommerce/src/api/fragments/product.ts      | 2 +-
 packages/bigcommerce/src/api/operations/get-product.ts | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/bigcommerce/src/api/fragments/product.ts b/packages/bigcommerce/src/api/fragments/product.ts
index d266b8c92..734e0ab63 100644
--- a/packages/bigcommerce/src/api/fragments/product.ts
+++ b/packages/bigcommerce/src/api/fragments/product.ts
@@ -58,7 +58,7 @@ export const productInfoFragment = /* GraphQL */ `
         }
       }
     }
-    variants {
+    variants(first: 250) {
       edges {
         node {
           entityId
diff --git a/packages/bigcommerce/src/api/operations/get-product.ts b/packages/bigcommerce/src/api/operations/get-product.ts
index b2f9c9677..c7457de2a 100644
--- a/packages/bigcommerce/src/api/operations/get-product.ts
+++ b/packages/bigcommerce/src/api/operations/get-product.ts
@@ -21,7 +21,7 @@ export const getProductQuery = /* GraphQL */ `
           __typename
           ... on Product {
             ...productInfo
-            variants {
+            variants(first: 250) {
               edges {
                 node {
                   entityId