From 80cf8ba3c7e6d862732c66e4b1ddf02d4a387c41 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 12 Sep 2023 14:16:28 +0200 Subject: [PATCH 01/12] feat: pricing modul in products route --- .env.template | 2 +- next.config.js | 5 +- package.json | 5 +- src/app/api/collections/[handle]/old/route.ts | 73 +++++++ src/app/api/collections/[handle]/route.ts | 121 +++++++++--- src/app/api/products/[handle]/route.ts | 95 ++++++--- src/app/api/products/old/route.ts | 115 +++++++++++ src/app/api/products/route.ts | 180 +++++++++--------- src/lib/hooks/use-layout-data.tsx | 1 + src/lib/util/format-variant-prices.ts | 51 +++++ .../components/infinite-products/index.tsx | 6 +- .../components/related-products/index.tsx | 6 +- yarn.lock | 139 ++++++++++---- 13 files changed, 611 insertions(+), 188 deletions(-) create mode 100644 src/app/api/collections/[handle]/old/route.ts create mode 100644 src/app/api/products/old/route.ts create mode 100644 src/lib/util/format-variant-prices.ts diff --git a/.env.template b/.env.template index 143ff64dd..d88cca019 100644 --- a/.env.template +++ b/.env.template @@ -5,7 +5,7 @@ NEXT_PUBLIC_MEDUSA_BACKEND_URL=http://localhost:9000 NEXT_PUBLIC_BASE_URL=http://localhost:8000 # Posgres URL for your Medusa DB for the Product Module. See - https://docs.medusajs.com/modules/products/serverless-module -PRODUCT_POSTGRES_URL=postgres://postgres:postgres@localhost:5432/medusa +POSTGRES_URL=postgres://postgres:postgres@localhost:5432/medusa # Your Stripe public key. See – https://docs.medusajs.com/add-plugins/stripe NEXT_PUBLIC_STRIPE_KEY= diff --git a/next.config.js b/next.config.js index 3d91abd29..17640fc07 100644 --- a/next.config.js +++ b/next.config.js @@ -4,7 +4,10 @@ const store = require("./store.config.json") module.exports = withStoreConfig({ experimental: { serverActions: true, - serverComponentsExternalPackages: ["@medusajs/product"], + serverComponentsExternalPackages: [ + "@medusajs/product", + "@medusajs/modules-sdk", + ], }, features: store.features, reactStrictMode: true, diff --git a/package.json b/package.json index 196324d50..3a8a5541c 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,11 @@ "dependencies": { "@headlessui/react": "^1.6.1", "@hookform/error-message": "^2.0.0", + "@medusajs/link-modules": "^0.1.0", "@medusajs/medusa-js": "^6.0.3", - "@medusajs/product": "^0.1.7", + "@medusajs/modules-sdk": "^1.10.0", + "@medusajs/pricing": "^0.0.2", + "@medusajs/product": "^0.2.0", "@meilisearch/instant-meilisearch": "^0.7.1", "@paypal/paypal-js": "^5.0.6", "@paypal/react-paypal-js": "^7.8.1", diff --git a/src/app/api/collections/[handle]/old/route.ts b/src/app/api/collections/[handle]/old/route.ts new file mode 100644 index 000000000..643985d76 --- /dev/null +++ b/src/app/api/collections/[handle]/old/route.ts @@ -0,0 +1,73 @@ +import { NextRequest, NextResponse } from "next/server" +import { initialize as initializeProductModule } from "@medusajs/product" +import { ProductCollectionDTO } from "@medusajs/types/dist/product" +import { notFound } from "next/navigation" +import getPrices from "@lib/util/get-product-prices" + +/** + * This endpoint uses the serverless Product Module to retrieve a collection and its products by handle. + * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. + * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module + */ +export async function GET( + request: NextRequest, + { params }: { params: Record } +) { + const productService = await initializeProductModule() + + const { handle } = params + + const searchParams = Object.fromEntries(request.nextUrl.searchParams) + const { page, limit, cart_id } = searchParams + + const collections = await productService.listCollections() + + const collectionsByHandle = new Map() + + for (const collection of collections) { + collectionsByHandle.set(collection.handle, collection) + } + + const collection = collectionsByHandle.get(handle) + + if (!collection) { + return notFound() + } + + const count = collection.products?.length || 0 + + const { products, ...collectionMeta } = + await productService.retrieveCollection(collection.id, { + relations: [ + "products", + "products.variants", + "products.variants.options", + "products.tags", + "products.options", + "products.status", + ], + take: parseInt(limit) || 100, + skip: parseInt(page) || 0, + }) + + if (!products) { + return notFound() + } + + const publishedProducts = products.filter( + (product) => product.status === "published" + ) + + const productsWithPrices = await getPrices(publishedProducts, cart_id) + + const nextPage = parseInt(page) + parseInt(limit) + + return NextResponse.json({ + collections: [collectionMeta], + response: { + products: productsWithPrices, + count, + }, + nextPage: count > nextPage ? nextPage : null, + }) +} diff --git a/src/app/api/collections/[handle]/route.ts b/src/app/api/collections/[handle]/route.ts index 643985d76..2c74b97d3 100644 --- a/src/app/api/collections/[handle]/route.ts +++ b/src/app/api/collections/[handle]/route.ts @@ -1,8 +1,9 @@ import { NextRequest, NextResponse } from "next/server" -import { initialize as initializeProductModule } from "@medusajs/product" -import { ProductCollectionDTO } from "@medusajs/types/dist/product" import { notFound } from "next/navigation" -import getPrices from "@lib/util/get-product-prices" + +import { initialize as initializeProductModule } from "@medusajs/product" +import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { ProductCollectionDTO, ProductDTO } from "@medusajs/types/dist/product" /** * This endpoint uses the serverless Product Module to retrieve a collection and its products by handle. @@ -18,7 +19,7 @@ export async function GET( const { handle } = params const searchParams = Object.fromEntries(request.nextUrl.searchParams) - const { page, limit, cart_id } = searchParams + const { page, limit } = searchParams const collections = await productService.listCollections() @@ -34,40 +35,104 @@ export async function GET( return notFound() } - const count = collection.products?.length || 0 - - const { products, ...collectionMeta } = - await productService.retrieveCollection(collection.id, { - relations: [ - "products", - "products.variants", - "products.variants.options", - "products.tags", - "products.options", - "products.status", - ], - take: parseInt(limit) || 100, - skip: parseInt(page) || 0, - }) - - if (!products) { - return notFound() - } + const { + rows: products, + metadata: { count }, + } = await getProductsByCollectionId(collection.id, searchParams) - const publishedProducts = products.filter( + const publishedProducts: ProductDTO[] = products.filter( (product) => product.status === "published" ) - const productsWithPrices = await getPrices(publishedProducts, cart_id) - const nextPage = parseInt(page) + parseInt(limit) return NextResponse.json({ - collections: [collectionMeta], + collections: [collection], response: { - products: productsWithPrices, + products: publishedProducts, count, }, nextPage: count > nextPage ? nextPage : null, }) } + +async function getProductsByCollectionId( + collection_id: string, + params: Record +): Promise<{ rows: ProductDTO[]; metadata: Record }> { + const { query } = await MedusaApp({ + modulesConfig: [ + { + module: Modules.PRODUCT, + path: "@medusajs/product", + }, + { + module: Modules.PRICING, + path: "@medusajs/pricing", + }, + ], + sharedResourcesConfig: { + database: { clientUrl: process.env.POSTGRES_URL }, + }, + }) + + const filters = { + take: parseInt(params.limit) || 100, + skip: parseInt(params.offset) || 0, + filters: { + collection_id: [collection_id], + }, + } + + const productsQuery = `#graphql + query($filters: Record, $take: Int, $skip: Int) { + products(filters: $filters, take: $take, skip: $skip) { + id + title + handle + tags + status + collection + collection_id + thumbnail + images { + url + alt_text + id + } + options { + id + value + title + } + variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { + id + value + title + } + prices { + money_amount { + amount + currency_code + } + } + } + } + }` + + const response = await query(productsQuery, filters) + + return response +} diff --git a/src/app/api/products/[handle]/route.ts b/src/app/api/products/[handle]/route.ts index 99a4e5a33..98eada7f1 100644 --- a/src/app/api/products/[handle]/route.ts +++ b/src/app/api/products/[handle]/route.ts @@ -1,11 +1,10 @@ import { NextResponse, NextRequest } from "next/server" -import getPrices from "@lib/util/get-product-prices" -import { initialize as initializeProductModule } from "@medusajs/product" +import { MedusaApp, Modules } from "@medusajs/modules-sdk" /** - * This endpoint uses the serverless Product Module to retrieve a product by handle. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. + * This endpoint uses the serverless Product and Pricing Modules to retrieve a product by handle. + * The modules connect directly to your Medusa database to retrieve and manipulate data, without the need for a dedicated server. * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module */ export async function GET( @@ -13,30 +12,72 @@ export async function GET( { params }: { params: Record } ) { const { handle } = params - const { cart_id, region_id } = Object.fromEntries( - request.nextUrl.searchParams - ) - const productService = await initializeProductModule() - const data = await productService.list( - { handle }, - { - relations: [ - "variants", - "variants.options", - "tags", - "options", - "options.values", - "images", - "description", - "collection", - "status", - ], - take: 1, - } - ) + const { query } = await MedusaApp({ + modulesConfig: [ + { + module: Modules.PRODUCT, + path: "@medusajs/product", + }, + { + module: Modules.PRICING, + path: "@medusajs/pricing", + }, + ], + sharedResourcesConfig: { + database: { clientUrl: process.env.POSTGRES_URL }, + }, + }) - const productsWithPrices = await getPrices(data, cart_id, region_id) + const productsQuery = `#graphql + query { + products(handle: "${handle}", take: 1) { + id + title + handle + tags + status + collection + collection_id + thumbnail + images { + url + alt_text + id + } + options { + id + value + title + } + variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + prices { + money_amount { + amount + currency_code + } + } + options { + id + value + title + } + } + } + }` - return NextResponse.json({ products: productsWithPrices }) + const products = await query(productsQuery) + + return NextResponse.json({ products }) } diff --git a/src/app/api/products/old/route.ts b/src/app/api/products/old/route.ts new file mode 100644 index 000000000..e1e1138d0 --- /dev/null +++ b/src/app/api/products/old/route.ts @@ -0,0 +1,115 @@ +import { NextResponse, NextRequest } from "next/server" +import getPrices from "@lib/util/get-product-prices" + +import { initialize as initializeProductModule } from "@medusajs/product" +import { + FilterableProductProps, + ProductDTO, +} from "@medusajs/types/dist/product/common" +import { notFound } from "next/navigation" + +/** + * This endpoint uses the serverless Product Module to retrieve a list of products. + * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. + * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module + */ +export async function GET(request: NextRequest) { + const queryParams = Object.fromEntries(request.nextUrl.searchParams) + + const { collection_id } = queryParams + + if (collection_id) { + const response = await getProductsByCollectionId(queryParams) + + if (!response) { + return notFound() + } + + return NextResponse.json(response) + } + + const response = await getProducts(queryParams) + + if (!response) { + return notFound() + } + + return NextResponse.json(response) +} + +async function getProductsByCollectionId(queryParams: Record) { + const productService = await initializeProductModule() + + const { limit, offset, cart_id, collection_id } = queryParams + + const collectionIds = collection_id.split(",") + + const data = await productService.listCollections( + { id: collectionIds }, + { + relations: [ + "products", + "products.variants", + "products.tags", + "products.status", + "products.collection", + ], + } + ) + + const products = data.map((c) => c.products).flat() as ProductDTO[] + + const publishedProducts = filterPublishedProducts(products) + + const count = publishedProducts.length + + const page = publishedProducts.slice( + parseInt(offset), + parseInt(offset) + parseInt(limit) + ) + + const productsWithPrices = await getPrices(page, cart_id) + + const nextPage = parseInt(offset) + parseInt(limit) + + return { + products: productsWithPrices, + count, + nextPage: count > nextPage ? nextPage : null, + } +} + +async function getProducts(params: Record) { + const productService = await initializeProductModule() + + const { id, limit, offset, cart_id } = params + + const filters = {} as FilterableProductProps + + if (id) { + filters.id = id.split(",") + } + + const [data, count] = await productService.listAndCount(filters, { + relations: ["variants", "variants", "tags", "status", "collection"], + take: parseInt(limit) || 100, + skip: parseInt(offset) || 0, + withDeleted: false, + }) + + const publishedProducts = filterPublishedProducts(data) + + const productsWithPrices = await getPrices(publishedProducts, cart_id) + + const nextPage = parseInt(offset) + parseInt(limit) + + return { + products: productsWithPrices, + count, + nextPage: count > nextPage ? nextPage : null, + } +} + +function filterPublishedProducts(products: ProductDTO[]) { + return products.filter((product) => product.status === "published") +} diff --git a/src/app/api/products/route.ts b/src/app/api/products/route.ts index 15206e1ea..3c33febb1 100644 --- a/src/app/api/products/route.ts +++ b/src/app/api/products/route.ts @@ -1,34 +1,12 @@ -import { NextResponse, NextRequest } from "next/server" -import getPrices from "@lib/util/get-product-prices" -import filterProductsByStatus from "@lib/util/filter-products-by-status" - -import { initialize as initializeProductModule } from "@medusajs/product" -import { - FilterableProductProps, - ProductDTO, -} from "@medusajs/types/dist/product/common" +import { NextRequest, NextResponse } from "next/server" import { notFound } from "next/navigation" -/** - * This endpoint uses the serverless Product Module to retrieve a list of products. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. - * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module - */ +import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { formatVariantPrices } from "@lib/util/format-variant-prices" + export async function GET(request: NextRequest) { const queryParams = Object.fromEntries(request.nextUrl.searchParams) - const { collection_id } = queryParams - - if (collection_id) { - const response = await getProductsByCollectionId(queryParams) - - if (!response) { - return notFound() - } - - return NextResponse.json(response) - } - const response = await getProducts(queryParams) if (!response) { @@ -38,74 +16,102 @@ export async function GET(request: NextRequest) { return NextResponse.json(response) } -async function getProductsByCollectionId(queryParams: Record) { - const productService = await initializeProductModule() - - const { limit, offset, cart_id, collection_id } = queryParams - - const collectionIds = collection_id.split(",") - - const data = await productService.listCollections( - { id: collectionIds }, - { - relations: [ - "products", - "products.variants", - "products.tags", - "products.status", - "products.collection", - ], - } - ) - - const products = data.map((c) => c.products).flat() as ProductDTO[] - - const publishedProducts = filterProductsByStatus(products, "published") - - const count = publishedProducts.length - - const page = publishedProducts.slice( - parseInt(offset), - parseInt(offset) + parseInt(limit) - ) - - const productsWithPrices = await getPrices(page, cart_id) - - const nextPage = parseInt(offset) + parseInt(limit) - - return { - products: productsWithPrices, - count, - nextPage: count > nextPage ? nextPage : null, - } -} - async function getProducts(params: Record) { - const productService = await initializeProductModule() - - const { id, limit, offset, cart_id } = params - - const filters = {} as FilterableProductProps - - if (id) { - filters.id = id.split(",") - } - - const [data, count] = await productService.listAndCount(filters, { - relations: ["variants", "variants", "tags", "status", "collection"], - take: parseInt(limit) || 100, - skip: parseInt(offset) || 0, - withDeleted: false, + // Initialize Remote Query with the Product and Pricing Modules + const { query } = await MedusaApp({ + modulesConfig: [ + { + module: Modules.PRODUCT, + path: "@medusajs/product", + }, + { + module: Modules.PRICING, + path: "@medusajs/pricing", + }, + ], + sharedResourcesConfig: { + database: { clientUrl: process.env.POSTGRES_URL }, + }, }) - const publishedProducts = filterProductsByStatus(data, "published") + // Extract the query parameters + const { id, limit, offset, currency_code } = params - const productsWithPrices = await getPrices(publishedProducts, cart_id) + const offsetInt = parseInt(offset), + limitInt = parseInt(limit) - const nextPage = parseInt(offset) + parseInt(limit) + // Set the filters for the query + const filters = { + take: limitInt || 12, + skip: offsetInt || 0, + id: id ? [id] : undefined, + currency_code, + } + // Set the GraphQL query + const productsQuery = `#graphql + query($take: Int, $skip: Int, $withDeleted: bool, $id: [string], $currency_code: string) { + products(take: $take, skip: $skip, withDeleted: $withDeleted, id: $id) { + id + title + handle + tags + status + collection + collection_id + thumbnail + images { + url + alt_text + id + } + options { + id + value + title + } + variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { + id + value + title + } + prices { + money_amount(filters: { currency_code: $currency_code }) { + amount + currency_code + } + } + } + } + }` + + // Run the query + const { + rows, + metadata: { count }, + } = await query(productsQuery, filters) + + // Format the prices + const products = formatVariantPrices(rows) + + // Calculate the next page + const nextPage = offsetInt + limitInt + + // Return the response return { - products: productsWithPrices, + products, count, nextPage: count > nextPage ? nextPage : null, } diff --git a/src/lib/hooks/use-layout-data.tsx b/src/lib/hooks/use-layout-data.tsx index 440e9277f..6af08290c 100644 --- a/src/lib/hooks/use-layout-data.tsx +++ b/src/lib/hooks/use-layout-data.tsx @@ -57,6 +57,7 @@ const fetchFeaturedProducts = async ( limit: 4, cart_id: cartId, region_id: region.id, + currency_code: region.currency_code, }, }) .then((res) => res.response) diff --git a/src/lib/util/format-variant-prices.ts b/src/lib/util/format-variant-prices.ts new file mode 100644 index 000000000..0ee42d9aa --- /dev/null +++ b/src/lib/util/format-variant-prices.ts @@ -0,0 +1,51 @@ +import { + ProductDTO, + ProductVariantDTO, +} from "@medusajs/types/dist/product/common" + +type MoneyAmount = { + money_amount?: { + amount: number + currency_code: string + variant_id: string + money_amount_id: string + id: string + } + id?: string + variant_id?: string + money_amount_id?: string + amount?: number + currency_code?: string +} + +type ProductVariantDTOWithPrices = ProductVariantDTO & { + prices: MoneyAmount[] + calculated_price: number +} + +type ProductDTOWithPrices = Omit & { + variants: ProductVariantDTOWithPrices[] +} +/** + * Formats the price response to match the format of the regular products endpoint + * @param products (array) - An array of products + * @returns products (array) - A formatted array of products + */ +export const formatVariantPrices = (products: ProductDTOWithPrices[]) => { + products.forEach((product) => { + product.variants.forEach((variant) => { + const formattedPrices = variant.prices.map((price) => { + const money_amount = price.money_amount + delete price.money_amount + return { + ...price, + ...money_amount, + } + }) + // todo: implement actual price calculated_price when it's implemented in the pricing module + variant.calculated_price = formattedPrices?.[0]?.amount || 1200 + variant.prices = formattedPrices + }) + }) + return products +} diff --git a/src/modules/products/components/infinite-products/index.tsx b/src/modules/products/components/infinite-products/index.tsx index 3096cb468..7ebe93de7 100644 --- a/src/modules/products/components/infinite-products/index.tsx +++ b/src/modules/products/components/infinite-products/index.tsx @@ -26,13 +26,17 @@ const InfiniteProducts = ({ params }: InfiniteProductsType) => { p.cart_id = cart.id } + if (cart?.region?.currency_code) { + p.currency_code = cart.region.currency_code + } + p.is_giftcard = false return { ...p, ...params, } - }, [cart?.id, params]) + }, [cart?.id, cart?.region, params]) const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } = useInfiniteQuery( diff --git a/src/modules/products/components/related-products/index.tsx b/src/modules/products/components/related-products/index.tsx index abf5ce709..7206f4cf6 100644 --- a/src/modules/products/components/related-products/index.tsx +++ b/src/modules/products/components/related-products/index.tsx @@ -25,6 +25,10 @@ const RelatedProducts = ({ product }: RelatedProductsProps) => { params.cart_id = cart.id } + if (cart?.region?.currency_code) { + params.currency_code = cart.region.currency_code + } + if (product.collection_id) { params.collection_id = [product.collection_id] } @@ -36,7 +40,7 @@ const RelatedProducts = ({ product }: RelatedProductsProps) => { params.is_giftcard = false return params - }, [product, cart?.id]) + }, [product, cart?.id, cart?.region]) const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } = useInfiniteQuery( diff --git a/yarn.lock b/yarn.lock index 5666af4c9..ed5650a3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -525,6 +525,18 @@ resolved "https://registry.yarnpkg.com/@medusajs/client-types/-/client-types-0.2.2.tgz#44142fc0fa5e77450b3b985278df405a33b777f8" integrity sha512-fgQ0+SIoxq3PbOG5U6liNLi1kvgT1TeCDbVQ7QXDhm3auaZ7Fc56VOjafvuIvBPELRazJhqTAEhyYYgo1AbJ9A== +"@medusajs/link-modules@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@medusajs/link-modules/-/link-modules-0.1.0.tgz#5dff7074df7bc59fd00fe48b24bb9a600129a006" + integrity sha512-zytqsxdcbEDeBtD4oD+FHZIOQLJ+ZcYk/ZDkOUrXzrK08sJSK433m41aAJbn21rolXFhDKXdoXljleYoW2nQGw== + dependencies: + "@medusajs/modules-sdk" "^1.10.0" + "@medusajs/types" "^1.11.0" + "@medusajs/utils" "^1.10.0" + "@mikro-orm/core" "5.7.12" + "@mikro-orm/postgresql" "5.7.12" + awilix "^8.0.0" + "@medusajs/medusa-cli@^1.3.16": version "1.3.16" resolved "https://registry.yarnpkg.com/@medusajs/medusa-cli/-/medusa-cli-1.3.16.tgz#849e94d478ba51a4541d37872c169fda1be92cfa" @@ -634,6 +646,19 @@ uuid "^9.0.0" winston "^3.8.2" +"@medusajs/modules-sdk@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.10.0.tgz#11e1ee3702937607f7f7b361c3d6935928c5dd4f" + integrity sha512-UU0zzPTIlFVkGvyphMngW1IS0UU0mtj4itdEVusn052hjykFb9k+lK5QZELC5Z3wHk2DxJR1OWvm/iSTOioS9w== + dependencies: + "@medusajs/orchestration" "^0.3.0" + "@medusajs/types" "^1.11.0" + "@medusajs/utils" "^1.10.0" + awilix "^8.0.0" + knex "2.4.2" + pg "^8.11.2" + resolve-cwd "^3.0.0" + "@medusajs/modules-sdk@^1.8.8": version "1.8.8" resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.8.8.tgz#09272c431db3569ffe91499b3d7cda1bc94df937" @@ -644,33 +669,39 @@ awilix "^8.0.0" resolve-cwd "^3.0.0" -"@medusajs/modules-sdk@^1.9.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.9.2.tgz#a8f1c7d295cacff8e0f93a7807b0accc9575a1ec" - integrity sha512-SH48eElOtv61azf+Ag5yiaB/3u4OIrO/V8QQTl2kvHMoM8dZ8iqmog5nkZFHLFR9afqeV1WYxMblLVHSBmIyiQ== +"@medusajs/orchestration@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.3.0.tgz#9638a81c37b96a4b0f9e80453dbe072d95d471f2" + integrity sha512-W2cU7eHHGmWmfrBaK09HwRhvAsuAAHX0NVK90nuD0f8tqkGPoN8GnAtyUh29wKZEo64FgylF3ax2VstLXCA1xw== dependencies: - "@medusajs/orchestration" "^0.2.0" - "@medusajs/types" "^1.10.2" - "@medusajs/utils" "^1.9.6" + "@medusajs/types" "^1.11.0" + "@medusajs/utils" "^1.10.0" awilix "^8.0.0" - resolve-cwd "^3.0.0" + graphql "^16.6.0" -"@medusajs/orchestration@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.2.0.tgz#fdfc48ef223f95cda775507ea8c8f5596ed1d31e" - integrity sha512-HXPbtT4pznhbVkVL31i0cFV+B4NNcSSfkn3uNw5IjZ2Ze2nwAdB79liK8Lp6WhHR65t4kfYAwihNgRLvDv45qQ== +"@medusajs/pricing@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@medusajs/pricing/-/pricing-0.0.2.tgz#99916d0b54b776264dcb0c8bbc25b1dbfcd8e43a" + integrity sha512-8SKhkZRS15Ai0E0b/wcpjXy6TE2iN0Mzx5jct3NyIKmLoBmkAJM2P5oqcJ4QbiSWElu+Wxm3jtoCymyzvT3QwQ== dependencies: - "@medusajs/utils" "^1.9.6" - graphql "^16.6.0" + "@medusajs/modules-sdk" "^1.10.0" + "@medusajs/types" "^1.11.0" + "@medusajs/utils" "^1.10.0" + "@mikro-orm/core" "5.7.12" + "@mikro-orm/migrations" "5.7.12" + "@mikro-orm/postgresql" "5.7.12" + awilix "^8.0.0" + dotenv "^16.1.4" + knex "2.4.2" -"@medusajs/product@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@medusajs/product/-/product-0.1.7.tgz#cbdc7479db131e824d8e729d7e76859b5b0fdbb2" - integrity sha512-RU9boYXfEmsRjNiJbTBvHQ+eE58Sth+ML+k22tQl5eA0eJrLVjDlOoqJiJMj/wGJUxZcE9UFpjG57f5ISKLadQ== +"@medusajs/product@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@medusajs/product/-/product-0.2.0.tgz#e10a4825e44590dad62f8b18e577d8239f0d4f2d" + integrity sha512-bdn1y3W5TdDceHTXFOlugpUg0nZhO22O0MdtHm9yf/tz9K2AAY6NAe8oPFVVRbo0h5QZFDX84exnr+dtQFmCvQ== dependencies: - "@medusajs/modules-sdk" "^1.9.2" - "@medusajs/types" "^1.10.2" - "@medusajs/utils" "^1.9.7" + "@medusajs/modules-sdk" "^1.10.0" + "@medusajs/types" "^1.11.0" + "@medusajs/utils" "^1.10.0" "@mikro-orm/core" "5.7.12" "@mikro-orm/migrations" "5.7.12" "@mikro-orm/postgresql" "5.7.12" @@ -679,16 +710,28 @@ knex "2.4.2" lodash "^4.17.21" -"@medusajs/types@^1.10.2": - version "1.10.2" - resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.10.2.tgz#2f9e08fe0846e8323f89f62044d9a38e96747cbe" - integrity sha512-p92EBgpr4qQsbiL1ER9awBdmZKweAZAK3Qv3sf38lhySrAhWGysm5CQta97M2dX+AosMKwyzoxjlM38m6Yxm2g== +"@medusajs/types@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.0.tgz#f0619a9c2e8b0d2f7f5abf4574912d7685bda5e3" + integrity sha512-t63hOOroUj/+4BKrdSff9H+SCmEiOszcQSSzWzvLj9uJDSDzFeK7U9CbTv9rf2IA2iurJAu1eN2UoU8dy49Rqw== "@medusajs/types@^1.8.8": version "1.8.8" resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.8.8.tgz#42a0d63df9a70911de9bf5600f9e24745a8efa16" integrity sha512-3ztLgmvcwEkWV8FlF0t4rYfxfd5in4p0HYt0NSRiZTQf9DVr/LEezq1vvMzODUkb3i1/kyrrURZDQMrq5m23gg== +"@medusajs/utils@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.0.tgz#d5036bff4937ea0261c1199091515f2acb896a51" + integrity sha512-s80adEqoy6UG6Mu7jXo4mTaqwAqn8SV/a45CQEnTtabpLkcm9XB7svkX+z4kQ/irKnIwDac5nGZfwCegXM2Bkg== + dependencies: + "@medusajs/types" "^1.11.0" + "@mikro-orm/core" "5.7.12" + "@mikro-orm/migrations" "5.7.12" + "@mikro-orm/postgresql" "5.7.12" + awilix "^8.0.1" + ulid "^2.3.0" + "@medusajs/utils@^1.9.1": version "1.9.1" resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.9.1.tgz#f7a6e8a1abdbc60dcb8d85df696a8a4126e45ef8" @@ -698,22 +741,6 @@ glob "^7.1.6" ulid "^2.3.0" -"@medusajs/utils@^1.9.6": - version "1.9.6" - resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.9.6.tgz#8e20e46d73c041b04cdfd76a4a98a54147bd3a46" - integrity sha512-tgENGCEfsydEjwB2js34LPHvyqq0Fh6gS+rKc/k2Hi8KnWlBii3nqMEVoDiZXW2yFhQsFdyeZIrZ4fSo1kc77g== - dependencies: - awilix "^8.0.1" - ulid "^2.3.0" - -"@medusajs/utils@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.9.7.tgz#0a4593264df30b8072192da1835c902a0f6a24c0" - integrity sha512-vhHWDhQc3CQelunrSTO6boiADCVs85rszTLvxDI8nrsI88NtWFe7Vjqj3K4AKjCkMrFB+jASDMZ6oo6DkMDBvw== - dependencies: - awilix "^8.0.1" - ulid "^2.3.0" - "@meilisearch/instant-meilisearch@^0.7.1": version "0.7.1" resolved "https://registry.yarnpkg.com/@meilisearch/instant-meilisearch/-/instant-meilisearch-0.7.1.tgz#fe1d31325a8d6c48935cab2b20dc4eba4ed24198" @@ -5487,6 +5514,11 @@ pg-cloudflare@^1.1.0: resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz#833d70870d610d14bf9df7afb40e1cba310c17a0" integrity sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA== +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + pg-connection-string@2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" @@ -5502,6 +5534,11 @@ pg-connection-string@^2.6.0: resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.0.tgz#12a36cc4627df19c25cc1b9b736cc39ee1f73ae8" integrity sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg== +pg-connection-string@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" + integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== + pg-god@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/pg-god/-/pg-god-1.0.12.tgz#beaabef33eb4f359718dc64b1524be8370766801" @@ -5524,6 +5561,11 @@ pg-pool@^3.6.0: resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.0.tgz#3190df3e4747a0d23e5e9e8045bcd99bda0a712e" integrity sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ== +pg-pool@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7" + integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og== + pg-protocol@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" @@ -5555,6 +5597,21 @@ pg@8.11.0, pg@^8.11.0, pg@^8.3.0: optionalDependencies: pg-cloudflare "^1.1.0" +pg@^8.11.2: + version "8.11.3" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb" + integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.6.2" + pg-pool "^3.6.1" + pg-protocol "^1.6.0" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + pgpass@1.x: version "1.0.5" resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" From 584c1899be2f093a4880381dc00b1613c706401a Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 14:26:53 +0200 Subject: [PATCH 02/12] feat: add return types and category list to lib/data --- src/lib/data/index.ts | 94 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 8 deletions(-) diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index 7978967d2..c0d614645 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -1,3 +1,4 @@ +import { Product, ProductCategory, ProductCollection } from "@medusajs/product" import medusaRequest from "../medusa-fetch" import { StoreGetProductsParams } from "@medusajs/medusa" @@ -21,7 +22,9 @@ const DEBUG = false * @param handle (string) - The handle of the product to retrieve * @returns (array) - An array of products (should only be one) */ -export async function getProductByHandle(handle: string) { +export async function getProductByHandle( + handle: string +): Promise<{ products: Product[] }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/products/${handle}`) @@ -62,7 +65,10 @@ export async function getProductsList({ }: { pageParam?: number queryParams: StoreGetProductsParams -}) { +}): Promise<{ + response: { products: Product[]; count: number } + nextPage: number +}> { const limit = queryParams.limit || 12 if (PRODUCT_MODULE_ENABLED) { @@ -113,7 +119,9 @@ export async function getProductsList({ * @returns collections (array) - An array of collections * @returns count (number) - The total number of collections */ -export async function getCollectionsList(offset: number = 0) { +export async function getCollectionsList( + offset: number = 0 +): Promise<{ collections: ProductCollection[]; count: number }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { collections, count } = await fetch( @@ -159,7 +167,11 @@ export async function getCollectionsList(offset: number = 0) { * @returns response (object) - An object containing the products and the number of products in the collection * @returns nextPage (number) - The offset of the next page of products */ -export async function getCollectionByHandle(handle: string) { +export async function getCollectionByHandle(handle: string): Promise<{ + collections: ProductCollection[] + response: { products: Product[]; count: number } + nextPage: number +}> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/collections/${handle}`) @@ -197,15 +209,20 @@ export async function getProductsByCollectionHandle({ pageParam = 0, handle, cartId, + currency_code, }: { pageParam?: number handle: string cartId?: string -}) { + currency_code?: string +}): Promise<{ + response: { products: Product[]; count: number } + nextPage: number +}> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( - `${API_BASE_URL}/api/collections/${handle}?cart_id=${cartId}&page=${pageParam.toString()}` + `${API_BASE_URL}/api/collections/${handle}?currency_code=${currency_code}&page=${pageParam.toString()}` ) .then((res) => res.json()) .catch((err) => { @@ -238,6 +255,61 @@ export async function getProductsByCollectionHandle({ } } +/** + * Fetches a list of categories, using the Medusa API or the Medusa Product Module, depending on the feature flag. + * @param offset (number) - The offset of the categories to retrieve (default: 0 + * @param limit (number) - The limit of the categories to retrieve (default: 100) + * @returns product_categories (array) - An array of product_categories + * @returns count (number) - The total number of categories + * @returns nextPage (number) - The offset of the next page of categories + */ +export async function getCategoriesList( + offset: number = 0, + limit?: number +): Promise<{ product_categories: ProductCategory[]; count: number }> { + if (PRODUCT_MODULE_ENABLED) { + DEBUG && console.log("PRODUCT_MODULE_ENABLED") + const { product_categories, count } = await fetch( + `${API_BASE_URL}/api/categories?offset=${offset}&limit=${limit}`, + { + next: { + tags: ["categories"], + }, + } + ) + .then((res) => res.json()) + .catch((err) => { + throw err + }) + + return { + product_categories, + count, + } + } + + DEBUG && console.log("PRODUCT_MODULE_DISABLED") + const { product_categories, count } = await medusaRequest( + "GET", + "/product-categories", + { + query: { + offset, + limit, + }, + } + ) + .then((res) => res.body) + .catch((err) => { + throw err + }) + + return { + product_categories, + count, + } +} + /** * Fetches a category by handle, using the Medusa API or the Medusa Product Module, depending on the feature flag. * @param handle (string) - The handle of the category to retrieve @@ -245,7 +317,10 @@ export async function getProductsByCollectionHandle({ * @returns response (object) - An object containing the products and the number of products in the category * @returns nextPage (number) - The offset of the next page of products */ -export async function getCategoryByHandle(handle: string) { +export async function getCategoryByHandle(handle: string): Promise<{ + product_categories: ProductCategory[] + parent: ProductCategory +}> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/categories/${handle}`) @@ -290,7 +365,10 @@ export async function getProductsByCategoryHandle({ pageParam?: number handle: string cartId?: string -}) { +}): Promise<{ + response: { products: Product[]; count: number } + nextPage: number +}> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( From cc1cc2ebd3d286602a6079f7ecc04886bd461e5b Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 16:55:34 +0200 Subject: [PATCH 03/12] feat: pricing module in categories and collections --- package.json | 8 +- .../loading.tsx | 0 .../{[category] => [...category]}/page.tsx | 29 +-- .../(main)/[category]/[subcategory]/page.tsx | 38 ---- src/app/(main)/[category]/loading.tsx | 5 - src/app/api/categories/[...category]/route.ts | 179 ++++++++++++++++++ .../[category]/[subcategory]/route.ts | 78 -------- src/app/api/categories/[category]/route.ts | 74 -------- src/app/api/categories/route.ts | 4 +- src/app/api/collections/[handle]/old/route.ts | 73 ------- src/app/api/collections/[handle]/route.ts | 47 ++++- src/app/api/products/[handle]/route.ts | 27 ++- src/app/api/products/old/route.ts | 115 ----------- src/app/api/products/route.ts | 101 ++++++---- src/lib/data/index.ts | 37 ++-- src/lib/hooks/use-layout-data.tsx | 2 +- src/lib/util/format-variant-prices.ts | 51 ----- src/modules/categories/templates/index.tsx | 41 ++-- src/modules/collections/templates/index.tsx | 14 +- yarn.lock | 73 +++++-- 20 files changed, 424 insertions(+), 572 deletions(-) rename src/app/(main)/{[category]/[subcategory] => [...category]}/loading.tsx (100%) rename src/app/(main)/{[category] => [...category]}/page.tsx (54%) delete mode 100644 src/app/(main)/[category]/[subcategory]/page.tsx delete mode 100644 src/app/(main)/[category]/loading.tsx create mode 100644 src/app/api/categories/[...category]/route.ts delete mode 100644 src/app/api/categories/[category]/[subcategory]/route.ts delete mode 100644 src/app/api/categories/[category]/route.ts delete mode 100644 src/app/api/collections/[handle]/old/route.ts delete mode 100644 src/app/api/products/old/route.ts delete mode 100644 src/lib/util/format-variant-prices.ts diff --git a/package.json b/package.json index 3a8a5541c..04740cce2 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,11 @@ "dependencies": { "@headlessui/react": "^1.6.1", "@hookform/error-message": "^2.0.0", - "@medusajs/link-modules": "^0.1.0", "@medusajs/medusa-js": "^6.0.3", - "@medusajs/modules-sdk": "^1.10.0", - "@medusajs/pricing": "^0.0.2", - "@medusajs/product": "^0.2.0", + "@medusajs/link-modules": "0.1.1-snapshot-20230913073011", + "@medusajs/modules-sdk": "1.11.0-snapshot-20230913073011", + "@medusajs/pricing": "0.0.3-snapshot-20230913073011", + "@medusajs/product": "latest", "@meilisearch/instant-meilisearch": "^0.7.1", "@paypal/paypal-js": "^5.0.6", "@paypal/react-paypal-js": "^7.8.1", diff --git a/src/app/(main)/[category]/[subcategory]/loading.tsx b/src/app/(main)/[...category]/loading.tsx similarity index 100% rename from src/app/(main)/[category]/[subcategory]/loading.tsx rename to src/app/(main)/[...category]/loading.tsx diff --git a/src/app/(main)/[category]/page.tsx b/src/app/(main)/[...category]/page.tsx similarity index 54% rename from src/app/(main)/[category]/page.tsx rename to src/app/(main)/[...category]/page.tsx index 54e978191..d2f3f7646 100644 --- a/src/app/(main)/[category]/page.tsx +++ b/src/app/(main)/[...category]/page.tsx @@ -4,15 +4,17 @@ import { Metadata } from "next" import { notFound } from "next/navigation" type Props = { - params: { category: string } + params: { category: string[] } } export async function generateMetadata({ params }: Props): Promise { - const { product_categories } = await getCategoryByHandle( - params.category - ).catch((err) => { - notFound() - }) + const handle = params.category.join("/") + + const { product_categories } = await getCategoryByHandle(handle).catch( + (err) => { + notFound() + } + ) const category = product_categories[0] @@ -23,13 +25,12 @@ export async function generateMetadata({ params }: Props): Promise { } export default async function CategoryPage({ params }: Props) { - const { product_categories } = await getCategoryByHandle( - params.category - ).catch((err) => { - notFound() - }) - - const category = product_categories[0] + const handle = params.category.join("/") + const { product_categories } = await getCategoryByHandle(handle).catch( + (err) => { + notFound() + } + ) - return + return } diff --git a/src/app/(main)/[category]/[subcategory]/page.tsx b/src/app/(main)/[category]/[subcategory]/page.tsx deleted file mode 100644 index d9c3a5d88..000000000 --- a/src/app/(main)/[category]/[subcategory]/page.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { getCategoryByHandle } from "@lib/data" -import CategoryTemplate from "@modules/categories/templates" -import { Metadata } from "next" -import { notFound } from "next/navigation" - -type Props = { - params: { - category: string - subcategory: string - } -} - -export async function generateMetadata({ params }: Props): Promise { - const { product_categories } = await getCategoryByHandle( - `${params.category}/${params.subcategory}` - ).catch((err) => { - notFound() - }) - - const category = product_categories[0] - - return { - title: `${category.name} | Acme Store`, - description: `${category.name} category`, - } -} - -export default async function CategoryPage({ params }: Props) { - const { product_categories, parent } = await getCategoryByHandle( - `${params.category}/${params.subcategory}` - ).catch((err) => { - notFound() - }) - - const category = product_categories[0] - - return -} diff --git a/src/app/(main)/[category]/loading.tsx b/src/app/(main)/[category]/loading.tsx deleted file mode 100644 index 9166e2a55..000000000 --- a/src/app/(main)/[category]/loading.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import SkeletonCollectionPage from "@modules/skeletons/templates/skeleton-collection-page" - -export default function Loading() { - return -} diff --git a/src/app/api/categories/[...category]/route.ts b/src/app/api/categories/[...category]/route.ts new file mode 100644 index 000000000..2b63a388f --- /dev/null +++ b/src/app/api/categories/[...category]/route.ts @@ -0,0 +1,179 @@ +import { NextRequest, NextResponse } from "next/server" +import { initialize as initializeProductModule } from "@medusajs/product" +import { ProductDTO } from "@medusajs/types/dist/product" +import { notFound } from "next/navigation" +import { MedusaApp, Modules } from "@medusajs/modules-sdk" + +/** + * This endpoint uses the serverless Product Module to retrieve a category and its products by handle. + * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. + * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module + */ +export async function GET( + request: NextRequest, + { params }: { params: Record } +) { + const productService = await initializeProductModule() + + const searchParams = Object.fromEntries(request.nextUrl.searchParams) + const { page, limit } = searchParams + + let { category: categoryHandle } = params + + const handle = categoryHandle.map((handle: string, index: number) => { + return categoryHandle.slice(0, index + 1).join("/") + }) + + const product_categories = await productService + .listCategories( + { + handle, + }, + { + select: ["id", "handle", "name", "description"], + relations: ["category_children"], + take: handle.length, + } + ) + .catch((e) => { + return notFound() + }) + + const category = product_categories[0] + + if (!category) { + return notFound() + } + + const { + rows: products, + metadata: { count }, + } = await getProductsByCategoryId(category.id, searchParams) + + const publishedProducts: ProductDTO[] = products.filter( + (product) => product.status === "published" + ) + + const nextPage = parseInt(page) + parseInt(limit) + + return NextResponse.json({ + product_categories: Object.values(product_categories), + response: { + products: publishedProducts, + count, + }, + nextPage: count > nextPage ? nextPage : null, + }) +} + +async function getProductsByCategoryId( + category_id: string, + params: Record +): Promise<{ rows: ProductDTO[]; metadata: Record }> { + // Extract the query parameters + let { currency_code } = params + + currency_code = currency_code && currency_code.toUpperCase() + + const { query, modules } = await MedusaApp({ + modulesConfig: [ + { + module: Modules.PRODUCT, + path: "@medusajs/product", + }, + { + module: Modules.PRICING, + path: "@medusajs/pricing", + }, + ], + sharedResourcesConfig: { + database: { clientUrl: process.env.POSTGRES_URL }, + }, + }) + + const filters = { + take: parseInt(params.limit) || 100, + skip: parseInt(params.offset) || 0, + filters: { + category_id: [category_id], + }, + currency_code, + } + + const productsQuery = `#graphql + query($filters: Record, $take: Int, $skip: Int) { + products(filters: $filters, take: $take, skip: $skip) { + id + title + handle + tags + status + collection + collection_id + thumbnail + images { + url + alt_text + id + } + options { + id + value + title + } + variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { + id + value + title + } + price { + price_set { + id + } + } + } + } + }` + + const { rows, metadata } = await query(productsQuery, filters) + + for (const product of rows) { + for (const variant of product.variants) { + const priceSetIds = variant.price.map((price) => price.price_set.id) + + const prices = await modules.pricingService.calculatePrices( + { id: priceSetIds }, + { + context: { currency_code }, + } + ) + + const price = prices.find( + (price) => price.currency_code === currency_code + ) + + if (!price) continue + + delete variant.price + variant.price = price + variant.calculated_price = price.amount + } + } + + return { + rows, + metadata, + } +} diff --git a/src/app/api/categories/[category]/[subcategory]/route.ts b/src/app/api/categories/[category]/[subcategory]/route.ts deleted file mode 100644 index 988301110..000000000 --- a/src/app/api/categories/[category]/[subcategory]/route.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { NextRequest, NextResponse } from "next/server" -import { initialize as initializeProductModule } from "@medusajs/product" -import { ProductCategoryDTO, ProductDTO } from "@medusajs/types/dist/product" -import { notFound } from "next/navigation" -import getPrices from "@lib/util/get-product-prices" -import filterProductsByStatus from "@lib/util/filter-products-by-status" - -type ProductCategoryResponse = ProductCategoryDTO & { - products: ProductDTO[] -} - -/** - * This endpoint uses the serverless Product Module to retrieve a category and its products by handle. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. - * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module - */ -export async function GET( - request: NextRequest, - { params }: { params: Record } -) { - const productService = await initializeProductModule() - - const { category, subcategory } = params - - const searchParams = Object.fromEntries(request.nextUrl.searchParams) - const { offset, limit, cart_id } = searchParams - - const { - [0]: { name: parent_name, handle: parent_handle }, - [1]: { products, ...categoryMeta }, - } = (await productService - .listCategories( - { - handle: [`${category}/${subcategory}`, category], - }, - { - relations: [ - "products", - "products.variants", - "products.variants.options", - "products.tags", - "products.options", - "products.status", - ], - select: ["id", "handle", "name", "description"], - take: 2, - } - ) - .catch((e) => { - return notFound() - })) as ProductCategoryResponse[] - - const publishedProducts = filterProductsByStatus(products, "published") - - const count = publishedProducts.length || 0 - - const offsetInt = parseInt(offset) || 0 - const limitInt = parseFloat(limit) || 12 - - const productsSlice = publishedProducts.slice(offsetInt, offsetInt + limitInt) - - const productsWithPrices = await getPrices(productsSlice, cart_id) - - const nextPage = offsetInt + limitInt - - return NextResponse.json({ - parent: { - name: parent_name, - handle: parent_handle, - }, - product_categories: [categoryMeta], - response: { - products: productsWithPrices, - count, - }, - nextPage: count > nextPage ? nextPage : null, - }) -} diff --git a/src/app/api/categories/[category]/route.ts b/src/app/api/categories/[category]/route.ts deleted file mode 100644 index 2db8c23b8..000000000 --- a/src/app/api/categories/[category]/route.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { NextRequest, NextResponse } from "next/server" -import { initialize as initializeProductModule } from "@medusajs/product" -import { ProductCategoryDTO, ProductDTO } from "@medusajs/types/dist/product" -import { notFound } from "next/navigation" -import getPrices from "@lib/util/get-product-prices" -import filterProductsByStatus from "@lib/util/filter-products-by-status" - -type ProductCategoryResponse = ProductCategoryDTO & { - products: ProductDTO[] -} - -/** - * This endpoint uses the serverless Product Module to retrieve a category and its products by handle. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. - * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module - */ -export async function GET( - request: NextRequest, - { params }: { params: Record } -) { - const productService = await initializeProductModule() - - const { category } = params - - const searchParams = Object.fromEntries(request.nextUrl.searchParams) - const { offset, limit, cart_id } = searchParams - - const { - [0]: { products, ...categoryMeta }, - } = (await productService - .listCategories( - { - handle: category, - }, - { - relations: [ - "products", - "products.variants", - "products.variants.options", - "products.tags", - "products.options", - "products.status", - "category_children", - ], - select: ["id", "handle", "name", "description"], - take: 1, - } - ) - .catch((e) => { - return notFound() - })) as ProductCategoryResponse[] - - const publishedProducts = filterProductsByStatus(products, "published") - - const count = publishedProducts.length || 0 - - const offsetInt = parseInt(offset) || 0 - const limitInt = parseFloat(limit) || 12 - - const productsSlice = publishedProducts.slice(offsetInt, offsetInt + limitInt) - - const productsWithPrices = await getPrices(productsSlice, cart_id) - - const nextPage = offsetInt + limitInt - - return NextResponse.json({ - product_categories: [categoryMeta], - response: { - products: productsWithPrices, - count, - }, - nextPage: count > nextPage ? nextPage : null, - }) -} diff --git a/src/app/api/categories/route.ts b/src/app/api/categories/route.ts index b67f76b6a..96552863a 100644 --- a/src/app/api/categories/route.ts +++ b/src/app/api/categories/route.ts @@ -10,7 +10,7 @@ import { notFound } from "next/navigation" export async function GET(request: NextRequest) { const productService = await initializeProductModule() - const { offset } = Object.fromEntries(request.nextUrl.searchParams) + const { offset, limit } = Object.fromEntries(request.nextUrl.searchParams) const [product_categories, count] = await productService .listAndCountCategories( @@ -19,7 +19,7 @@ export async function GET(request: NextRequest) { select: ["id", "handle", "name", "description", "parent_category"], relations: ["category_children"], skip: parseInt(offset) || 0, - take: 100, + take: parseInt(limit) || 100, } ) .catch((e) => { diff --git a/src/app/api/collections/[handle]/old/route.ts b/src/app/api/collections/[handle]/old/route.ts deleted file mode 100644 index 643985d76..000000000 --- a/src/app/api/collections/[handle]/old/route.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { NextRequest, NextResponse } from "next/server" -import { initialize as initializeProductModule } from "@medusajs/product" -import { ProductCollectionDTO } from "@medusajs/types/dist/product" -import { notFound } from "next/navigation" -import getPrices from "@lib/util/get-product-prices" - -/** - * This endpoint uses the serverless Product Module to retrieve a collection and its products by handle. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. - * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module - */ -export async function GET( - request: NextRequest, - { params }: { params: Record } -) { - const productService = await initializeProductModule() - - const { handle } = params - - const searchParams = Object.fromEntries(request.nextUrl.searchParams) - const { page, limit, cart_id } = searchParams - - const collections = await productService.listCollections() - - const collectionsByHandle = new Map() - - for (const collection of collections) { - collectionsByHandle.set(collection.handle, collection) - } - - const collection = collectionsByHandle.get(handle) - - if (!collection) { - return notFound() - } - - const count = collection.products?.length || 0 - - const { products, ...collectionMeta } = - await productService.retrieveCollection(collection.id, { - relations: [ - "products", - "products.variants", - "products.variants.options", - "products.tags", - "products.options", - "products.status", - ], - take: parseInt(limit) || 100, - skip: parseInt(page) || 0, - }) - - if (!products) { - return notFound() - } - - const publishedProducts = products.filter( - (product) => product.status === "published" - ) - - const productsWithPrices = await getPrices(publishedProducts, cart_id) - - const nextPage = parseInt(page) + parseInt(limit) - - return NextResponse.json({ - collections: [collectionMeta], - response: { - products: productsWithPrices, - count, - }, - nextPage: count > nextPage ? nextPage : null, - }) -} diff --git a/src/app/api/collections/[handle]/route.ts b/src/app/api/collections/[handle]/route.ts index 2c74b97d3..344709b1f 100644 --- a/src/app/api/collections/[handle]/route.ts +++ b/src/app/api/collections/[handle]/route.ts @@ -60,7 +60,12 @@ async function getProductsByCollectionId( collection_id: string, params: Record ): Promise<{ rows: ProductDTO[]; metadata: Record }> { - const { query } = await MedusaApp({ + // Extract the query parameters + let { currency_code } = params + + currency_code = currency_code && currency_code.toUpperCase() + + const { query, modules } = await MedusaApp({ modulesConfig: [ { module: Modules.PRODUCT, @@ -82,6 +87,7 @@ async function getProductsByCollectionId( filters: { collection_id: [collection_id], }, + currency_code, } const productsQuery = `#graphql @@ -122,17 +128,42 @@ async function getProductsByCollectionId( value title } - prices { - money_amount { - amount - currency_code - } + price { + price_set { + id + } } } } }` - const response = await query(productsQuery, filters) + const { rows, metadata } = await query(productsQuery, filters) + + for (const product of rows) { + for (const variant of product.variants) { + const priceSetIds = variant.price.map((price) => price.price_set.id) + + const prices = await modules.pricingService.calculatePrices( + { id: priceSetIds }, + { + context: { currency_code }, + } + ) + + const price = prices.find( + (price) => price.currency_code === currency_code + ) + + if (!price) continue - return response + delete variant.price + variant.price = price + variant.calculated_price = price.amount + } + } + + return { + rows, + metadata, + } } diff --git a/src/app/api/products/[handle]/route.ts b/src/app/api/products/[handle]/route.ts index 98eada7f1..8e2047766 100644 --- a/src/app/api/products/[handle]/route.ts +++ b/src/app/api/products/[handle]/route.ts @@ -11,8 +11,10 @@ export async function GET( request: NextRequest, { params }: { params: Record } ) { + // Extract the query parameters const { handle } = params + // Initialize Remote Query with the Product and Pricing Modules const { query } = await MedusaApp({ modulesConfig: [ { @@ -29,9 +31,16 @@ export async function GET( }, }) + // Set the filters for the query + const filters = { + handle, + take: 1, + } + + // Set the GraphQL query const productsQuery = `#graphql - query { - products(handle: "${handle}", take: 1) { + query($handle: String, $take: Int) { + products(handle: $handle, take: $take) { id title handle @@ -62,12 +71,6 @@ export async function GET( length height width - prices { - money_amount { - amount - currency_code - } - } options { id value @@ -77,7 +80,13 @@ export async function GET( } }` - const products = await query(productsQuery) + // Run the query + const data = await query(productsQuery, filters) + + // Format the response + // const products = formatModuleResponse(data) + const products = data + // Return the response return NextResponse.json({ products }) } diff --git a/src/app/api/products/old/route.ts b/src/app/api/products/old/route.ts deleted file mode 100644 index e1e1138d0..000000000 --- a/src/app/api/products/old/route.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { NextResponse, NextRequest } from "next/server" -import getPrices from "@lib/util/get-product-prices" - -import { initialize as initializeProductModule } from "@medusajs/product" -import { - FilterableProductProps, - ProductDTO, -} from "@medusajs/types/dist/product/common" -import { notFound } from "next/navigation" - -/** - * This endpoint uses the serverless Product Module to retrieve a list of products. - * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. - * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module - */ -export async function GET(request: NextRequest) { - const queryParams = Object.fromEntries(request.nextUrl.searchParams) - - const { collection_id } = queryParams - - if (collection_id) { - const response = await getProductsByCollectionId(queryParams) - - if (!response) { - return notFound() - } - - return NextResponse.json(response) - } - - const response = await getProducts(queryParams) - - if (!response) { - return notFound() - } - - return NextResponse.json(response) -} - -async function getProductsByCollectionId(queryParams: Record) { - const productService = await initializeProductModule() - - const { limit, offset, cart_id, collection_id } = queryParams - - const collectionIds = collection_id.split(",") - - const data = await productService.listCollections( - { id: collectionIds }, - { - relations: [ - "products", - "products.variants", - "products.tags", - "products.status", - "products.collection", - ], - } - ) - - const products = data.map((c) => c.products).flat() as ProductDTO[] - - const publishedProducts = filterPublishedProducts(products) - - const count = publishedProducts.length - - const page = publishedProducts.slice( - parseInt(offset), - parseInt(offset) + parseInt(limit) - ) - - const productsWithPrices = await getPrices(page, cart_id) - - const nextPage = parseInt(offset) + parseInt(limit) - - return { - products: productsWithPrices, - count, - nextPage: count > nextPage ? nextPage : null, - } -} - -async function getProducts(params: Record) { - const productService = await initializeProductModule() - - const { id, limit, offset, cart_id } = params - - const filters = {} as FilterableProductProps - - if (id) { - filters.id = id.split(",") - } - - const [data, count] = await productService.listAndCount(filters, { - relations: ["variants", "variants", "tags", "status", "collection"], - take: parseInt(limit) || 100, - skip: parseInt(offset) || 0, - withDeleted: false, - }) - - const publishedProducts = filterPublishedProducts(data) - - const productsWithPrices = await getPrices(publishedProducts, cart_id) - - const nextPage = parseInt(offset) + parseInt(limit) - - return { - products: productsWithPrices, - count, - nextPage: count > nextPage ? nextPage : null, - } -} - -function filterPublishedProducts(products: ProductDTO[]) { - return products.filter((product) => product.status === "published") -} diff --git a/src/app/api/products/route.ts b/src/app/api/products/route.ts index 3c33febb1..eaa24c7ed 100644 --- a/src/app/api/products/route.ts +++ b/src/app/api/products/route.ts @@ -2,8 +2,12 @@ import { NextRequest, NextResponse } from "next/server" import { notFound } from "next/navigation" import { MedusaApp, Modules } from "@medusajs/modules-sdk" -import { formatVariantPrices } from "@lib/util/format-variant-prices" +/** + * This endpoint uses the serverless Product and Pricing Modules to retrieve a product list. + * The modules connect directly to your Medusa database to retrieve and manipulate data, without the need for a dedicated server. + * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module + */ export async function GET(request: NextRequest) { const queryParams = Object.fromEntries(request.nextUrl.searchParams) @@ -17,41 +21,48 @@ export async function GET(request: NextRequest) { } async function getProducts(params: Record) { - // Initialize Remote Query with the Product and Pricing Modules - const { query } = await MedusaApp({ - modulesConfig: [ - { - module: Modules.PRODUCT, - path: "@medusajs/product", - }, - { - module: Modules.PRICING, - path: "@medusajs/pricing", - }, - ], - sharedResourcesConfig: { - database: { clientUrl: process.env.POSTGRES_URL }, + // Extract the query parameters + let { id, limit, offset, currency_code } = params + + offset = offset && parseInt(offset) + limit = limit && parseInt(limit) + currency_code = currency_code && currency_code.toUpperCase() + + // configure the modules for Remote Query + const modulesConfig = [ + { + module: Modules.PRODUCT, + path: "@medusajs/product", }, - }) + { + module: Modules.PRICING, + path: "@medusajs/pricing", + }, + ] - // Extract the query parameters - const { id, limit, offset, currency_code } = params + // configure the shared resources for Remote Query + const sharedResourcesConfig = { + database: { clientUrl: process.env.POSTGRES_URL }, + } - const offsetInt = parseInt(offset), - limitInt = parseInt(limit) + // Initialize Remote Query with the Product and Pricing Modules + const { query, modules } = await MedusaApp({ + modulesConfig, + sharedResourcesConfig, + }) // Set the filters for the query const filters = { - take: limitInt || 12, - skip: offsetInt || 0, + take: limit || 12, + skip: offset || 0, id: id ? [id] : undefined, - currency_code, + context: { currency_code }, } // Set the GraphQL query const productsQuery = `#graphql - query($take: Int, $skip: Int, $withDeleted: bool, $id: [string], $currency_code: string) { - products(take: $take, skip: $skip, withDeleted: $withDeleted, id: $id) { + query($filters: Record, $id: String, $take: Int, $skip: Int) { + products(filters: $filters, id: $id, take: $take, skip: $skip) { id title handle @@ -87,32 +98,50 @@ async function getProducts(params: Record) { value title } - prices { - money_amount(filters: { currency_code: $currency_code }) { - amount - currency_code - } + price { + price_set { + id + } } } } }` - // Run the query const { - rows, + rows: products, metadata: { count }, } = await query(productsQuery, filters) - // Format the prices - const products = formatVariantPrices(rows) + for (const product of products) { + for (const variant of product.variants) { + const priceSetIds = variant.price.map((price) => price.price_set.id) + + const prices = await modules.pricingService.calculatePrices( + { id: priceSetIds }, + { + context: { currency_code }, + } + ) + + const price = prices.find( + (price) => price.currency_code === currency_code + ) + + if (!price) continue + + delete variant.price + variant.price = price + variant.calculated_price = price.amount + } + } // Calculate the next page - const nextPage = offsetInt + limitInt + const nextPage = offset + limit // Return the response return { products, - count, + count: count, nextPage: count > nextPage ? nextPage : null, } } diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index c0d614645..c4d1049cd 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -1,6 +1,14 @@ -import { Product, ProductCategory, ProductCollection } from "@medusajs/product" +import { Product, ProductCategory, ProductCollection } from "@medusajs/medusa" import medusaRequest from "../medusa-fetch" import { StoreGetProductsParams } from "@medusajs/medusa" +import { PricedProduct } from "@medusajs/medusa/dist/types/pricing" + +export type ProductCategoryWithChildren = Omit< + ProductCategory, + "category_children" +> & { + category_children: ProductCategory[] +} /** * This file contains functions for fetching products and collections from the Medusa API or the Medusa Product Module, @@ -24,7 +32,7 @@ const DEBUG = false */ export async function getProductByHandle( handle: string -): Promise<{ products: Product[] }> { +): Promise<{ products: PricedProduct[] }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/products/${handle}`) @@ -66,7 +74,7 @@ export async function getProductsList({ pageParam?: number queryParams: StoreGetProductsParams }): Promise<{ - response: { products: Product[]; count: number } + response: { products: PricedProduct[]; count: number } nextPage: number }> { const limit = queryParams.limit || 12 @@ -209,20 +217,20 @@ export async function getProductsByCollectionHandle({ pageParam = 0, handle, cartId, - currency_code, + currencyCode, }: { pageParam?: number handle: string cartId?: string - currency_code?: string + currencyCode?: string }): Promise<{ - response: { products: Product[]; count: number } + response: { products: PricedProduct[]; count: number } nextPage: number }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( - `${API_BASE_URL}/api/collections/${handle}?currency_code=${currency_code}&page=${pageParam.toString()}` + `${API_BASE_URL}/api/collections/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}` ) .then((res) => res.json()) .catch((err) => { @@ -266,7 +274,10 @@ export async function getProductsByCollectionHandle({ export async function getCategoriesList( offset: number = 0, limit?: number -): Promise<{ product_categories: ProductCategory[]; count: number }> { +): Promise<{ + product_categories: ProductCategoryWithChildren[] + count: number +}> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { product_categories, count } = await fetch( @@ -318,8 +329,8 @@ export async function getCategoriesList( * @returns nextPage (number) - The offset of the next page of products */ export async function getCategoryByHandle(handle: string): Promise<{ - product_categories: ProductCategory[] - parent: ProductCategory + product_categories: ProductCategoryWithChildren[] + parent: ProductCategoryWithChildren }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") @@ -361,18 +372,20 @@ export async function getProductsByCategoryHandle({ pageParam = 0, handle, cartId, + currencyCode, }: { pageParam?: number handle: string cartId?: string + currencyCode?: string }): Promise<{ - response: { products: Product[]; count: number } + response: { products: PricedProduct[]; count: number } nextPage: number }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( - `${API_BASE_URL}/api/categories/${handle}?cart_id=${cartId}&page=${pageParam.toString()}` + `${API_BASE_URL}/api/categories/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}` ) .then((res) => res.json()) .catch((err) => { diff --git a/src/lib/hooks/use-layout-data.tsx b/src/lib/hooks/use-layout-data.tsx index 6af08290c..e53898535 100644 --- a/src/lib/hooks/use-layout-data.tsx +++ b/src/lib/hooks/use-layout-data.tsx @@ -52,7 +52,7 @@ const fetchFeaturedProducts = async ( region: Region ): Promise => { const products: PricedProduct[] = await getProductsList({ - pageParam: 4, + pageParam: 0, queryParams: { limit: 4, cart_id: cartId, diff --git a/src/lib/util/format-variant-prices.ts b/src/lib/util/format-variant-prices.ts deleted file mode 100644 index 0ee42d9aa..000000000 --- a/src/lib/util/format-variant-prices.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - ProductDTO, - ProductVariantDTO, -} from "@medusajs/types/dist/product/common" - -type MoneyAmount = { - money_amount?: { - amount: number - currency_code: string - variant_id: string - money_amount_id: string - id: string - } - id?: string - variant_id?: string - money_amount_id?: string - amount?: number - currency_code?: string -} - -type ProductVariantDTOWithPrices = ProductVariantDTO & { - prices: MoneyAmount[] - calculated_price: number -} - -type ProductDTOWithPrices = Omit & { - variants: ProductVariantDTOWithPrices[] -} -/** - * Formats the price response to match the format of the regular products endpoint - * @param products (array) - An array of products - * @returns products (array) - A formatted array of products - */ -export const formatVariantPrices = (products: ProductDTOWithPrices[]) => { - products.forEach((product) => { - product.variants.forEach((variant) => { - const formattedPrices = variant.prices.map((price) => { - const money_amount = price.money_amount - delete price.money_amount - return { - ...price, - ...money_amount, - } - }) - // todo: implement actual price calculated_price when it's implemented in the pricing module - variant.calculated_price = formattedPrices?.[0]?.amount || 1200 - variant.prices = formattedPrices - }) - }) - return products -} diff --git a/src/modules/categories/templates/index.tsx b/src/modules/categories/templates/index.tsx index 6bc31fdf3..acc4549ba 100644 --- a/src/modules/categories/templates/index.tsx +++ b/src/modules/categories/templates/index.tsx @@ -1,7 +1,10 @@ "use client" import usePreviews from "@lib/hooks/use-previews" -import { getProductsByCategoryHandle } from "@lib/data" +import { + ProductCategoryWithChildren, + getProductsByCategoryHandle, +} from "@lib/data" import getNumberOfSkeletons from "@lib/util/get-number-of-skeletons" import repeat from "@lib/util/repeat" import ProductPreview from "@modules/products/components/product-preview" @@ -14,30 +17,16 @@ import Link from "next/link" import UnderlineLink from "@modules/common/components/underline-link" type CategoryTemplateProps = { - category: { - handle: string - name: string - id: string - description?: string - category_children?: { - name: string - handle: string - id: string - }[] - } - parent?: { - handle: string - name: string - } + categories: ProductCategoryWithChildren[] } -const CategoryTemplate: React.FC = ({ - category, - parent, -}) => { +const CategoryTemplate: React.FC = ({ categories }) => { const { cart } = useCart() const { ref, inView } = useInView() + const category = categories[categories.length - 1] + const parents = categories.slice(0, categories.length - 1) + const { data: infiniteData, hasNextPage, @@ -49,8 +38,9 @@ const CategoryTemplate: React.FC = ({ ({ pageParam }) => getProductsByCategoryHandle({ pageParam, - handle: category.handle, + handle: category.handle!, cartId: cart?.id, + currencyCode: cart?.region?.currency_code, }), { getNextPageParam: (lastPage) => lastPage.nextPage, @@ -78,9 +68,9 @@ const CategoryTemplate: React.FC = ({ return (
- {parent && ( - <> - + {parents && + parents.map((parent) => ( + = ({ / - - )} + ))}

{category.name}

{category.description && ( diff --git a/src/modules/collections/templates/index.tsx b/src/modules/collections/templates/index.tsx index d7d267f64..a1c13f34f 100644 --- a/src/modules/collections/templates/index.tsx +++ b/src/modules/collections/templates/index.tsx @@ -10,16 +10,9 @@ import { useInfiniteQuery } from "@tanstack/react-query" import { useCart } from "medusa-react" import React, { useEffect } from "react" import { useInView } from "react-intersection-observer" +import { ProductCollection } from "@medusajs/product" -type CollectionTemplateProps = { - collection: { - handle: string - title: string - id: string - } -} - -const CollectionTemplate: React.FC = ({ +const CollectionTemplate: React.FC<{ collection: ProductCollection }> = ({ collection, }) => { const { cart } = useCart() @@ -36,8 +29,9 @@ const CollectionTemplate: React.FC = ({ ({ pageParam }) => getProductsByCollectionHandle({ pageParam, - handle: collection.handle, + handle: collection.handle!, cartId: cart?.id, + currencyCode: cart?.region.currency_code, }), { getNextPageParam: (lastPage) => lastPage.nextPage, diff --git a/yarn.lock b/yarn.lock index ed5650a3f..b3e981aff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -525,14 +525,14 @@ resolved "https://registry.yarnpkg.com/@medusajs/client-types/-/client-types-0.2.2.tgz#44142fc0fa5e77450b3b985278df405a33b777f8" integrity sha512-fgQ0+SIoxq3PbOG5U6liNLi1kvgT1TeCDbVQ7QXDhm3auaZ7Fc56VOjafvuIvBPELRazJhqTAEhyYYgo1AbJ9A== -"@medusajs/link-modules@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@medusajs/link-modules/-/link-modules-0.1.0.tgz#5dff7074df7bc59fd00fe48b24bb9a600129a006" - integrity sha512-zytqsxdcbEDeBtD4oD+FHZIOQLJ+ZcYk/ZDkOUrXzrK08sJSK433m41aAJbn21rolXFhDKXdoXljleYoW2nQGw== - dependencies: - "@medusajs/modules-sdk" "^1.10.0" - "@medusajs/types" "^1.11.0" - "@medusajs/utils" "^1.10.0" +"@medusajs/link-modules@0.1.1-snapshot-20230913073011": + version "0.1.1-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/link-modules/-/link-modules-0.1.1-snapshot-20230913073011.tgz#7758ce577f72f067e63dc8ea247080f3e0f9cb18" + integrity sha512-GvIBI03XiEQnHzr/cSCYJjxSvF2I2z7geRS6S52CQt4KfSJVnZ14MVD0yx5hKLQZTkThP7hI6fI52qork7NW2Q== + dependencies: + "@medusajs/modules-sdk" "1.11.0-snapshot-20230913073011" + "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@medusajs/utils" "1.10.1-snapshot-20230913073011" "@mikro-orm/core" "5.7.12" "@mikro-orm/postgresql" "5.7.12" awilix "^8.0.0" @@ -646,6 +646,19 @@ uuid "^9.0.0" winston "^3.8.2" +"@medusajs/modules-sdk@1.11.0-snapshot-20230913073011": + version "1.11.0-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.11.0-snapshot-20230913073011.tgz#1082f36327f81e1411e2ab66524c04543fd3635d" + integrity sha512-UXZ35eIiMs4D+lrEzItE6JDWDgGQ0QdUwYrqpvnp8aGrBY9W3z36Fb1rLdkM9RvriuOKivgm/8HMwOpOX7xo7w== + dependencies: + "@medusajs/orchestration" "0.4.0-snapshot-20230913073011" + "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@medusajs/utils" "1.10.1-snapshot-20230913073011" + awilix "^8.0.0" + knex "2.4.2" + pg "^8.11.2" + resolve-cwd "^3.0.0" + "@medusajs/modules-sdk@^1.10.0": version "1.10.0" resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.10.0.tgz#11e1ee3702937607f7f7b361c3d6935928c5dd4f" @@ -669,6 +682,16 @@ awilix "^8.0.0" resolve-cwd "^3.0.0" +"@medusajs/orchestration@0.4.0-snapshot-20230913073011": + version "0.4.0-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.4.0-snapshot-20230913073011.tgz#ada5bfbd44056381d06d35d5aecf66fef9d6b283" + integrity sha512-epoJwhfoc+qyd1V5RB2dRfVkwwtlyrLpLjxvoRXE0bHwiEoq/FbL3ipVvKJpiEUMM6HcrBidqExHAm5OWbSHjg== + dependencies: + "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@medusajs/utils" "1.10.1-snapshot-20230913073011" + awilix "^8.0.0" + graphql "^16.6.0" + "@medusajs/orchestration@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.3.0.tgz#9638a81c37b96a4b0f9e80453dbe072d95d471f2" @@ -679,14 +702,14 @@ awilix "^8.0.0" graphql "^16.6.0" -"@medusajs/pricing@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@medusajs/pricing/-/pricing-0.0.2.tgz#99916d0b54b776264dcb0c8bbc25b1dbfcd8e43a" - integrity sha512-8SKhkZRS15Ai0E0b/wcpjXy6TE2iN0Mzx5jct3NyIKmLoBmkAJM2P5oqcJ4QbiSWElu+Wxm3jtoCymyzvT3QwQ== +"@medusajs/pricing@0.0.3-snapshot-20230913073011": + version "0.0.3-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/pricing/-/pricing-0.0.3-snapshot-20230913073011.tgz#dd6388fb18ecec39727081085fb2365142d6527d" + integrity sha512-ipIdAjlqV4aPb8+/zxJzgwA1gxDz4540K1+hYIuvIW0Ya6NPgL3P1L76CdesvkqpDcBTFVZ6nS8Z/r9/crUomg== dependencies: - "@medusajs/modules-sdk" "^1.10.0" - "@medusajs/types" "^1.11.0" - "@medusajs/utils" "^1.10.0" + "@medusajs/modules-sdk" "1.11.0-snapshot-20230913073011" + "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@medusajs/utils" "1.10.1-snapshot-20230913073011" "@mikro-orm/core" "5.7.12" "@mikro-orm/migrations" "5.7.12" "@mikro-orm/postgresql" "5.7.12" @@ -694,7 +717,7 @@ dotenv "^16.1.4" knex "2.4.2" -"@medusajs/product@^0.2.0": +"@medusajs/product@latest": version "0.2.0" resolved "https://registry.yarnpkg.com/@medusajs/product/-/product-0.2.0.tgz#e10a4825e44590dad62f8b18e577d8239f0d4f2d" integrity sha512-bdn1y3W5TdDceHTXFOlugpUg0nZhO22O0MdtHm9yf/tz9K2AAY6NAe8oPFVVRbo0h5QZFDX84exnr+dtQFmCvQ== @@ -710,6 +733,11 @@ knex "2.4.2" lodash "^4.17.21" +"@medusajs/types@1.11.1-snapshot-20230913073011": + version "1.11.1-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.1-snapshot-20230913073011.tgz#3547068a70fd757e94544ed5072eff2a029f33dd" + integrity sha512-3JQstGsQqpCgmCkqTmc9tIMrY55rq7iQ+0LNHT/dJVaJIBH9ov0SglQa/2ec0XkwJTH4cK7QmM1d89ecF5yroA== + "@medusajs/types@^1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.0.tgz#f0619a9c2e8b0d2f7f5abf4574912d7685bda5e3" @@ -720,6 +748,19 @@ resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.8.8.tgz#42a0d63df9a70911de9bf5600f9e24745a8efa16" integrity sha512-3ztLgmvcwEkWV8FlF0t4rYfxfd5in4p0HYt0NSRiZTQf9DVr/LEezq1vvMzODUkb3i1/kyrrURZDQMrq5m23gg== +"@medusajs/utils@1.10.1-snapshot-20230913073011": + version "1.10.1-snapshot-20230913073011" + resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.1-snapshot-20230913073011.tgz#c780bc132725ac158db4da3e560e1532d69001ff" + integrity sha512-7Y/DqlVhNEFbw4Z37Jnk/ZEM/mRY+lmNmlyf4YpIt9S62ApQxIVCaFtBX3ZfT7ij3dUvKCK/vwqhbEp2Ktt3IA== + dependencies: + "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@mikro-orm/core" "5.7.12" + "@mikro-orm/migrations" "5.7.12" + "@mikro-orm/postgresql" "5.7.12" + awilix "^8.0.1" + knex "2.4.2" + ulid "^2.3.0" + "@medusajs/utils@^1.10.0": version "1.10.0" resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.0.tgz#d5036bff4937ea0261c1199091515f2acb896a51" From a917741945c131571261d606ec0342ef45cdc96b Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 17:31:30 +0200 Subject: [PATCH 04/12] feat: update api call for new category structure --- src/app/(main)/[...category]/page.tsx | 23 ++++++++--------- src/lib/data/index.ts | 37 +++++++++++++++++---------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/app/(main)/[...category]/page.tsx b/src/app/(main)/[...category]/page.tsx index d2f3f7646..79dadac7e 100644 --- a/src/app/(main)/[...category]/page.tsx +++ b/src/app/(main)/[...category]/page.tsx @@ -8,13 +8,11 @@ type Props = { } export async function generateMetadata({ params }: Props): Promise { - const handle = params.category.join("/") - - const { product_categories } = await getCategoryByHandle(handle).catch( - (err) => { - notFound() - } - ) + const { product_categories } = await getCategoryByHandle( + params.category + ).catch((err) => { + notFound() + }) const category = product_categories[0] @@ -25,12 +23,11 @@ export async function generateMetadata({ params }: Props): Promise { } export default async function CategoryPage({ params }: Props) { - const handle = params.category.join("/") - const { product_categories } = await getCategoryByHandle(handle).catch( - (err) => { - notFound() - } - ) + const { product_categories } = await getCategoryByHandle( + params.category + ).catch((err) => { + notFound() + }) return } diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index c4d1049cd..aa81c52fa 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -323,18 +323,17 @@ export async function getCategoriesList( /** * Fetches a category by handle, using the Medusa API or the Medusa Product Module, depending on the feature flag. - * @param handle (string) - The handle of the category to retrieve + * @param categoryHandle (string) - The handle of the category to retrieve * @returns collections (array) - An array of categories (should only be one) * @returns response (object) - An object containing the products and the number of products in the category * @returns nextPage (number) - The offset of the next page of products */ -export async function getCategoryByHandle(handle: string): Promise<{ +export async function getCategoryByHandle(categoryHandle: string[]): Promise<{ product_categories: ProductCategoryWithChildren[] - parent: ProductCategoryWithChildren }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") - const data = await fetch(`${API_BASE_URL}/api/categories/${handle}`) + const data = await fetch(`${API_BASE_URL}/api/categories/${categoryHandle}`) .then((res) => res.json()) .catch((err) => { throw err @@ -344,19 +343,29 @@ export async function getCategoryByHandle(handle: string): Promise<{ } DEBUG && console.log("PRODUCT_MODULE_DISABLED") - const data = await medusaRequest("GET", "/product-categories", { - query: { - handle, - }, + + const handles = categoryHandle.map((handle: string, index: number) => { + return categoryHandle.slice(0, index + 1).join("/") }) - .then((res) => res.body) - .catch((err) => { - throw err + + const product_categories = [] as ProductCategoryWithChildren[] + + for (const handle of handles) { + await medusaRequest("GET", "/product-categories", { + query: { + handle, + }, }) + .then(({ body }) => { + product_categories.push(body.product_categories[0]) + }) + .catch((err) => { + throw err + }) + } return { - product_categories: data.product_categories, - parent: data.product_categories[0].parent_category, + product_categories, } } @@ -399,7 +408,7 @@ export async function getProductsByCategoryHandle({ } DEBUG && console.log("PRODUCT_MODULE_DISABLED") - const { id } = await getCategoryByHandle(handle).then( + const { id } = await getCategoryByHandle([handle]).then( (res) => res.product_categories[0] ) From 13baa494b300393d366bca60d3c6ee76a728ebd9 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 17:50:52 +0200 Subject: [PATCH 05/12] fix: satisfy the almighty typescript --- src/app/api/collections/route.ts | 18 +++++++++++------- src/lib/data/index.ts | 8 ++++++-- src/modules/collections/templates/index.tsx | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/app/api/collections/route.ts b/src/app/api/collections/route.ts index 3f46b5d14..2f1a42310 100644 --- a/src/app/api/collections/route.ts +++ b/src/app/api/collections/route.ts @@ -12,13 +12,17 @@ export async function GET(request: NextRequest) { const { offset } = Object.fromEntries(request.nextUrl.searchParams) - const [collections, count] = await productService.listAndCountCollections( - {}, - { - skip: parseInt(offset) || 0, - take: 100, - } - ) + const [collections, count] = await productService + .listAndCountCollections( + {}, + { + skip: parseInt(offset) || 0, + take: 100, + } + ) + .catch((e) => { + return notFound() + }) return NextResponse.json({ collections, diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index aa81c52fa..5d12b8603 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -1,6 +1,10 @@ -import { Product, ProductCategory, ProductCollection } from "@medusajs/medusa" import medusaRequest from "../medusa-fetch" -import { StoreGetProductsParams } from "@medusajs/medusa" +import { + StoreGetProductsParams, + Product, + ProductCategory, + ProductCollection, +} from "@medusajs/medusa" import { PricedProduct } from "@medusajs/medusa/dist/types/pricing" export type ProductCategoryWithChildren = Omit< diff --git a/src/modules/collections/templates/index.tsx b/src/modules/collections/templates/index.tsx index a1c13f34f..ef7390e52 100644 --- a/src/modules/collections/templates/index.tsx +++ b/src/modules/collections/templates/index.tsx @@ -10,7 +10,7 @@ import { useInfiniteQuery } from "@tanstack/react-query" import { useCart } from "medusa-react" import React, { useEffect } from "react" import { useInView } from "react-intersection-observer" -import { ProductCollection } from "@medusajs/product" +import { ProductCollection } from "@medusajs/medusa" const CollectionTemplate: React.FC<{ collection: ProductCollection }> = ({ collection, From 06b3a0e7c8b621b11edd95a41afe6c1e36a20398 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 18:01:25 +0200 Subject: [PATCH 06/12] fix: cleanups --- .../{[...category] => [...handle]}/route.ts | 8 +++---- src/lib/data/index.ts | 22 ++++++++++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) rename src/app/api/categories/{[...category] => [...handle]}/route.ts (97%) diff --git a/src/app/api/categories/[...category]/route.ts b/src/app/api/categories/[...handle]/route.ts similarity index 97% rename from src/app/api/categories/[...category]/route.ts rename to src/app/api/categories/[...handle]/route.ts index 2b63a388f..92e81aabd 100644 --- a/src/app/api/categories/[...category]/route.ts +++ b/src/app/api/categories/[...handle]/route.ts @@ -18,11 +18,11 @@ export async function GET( const searchParams = Object.fromEntries(request.nextUrl.searchParams) const { page, limit } = searchParams - let { category: categoryHandle } = params + let { handle: categoryHandle } = params - const handle = categoryHandle.map((handle: string, index: number) => { - return categoryHandle.slice(0, index + 1).join("/") - }) + const handle = categoryHandle.map((handle: string, index: number) => + categoryHandle.slice(0, index + 1).join("/") + ) const product_categories = await productService .listCategories( diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index 5d12b8603..23114def5 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -337,7 +337,14 @@ export async function getCategoryByHandle(categoryHandle: string[]): Promise<{ }> { if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") - const data = await fetch(`${API_BASE_URL}/api/categories/${categoryHandle}`) + const data = await fetch( + `${API_BASE_URL}/api/categories/${categoryHandle}`, + { + next: { + tags: ["categories"], + }, + } + ) .then((res) => res.json()) .catch((err) => { throw err @@ -348,9 +355,9 @@ export async function getCategoryByHandle(categoryHandle: string[]): Promise<{ DEBUG && console.log("PRODUCT_MODULE_DISABLED") - const handles = categoryHandle.map((handle: string, index: number) => { - return categoryHandle.slice(0, index + 1).join("/") - }) + const handles = categoryHandle.map((handle: string, index: number) => + categoryHandle.slice(0, index + 1).join("/") + ) const product_categories = [] as ProductCategoryWithChildren[] @@ -398,7 +405,12 @@ export async function getProductsByCategoryHandle({ if (PRODUCT_MODULE_ENABLED) { DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( - `${API_BASE_URL}/api/categories/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}` + `${API_BASE_URL}/api/categories/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}`, + { + next: { + tags: ["categories"], + }, + } ) .then((res) => res.json()) .catch((err) => { From d9d7c860397c861bff0be5f3032920f663c3a0b4 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Thu, 14 Sep 2023 18:14:44 +0200 Subject: [PATCH 07/12] refactor: product handle route --- src/app/api/products/[handle]/route.ts | 94 ++++++-------------------- 1 file changed, 21 insertions(+), 73 deletions(-) diff --git a/src/app/api/products/[handle]/route.ts b/src/app/api/products/[handle]/route.ts index 8e2047766..fa2ac16ca 100644 --- a/src/app/api/products/[handle]/route.ts +++ b/src/app/api/products/[handle]/route.ts @@ -1,9 +1,8 @@ import { NextResponse, NextRequest } from "next/server" - -import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { initialize as initializeProductModule } from "@medusajs/product" /** - * This endpoint uses the serverless Product and Pricing Modules to retrieve a product by handle. + * This endpoint uses the serverless Product Modules to retrieve a product by handle. * The modules connect directly to your Medusa database to retrieve and manipulate data, without the need for a dedicated server. * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module */ @@ -14,78 +13,27 @@ export async function GET( // Extract the query parameters const { handle } = params - // Initialize Remote Query with the Product and Pricing Modules - const { query } = await MedusaApp({ - modulesConfig: [ - { - module: Modules.PRODUCT, - path: "@medusajs/product", - }, - { - module: Modules.PRICING, - path: "@medusajs/pricing", - }, - ], - sharedResourcesConfig: { - database: { clientUrl: process.env.POSTGRES_URL }, - }, - }) - - // Set the filters for the query - const filters = { - handle, - take: 1, - } - - // Set the GraphQL query - const productsQuery = `#graphql - query($handle: String, $take: Int) { - products(handle: $handle, take: $take) { - id - title - handle - tags - status - collection - collection_id - thumbnail - images { - url - alt_text - id - } - options { - id - value - title - } - variants { - id - title - created_at - updated_at - thumbnail - inventory_quantity - material - weight - length - height - width - options { - id - value - title - } - } - } - }` + // Initialize the Product Module + const productService = await initializeProductModule() // Run the query - const data = await query(productsQuery, filters) - - // Format the response - // const products = formatModuleResponse(data) - const products = data + const products = await productService.list( + { handle }, + { + relations: [ + "variants", + "variants.options", + "tags", + "options", + "options.values", + "images", + "description", + "collection", + "status", + ], + take: 1, + } + ) // Return the response return NextResponse.json({ products }) From 8b616f05d92faecaa631c4ac969c06263cf5367b Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 19 Sep 2023 11:19:33 +0200 Subject: [PATCH 08/12] chore: upgrade packages --- package.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 04740cce2..7544b6764 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,11 @@ "dependencies": { "@headlessui/react": "^1.6.1", "@hookform/error-message": "^2.0.0", + "@medusajs/link-modules": "^0.1.1", "@medusajs/medusa-js": "^6.0.3", - "@medusajs/link-modules": "0.1.1-snapshot-20230913073011", - "@medusajs/modules-sdk": "1.11.0-snapshot-20230913073011", - "@medusajs/pricing": "0.0.3-snapshot-20230913073011", - "@medusajs/product": "latest", + "@medusajs/modules-sdk": "^1.11.0", + "@medusajs/pricing": "^0.0.3", + "@medusajs/product": "^0.2.0", "@meilisearch/instant-meilisearch": "^0.7.1", "@paypal/paypal-js": "^5.0.6", "@paypal/react-paypal-js": "^7.8.1", @@ -43,7 +43,8 @@ "react-hook-form": "^7.30.0", "react-instantsearch-hooks-web": "^6.29.0", "react-intersection-observer": "^9.3.4", - "sharp": "^0.30.7" + "sharp": "^0.30.7", + "webpack": "^5" }, "devDependencies": { "@babel/core": "^7.17.5", From 2cda229a437a573d7ffad2bca0fa78a46c47563b Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 19 Sep 2023 12:31:31 +0200 Subject: [PATCH 09/12] refactor: extract prices function to util, comments --- src/app/api/categories/[...handle]/route.ts | 66 +- src/app/api/collections/[handle]/route.ts | 66 +- src/app/api/products/route.ts | 58 +- src/lib/util/get-prices-by-price-set-id.ts | 42 + yarn.lock | 2743 +++++++++---------- 5 files changed, 1447 insertions(+), 1528 deletions(-) create mode 100644 src/lib/util/get-prices-by-price-set-id.ts diff --git a/src/app/api/categories/[...handle]/route.ts b/src/app/api/categories/[...handle]/route.ts index 92e81aabd..7b86d5ab6 100644 --- a/src/app/api/categories/[...handle]/route.ts +++ b/src/app/api/categories/[...handle]/route.ts @@ -1,11 +1,13 @@ import { NextRequest, NextResponse } from "next/server" import { initialize as initializeProductModule } from "@medusajs/product" import { ProductDTO } from "@medusajs/types/dist/product" +import { IPricingModuleService } from "@medusajs/types" import { notFound } from "next/navigation" import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { getPricesByPriceSetId } from "@lib/util/get-prices-by-price-set-id" /** - * This endpoint uses the serverless Product Module to retrieve a category and its products by handle. + * This endpoint uses the serverless Product and Pricing Modules to retrieve a category and its products by handle. * The module connects directly to you Medusa database to retrieve and manipulate data, without the need for a dedicated server. * Read more about the Product Module here: https://docs.medusajs.com/modules/products/serverless-module */ @@ -13,8 +15,10 @@ export async function GET( request: NextRequest, { params }: { params: Record } ) { + // Initialize the Product Module const productService = await initializeProductModule() + // Extract the query parameters const searchParams = Object.fromEntries(request.nextUrl.searchParams) const { page, limit } = searchParams @@ -24,6 +28,7 @@ export async function GET( categoryHandle.slice(0, index + 1).join("/") ) + // Fetch the category by handle const product_categories = await productService .listCategories( { @@ -45,17 +50,21 @@ export async function GET( return notFound() } + // Fetch the products by category id const { rows: products, metadata: { count }, } = await getProductsByCategoryId(category.id, searchParams) + // Filter out unpublished products const publishedProducts: ProductDTO[] = products.filter( (product) => product.status === "published" ) + // Calculate the next page const nextPage = parseInt(page) + parseInt(limit) + // Return the response return NextResponse.json({ product_categories: Object.values(product_categories), response: { @@ -66,6 +75,12 @@ export async function GET( }) } +/** + * This function uses the serverless Product and Pricing Modules to retrieve products by category id. + * @param category_id The category id + * @param params The query parameters + * @returns The products and metadata + */ async function getProductsByCategoryId( category_id: string, params: Record @@ -75,22 +90,18 @@ async function getProductsByCategoryId( currency_code = currency_code && currency_code.toUpperCase() + // Initialize Remote Query with the Product and Pricing Modules const { query, modules } = await MedusaApp({ - modulesConfig: [ - { - module: Modules.PRODUCT, - path: "@medusajs/product", - }, - { - module: Modules.PRICING, - path: "@medusajs/pricing", - }, - ], + modulesConfig: { + [Modules.PRODUCT]: true, + [Modules.PRICING]: true, + }, sharedResourcesConfig: { database: { clientUrl: process.env.POSTGRES_URL }, }, }) + // Set the filters for the query const filters = { take: parseInt(params.limit) || 100, skip: parseInt(params.offset) || 0, @@ -100,6 +111,7 @@ async function getProductsByCategoryId( currency_code, } + // Set the GraphQL query const productsQuery = `#graphql query($filters: Record, $take: Int, $skip: Int) { products(filters: $filters, take: $take, skip: $skip) { @@ -147,33 +159,19 @@ async function getProductsByCategoryId( } }` + // Run the query const { rows, metadata } = await query(productsQuery, filters) - for (const product of rows) { - for (const variant of product.variants) { - const priceSetIds = variant.price.map((price) => price.price_set.id) - - const prices = await modules.pricingService.calculatePrices( - { id: priceSetIds }, - { - context: { currency_code }, - } - ) - - const price = prices.find( - (price) => price.currency_code === currency_code - ) - - if (!price) continue - - delete variant.price - variant.price = price - variant.calculated_price = price.amount - } - } + // Calculate prices + const productsWithPrices = await getPricesByPriceSetId({ + products: rows, + currency_code, + pricingService: modules.pricingService as unknown as IPricingModuleService, + }) + // Return the response return { - rows, + rows: productsWithPrices, metadata, } } diff --git a/src/app/api/collections/[handle]/route.ts b/src/app/api/collections/[handle]/route.ts index 1c1a28e6d..bb5367330 100644 --- a/src/app/api/collections/[handle]/route.ts +++ b/src/app/api/collections/[handle]/route.ts @@ -4,6 +4,8 @@ import { notFound } from "next/navigation" import { initialize as initializeProductModule } from "@medusajs/product" import { MedusaApp, Modules } from "@medusajs/modules-sdk" import { ProductCollectionDTO, ProductDTO } from "@medusajs/types/dist/product" +import { IPricingModuleService } from "@medusajs/types" +import { getPricesByPriceSetId } from "@lib/util/get-prices-by-price-set-id" /** * This endpoint uses the serverless Product Module to retrieve a collection and its products by handle. @@ -14,38 +16,47 @@ export async function GET( request: NextRequest, { params }: { params: Record } ) { + // Initialize the Product Module const productService = await initializeProductModule() + // Extract the query parameters const { handle } = params const searchParams = Object.fromEntries(request.nextUrl.searchParams) const { page, limit } = searchParams + // Fetch the collections const collections = await productService.listCollections() + // Create a map of collections by handle const collectionsByHandle = new Map() for (const collection of collections) { collectionsByHandle.set(collection.handle, collection) } + // Fetch the collection by handle const collection = collectionsByHandle.get(handle) if (!collection) { return notFound() } + // Fetch the products by collection id const { rows: products, metadata: { count }, } = await getProductsByCollectionId(collection.id, searchParams) + // Filter out unpublished products const publishedProducts: ProductDTO[] = products.filter( (product) => product.status === "published" ) + // Calculate the next page const nextPage = parseInt(page) + parseInt(limit) + // Return the response return NextResponse.json({ collections: [collection], response: { @@ -56,6 +67,12 @@ export async function GET( }) } +/** + * This endpoint uses the serverless Product and Pricing Modules to retrieve a product list. + * @param collection_id The collection id to filter by + * @param params The query parameters + * @returns The products and metadata + */ async function getProductsByCollectionId( collection_id: string, params: Record @@ -65,22 +82,18 @@ async function getProductsByCollectionId( currency_code = currency_code && currency_code.toUpperCase() + // Initialize Remote Query with the Product and Pricing Modules const { query, modules } = await MedusaApp({ - modulesConfig: [ - { - module: Modules.PRODUCT, - path: "@medusajs/product", - }, - { - module: Modules.PRICING, - path: "@medusajs/pricing", - }, - ], + modulesConfig: { + [Modules.PRODUCT]: true, + [Modules.PRICING]: true, + }, sharedResourcesConfig: { database: { clientUrl: process.env.POSTGRES_URL }, }, }) + // Set the filters for the query const filters = { take: parseInt(params.limit) || 100, skip: parseInt(params.offset) || 0, @@ -90,6 +103,7 @@ async function getProductsByCollectionId( currency_code, } + // Set the GraphQL query const productsQuery = `#graphql query($filters: Record, $take: Int, $skip: Int) { products(filters: $filters, take: $take, skip: $skip) { @@ -137,33 +151,19 @@ async function getProductsByCollectionId( } }` + // Run the query const { rows, metadata } = await query(productsQuery, filters) - for (const product of rows) { - for (const variant of product.variants) { - const priceSetIds = variant.price.map((price) => price.price_set.id) - - const prices = await modules.pricingService.calculatePrices( - { id: priceSetIds }, - { - context: { currency_code }, - } - ) - - const price = prices.find( - (price) => price.currency_code === currency_code - ) - - if (!price) continue - - delete variant.price - variant.price = price - variant.calculated_price = price.amount - } - } + // Calculate prices + const productsWithPrices = await getPricesByPriceSetId({ + products: rows, + currency_code, + pricingService: modules.pricingService as unknown as IPricingModuleService, + }) + // Return the response return { - rows, + rows: productsWithPrices, metadata, } } diff --git a/src/app/api/products/route.ts b/src/app/api/products/route.ts index eaa24c7ed..383979a5f 100644 --- a/src/app/api/products/route.ts +++ b/src/app/api/products/route.ts @@ -2,6 +2,8 @@ import { NextRequest, NextResponse } from "next/server" import { notFound } from "next/navigation" import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { getPricesByPriceSetId } from "@lib/util/get-prices-by-price-set-id" +import { IPricingModuleService } from "@medusajs/types" /** * This endpoint uses the serverless Product and Pricing Modules to retrieve a product list. @@ -28,27 +30,15 @@ async function getProducts(params: Record) { limit = limit && parseInt(limit) currency_code = currency_code && currency_code.toUpperCase() - // configure the modules for Remote Query - const modulesConfig = [ - { - module: Modules.PRODUCT, - path: "@medusajs/product", - }, - { - module: Modules.PRICING, - path: "@medusajs/pricing", - }, - ] - - // configure the shared resources for Remote Query - const sharedResourcesConfig = { - database: { clientUrl: process.env.POSTGRES_URL }, - } - // Initialize Remote Query with the Product and Pricing Modules const { query, modules } = await MedusaApp({ - modulesConfig, - sharedResourcesConfig, + modulesConfig: { + [Modules.PRODUCT]: true, + [Modules.PRICING]: true, + }, + sharedResourcesConfig: { + database: { clientUrl: process.env.POSTGRES_URL }, + }, }) // Set the filters for the query @@ -112,35 +102,19 @@ async function getProducts(params: Record) { metadata: { count }, } = await query(productsQuery, filters) - for (const product of products) { - for (const variant of product.variants) { - const priceSetIds = variant.price.map((price) => price.price_set.id) - - const prices = await modules.pricingService.calculatePrices( - { id: priceSetIds }, - { - context: { currency_code }, - } - ) - - const price = prices.find( - (price) => price.currency_code === currency_code - ) - - if (!price) continue - - delete variant.price - variant.price = price - variant.calculated_price = price.amount - } - } + // Calculate prices + const productsWithPrices = await getPricesByPriceSetId({ + products, + currency_code, + pricingService: modules.pricingService as unknown as IPricingModuleService, + }) // Calculate the next page const nextPage = offset + limit // Return the response return { - products, + products: productsWithPrices, count: count, nextPage: count > nextPage ? nextPage : null, } diff --git a/src/lib/util/get-prices-by-price-set-id.ts b/src/lib/util/get-prices-by-price-set-id.ts new file mode 100644 index 000000000..b1fcfc380 --- /dev/null +++ b/src/lib/util/get-prices-by-price-set-id.ts @@ -0,0 +1,42 @@ +import { IPricingModuleService, CalculatedPriceSetDTO } from "@medusajs/types" + +type Props = { + products: any[] + currency_code: string + pricingService: IPricingModuleService +} + +/** + * Calculates the prices for a list of products, given a currency code. + * @param products List of products to calculate prices for. + * @param currency_code Currency code to calculate prices in. + * @param pricingService Pricing service to use for calculating prices. + * @returns The list of products with prices calculated. + */ +export async function getPricesByPriceSetId({ + products, + currency_code, + pricingService, +}: Props): Promise { + for (const product of products) { + for (const variant of product.variants) { + const priceSetId = variant.price.price_set.id + + const [price] = (await pricingService.calculatePrices( + { id: [priceSetId] }, + { + context: { currency_code }, + } + )) as unknown as CalculatedPriceSetDTO[] + + delete variant.price + + if (!price) continue + + variant.price = price + variant.calculated_price = price.amount + console.log({ variant }) + } + } + return products +} diff --git a/yarn.lock b/yarn.lock index b3e981aff..df1c83a5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,114 +2,119 @@ # yarn lockfile v1 -"@algolia/cache-browser-local-storage@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.0.tgz#4c54a9b1795dcc1cd9f9533144f7df3057984d39" - integrity sha512-myRSRZDIMYB8uCkO+lb40YKiYHi0fjpWRtJpR/dgkaiBlSD0plRyB6lLOh1XIfmMcSeBOqDE7y9m8xZMrXYfyQ== - dependencies: - "@algolia/cache-common" "4.17.0" - -"@algolia/cache-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.17.0.tgz#bc3da15548df585b44d76c55e66b0056a2b3f917" - integrity sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ== - -"@algolia/cache-in-memory@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.17.0.tgz#eb55a92cb8eb8641903a2b23fd6d05ebdaca2010" - integrity sha512-PT32ciC/xI8z919d0oknWVu3kMfTlhQn3MKxDln3pkn+yA7F7xrxSALysxquv+MhFfNAcrtQ/oVvQVBAQSHtdw== - dependencies: - "@algolia/cache-common" "4.17.0" - -"@algolia/client-account@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.17.0.tgz#4b13e5a8e50a06be1f3289d9db337096ebc66b73" - integrity sha512-sSEHx9GA6m7wrlsSMNBGfyzlIfDT2fkz2u7jqfCCd6JEEwmxt8emGmxAU/0qBfbhRSuGvzojoLJlr83BSZAKjA== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-analytics@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.17.0.tgz#1b36ffbe913b7b4d8900bc15982ca431f47a473c" - integrity sha512-84ooP8QA3mQ958hQ9wozk7hFUbAO+81CX1CjAuerxBqjKIInh1fOhXKTaku05O/GHBvcfExpPLIQuSuLYziBXQ== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.17.0.tgz#67fd898006e3ac359ea3e3ed61abfc26147ffa53" - integrity sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ== - dependencies: - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-personalization@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.17.0.tgz#428d9f4762c22856b6062bb54351eb31834db6c1" - integrity sha512-RMzN4dZLIta1YuwT7QC9o+OeGz2cU6eTOlGNE/6RcUBLOU3l9tkCOdln5dPE2jp8GZXPl2yk54b2nSs1+pAjqw== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-search@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.17.0.tgz#0053c682f5f588e006c20791c27e8bcb0aa5b53c" - integrity sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@algolia/cache-browser-local-storage@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz#357318242fc542ffce41d6eb5b4a9b402921b0bb" + integrity sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ== + dependencies: + "@algolia/cache-common" "4.20.0" + +"@algolia/cache-common@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.20.0.tgz#ec52230509fce891091ffd0d890618bcdc2fa20d" + integrity sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ== + +"@algolia/cache-in-memory@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz#5f18d057bd6b3b075022df085c4f83bcca4e3e67" + integrity sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg== + dependencies: + "@algolia/cache-common" "4.20.0" + +"@algolia/client-account@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.20.0.tgz#23ce0b4cffd63100fb7c1aa1c67a4494de5bd645" + integrity sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q== + dependencies: + "@algolia/client-common" "4.20.0" + "@algolia/client-search" "4.20.0" + "@algolia/transporter" "4.20.0" + +"@algolia/client-analytics@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.20.0.tgz#0aa6bef35d3a41ac3991b3f46fcd0bf00d276fa9" + integrity sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug== + dependencies: + "@algolia/client-common" "4.20.0" + "@algolia/client-search" "4.20.0" + "@algolia/requester-common" "4.20.0" + "@algolia/transporter" "4.20.0" + +"@algolia/client-common@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.20.0.tgz#ca60f04466515548651c4371a742fbb8971790ef" + integrity sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ== + dependencies: + "@algolia/requester-common" "4.20.0" + "@algolia/transporter" "4.20.0" + +"@algolia/client-personalization@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.20.0.tgz#ca81308e8ad0db3b27458b78355f124f29657181" + integrity sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ== + dependencies: + "@algolia/client-common" "4.20.0" + "@algolia/requester-common" "4.20.0" + "@algolia/transporter" "4.20.0" + +"@algolia/client-search@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.20.0.tgz#3bcce817ca6caedc835e0eaf6f580e02ee7c3e15" + integrity sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg== + dependencies: + "@algolia/client-common" "4.20.0" + "@algolia/requester-common" "4.20.0" + "@algolia/transporter" "4.20.0" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/logger-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.17.0.tgz#0fcea39c9485554edb4cdbfd965c5748b0b837ac" - integrity sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw== +"@algolia/logger-common@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.20.0.tgz#f148ddf67e5d733a06213bebf7117cb8a651ab36" + integrity sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ== -"@algolia/logger-console@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.17.0.tgz#8ac56ef4259c4fa3eb9eb6586c7b4b4ed942e8da" - integrity sha512-zMPvugQV/gbXUvWBCzihw6m7oxIKp48w37QBIUu/XqQQfxhjoOE9xyfJr1KldUt5FrYOKZJVsJaEjTsu+bIgQg== +"@algolia/logger-console@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.20.0.tgz#ac443d27c4e94357f3063e675039cef0aa2de0a7" + integrity sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA== dependencies: - "@algolia/logger-common" "4.17.0" + "@algolia/logger-common" "4.20.0" -"@algolia/requester-browser-xhr@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.0.tgz#f52fdeeac2f3c531f00838920af33a73066a159b" - integrity sha512-aSOX/smauyTkP21Pf52pJ1O2LmNFJ5iHRIzEeTh0mwBeADO4GdG94cAWDILFA9rNblq/nK3EDh3+UyHHjplZ1A== +"@algolia/requester-browser-xhr@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz#db16d0bdef018b93b51681d3f1e134aca4f64814" + integrity sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw== dependencies: - "@algolia/requester-common" "4.17.0" + "@algolia/requester-common" "4.20.0" -"@algolia/requester-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.17.0.tgz#746020d2cbc829213e7cede8eef2182c7a71e32b" - integrity sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg== +"@algolia/requester-common@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.20.0.tgz#65694b2263a8712b4360fef18680528ffd435b5c" + integrity sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng== -"@algolia/requester-node-http@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.17.0.tgz#262276d94c25a4ec2128b1bdfb9471529528d8b9" - integrity sha512-bpb/wDA1aC6WxxM8v7TsFspB7yBN3nqCGs2H1OADolQR/hiAIjAxusbuMxVbRFOdaUvAIqioIIkWvZdpYNIn8w== +"@algolia/requester-node-http@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz#b52b182b52b0b16dec4070832267d484a6b1d5bb" + integrity sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng== dependencies: - "@algolia/requester-common" "4.17.0" + "@algolia/requester-common" "4.20.0" -"@algolia/transporter@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.17.0.tgz#6aabdbc20c475d72d83c8e6519f1191f1a51fb37" - integrity sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA== +"@algolia/transporter@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.20.0.tgz#7e5b24333d7cc9a926b2f6a249f87c2889b944a9" + integrity sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg== dependencies: - "@algolia/cache-common" "4.17.0" - "@algolia/logger-common" "4.17.0" - "@algolia/requester-common" "4.17.0" + "@algolia/cache-common" "4.20.0" + "@algolia/logger-common" "4.20.0" + "@algolia/requester-common" "4.20.0" "@algolia/ui-components-highlight-vdom@^1.2.1": version "1.2.1" @@ -137,245 +142,240 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/compat-data@^7.21.5": - version "7.21.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" - integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== +"@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== "@babel/core@^7.17.5": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.20.tgz#e3d0eed84c049e2a2ae0a64d27b6a37edec385b7" + integrity sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.22.20" + "@babel/helpers" "^7.22.15" + "@babel/parser" "^7.22.16" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.20" + "@babel/types" "^7.22.19" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/generator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" - integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== +"@babel/generator@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" + integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.22.15" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" - integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== +"@babel/helper-compilation-targets@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" lru-cache "^5.1.1" - semver "^6.3.0" + semver "^6.3.1" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" - integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== - -"@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" - integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" - integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-simple-access" "^7.21.5" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.20.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" - integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== - -"@babel/helper-replace-supers@^7.20.7": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" - integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-simple-access@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" - integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helpers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" - integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621" + integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz#da9edc14794babbe7386df438f3768067132f59e" + integrity sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helpers@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" + integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== +"@babel/parser@^7.22.15", "@babel/parser@^7.22.16": + version "7.22.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" + integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== "@babel/plugin-transform-classes@^7.9.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.15.4", "@babel/runtime@^7.20.7": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" - integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" - integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.15.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.10": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" + integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.20.tgz#db572d9cb5c79e02d83e5618b82f6991c07584c9" + integrity sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.16" + "@babel/types" "^7.22.19" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5": + version "7.22.19" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" + integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.19" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -384,9 +384,9 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cypress/request@^2.88.10": - version "2.88.11" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.11.tgz#5a4c7399bc2d7e7ed56e92ce5acb620c8b187047" - integrity sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w== + version "2.88.12" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.12.tgz#ba4911431738494a85e93fb04498cb38bc55d590" + integrity sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -403,7 +403,7 @@ performance-now "^2.1.0" qs "~6.10.3" safe-buffer "^5.1.2" - tough-cookie "~2.5.0" + tough-cookie "^4.1.3" tunnel-agent "^0.6.0" uuid "^8.3.2" @@ -440,9 +440,9 @@ strip-json-comments "^3.1.1" "@headlessui/react@^1.6.1": - version "1.7.14" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.14.tgz#75f19552c535113640fe8a3a40e71474f49e89c9" - integrity sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA== + version "1.7.17" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.17.tgz#a0ec23af21b527c030967245fd99776aa7352bc6" + integrity sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow== dependencies: client-only "^0.0.1" @@ -484,79 +484,75 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@medusajs/client-types@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@medusajs/client-types/-/client-types-0.2.2.tgz#44142fc0fa5e77450b3b985278df405a33b777f8" - integrity sha512-fgQ0+SIoxq3PbOG5U6liNLi1kvgT1TeCDbVQ7QXDhm3auaZ7Fc56VOjafvuIvBPELRazJhqTAEhyYYgo1AbJ9A== + version "0.2.5" + resolved "https://registry.yarnpkg.com/@medusajs/client-types/-/client-types-0.2.5.tgz#8baa26ca34232970a37eebd36fca93c018c447a7" + integrity sha512-jB43v+OWNSVo+9jv4EWShDKy+JGEx/LYRdcC0iS8HQx9eXNqSIsP27R8sRetdxschsuE+bd6K2Lj130DFiOICw== -"@medusajs/link-modules@0.1.1-snapshot-20230913073011": - version "0.1.1-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/link-modules/-/link-modules-0.1.1-snapshot-20230913073011.tgz#7758ce577f72f067e63dc8ea247080f3e0f9cb18" - integrity sha512-GvIBI03XiEQnHzr/cSCYJjxSvF2I2z7geRS6S52CQt4KfSJVnZ14MVD0yx5hKLQZTkThP7hI6fI52qork7NW2Q== +"@medusajs/link-modules@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@medusajs/link-modules/-/link-modules-0.1.1.tgz#7a5bf46366fd1dfd1e464daf2edf46a426937c62" + integrity sha512-zwn4GaAl2daycwL3//PB5VFlxT3D+bJicxL6bfEoELemvgWbcMdkeO8fQ/pix1JTjz9WDkldqXAS2LhFK0rbuw== dependencies: - "@medusajs/modules-sdk" "1.11.0-snapshot-20230913073011" - "@medusajs/types" "1.11.1-snapshot-20230913073011" - "@medusajs/utils" "1.10.1-snapshot-20230913073011" + "@medusajs/modules-sdk" "^1.11.0" + "@medusajs/types" "^1.11.1" + "@medusajs/utils" "^1.10.1" "@mikro-orm/core" "5.7.12" "@mikro-orm/postgresql" "5.7.12" awilix "^8.0.0" -"@medusajs/medusa-cli@^1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@medusajs/medusa-cli/-/medusa-cli-1.3.16.tgz#849e94d478ba51a4541d37872c169fda1be92cfa" - integrity sha512-nXhRfWr2hBfuQx+P35Me4H6OY6PONqEl2TIeyP4R3GJ2eUDc6GSyrafA05KavDZr8F4i04im5mWSAt+KHd1CVA== +"@medusajs/medusa-cli@^1.3.21": + version "1.3.21" + resolved "https://registry.yarnpkg.com/@medusajs/medusa-cli/-/medusa-cli-1.3.21.tgz#d69707a268e04e28db60ad823f2114c3086b2cec" + integrity sha512-j898S/3ipWFG3HIBZtyUc/KfqnO2JV5h4Mj30M/P+7vXxvLlpavKiU6qdBRxLZBQHHZ2mGuyHRoq3RatHrrw/Q== dependencies: - "@medusajs/utils" "^1.9.1" + "@medusajs/utils" "^1.10.0" axios "^0.21.4" chalk "^4.0.0" configstore "5.0.1" core-js "^3.6.5" - dotenv "^8.2.0" + dotenv "16.0.3" execa "^5.1.1" fs-exists-cached "^1.0.0" fs-extra "^10.0.0" + glob "^7.1.6" hosted-git-info "^4.0.2" inquirer "^8.0.0" is-valid-path "^0.1.1" meant "^1.0.3" medusa-core-utils "^1.2.0" - medusa-telemetry "^0.0.16" + medusa-telemetry "^0.0.17" open "^8.0.6" ora "^5.4.1" pg "^8.11.0" @@ -567,25 +563,13 @@ semver "^7.3.8" stack-trace "^0.0.10" ulid "^2.3.0" - url "^0.11.0" winston "^3.8.2" yargs "^15.3.1" -"@medusajs/medusa-js@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@medusajs/medusa-js/-/medusa-js-6.0.1.tgz#f0cdfab2fe6fe5536376625b52e52bf740aaf14f" - integrity sha512-7efHlXV1kNE7nJVhYVtT3wEQmBI8XZWHjOe779io428fG4YtIBfcgNxYtUiAeEFN3tKF22kmlcb3Go9Rfj3OvA== - dependencies: - axios "^0.24.0" - cross-env "^5.2.1" - qs "^6.10.3" - retry-axios "^2.6.0" - uuid "^9.0.0" - -"@medusajs/medusa-js@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@medusajs/medusa-js/-/medusa-js-6.0.3.tgz#2fe4caab4a98c69f84e68ffdfe1c07d59d24af28" - integrity sha512-VYPbPP4wilog6vCIkRLkaiiJOuuY0b33X3vMtV/FXnJXOOAtV/k3kyEgsORZytMofBw1kL4phHoh5+B0582iMQ== +"@medusajs/medusa-js@*", "@medusajs/medusa-js@^6.0.3": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@medusajs/medusa-js/-/medusa-js-6.0.4.tgz#9e1e426e9065a3b34e8b7e415a42c79b6b62ace9" + integrity sha512-zJMTbILTeCogfgvJCB1E5RyDAC90m6wgw0+t7T3BfVo4A4iqx3PlfVT0np9SSOQXSljYu05qO6+BSYJULHgPUg== dependencies: axios "^0.24.0" cross-env "^5.2.1" @@ -594,13 +578,15 @@ uuid "^9.0.0" "@medusajs/medusa@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@medusajs/medusa/-/medusa-1.12.1.tgz#2866d6bdabaf9fb0400555002e99b70c089cbe5b" - integrity sha512-WCIYai+AWejDVCX8Csd6cn0Um9pjrZ0OggownSkdqA94b8SO0eQEe36dXDWvdk/CvjZXF3JR9TF0XsGctNybww== - dependencies: - "@medusajs/medusa-cli" "^1.3.16" - "@medusajs/modules-sdk" "^1.8.8" - "@medusajs/utils" "^1.9.1" + version "1.16.0" + resolved "https://registry.yarnpkg.com/@medusajs/medusa/-/medusa-1.16.0.tgz#af638c83f75a5c6260f4e565086140b484b0302e" + integrity sha512-9ICO3cMbLkPyxzsLqs9GTkjGO2dVmXN6RZlBYG7+pQ3WhC3Jjj+W/G+ICvq+lMa30NpJ019MSBy6H9FGH999fA== + dependencies: + "@medusajs/medusa-cli" "^1.3.21" + "@medusajs/modules-sdk" "^1.11.0" + "@medusajs/orchestration" "^0.4.0" + "@medusajs/utils" "^1.10.1" + "@medusajs/workflows" "^0.2.2" awilix "^8.0.0" body-parser "^1.19.0" boxen "^5.0.1" @@ -625,7 +611,7 @@ jsonwebtoken "^9.0.0" lodash "^4.17.21" medusa-core-utils "^1.2.0" - medusa-telemetry "^0.0.16" + medusa-telemetry "^0.0.17" medusa-test-utils "^1.1.40" morgan "^1.9.1" multer "^1.4.5-lts.1" @@ -635,81 +621,49 @@ passport-http-bearer "^1.0.1" passport-jwt "^4.0.1" passport-local "^1.0.0" + pg "^8.11.2" qs "^6.11.2" randomatic "^3.1.1" redis "^3.0.2" reflect-metadata "^0.1.13" regenerator-runtime "^0.13.11" - request-ip "^2.1.3" + request-ip "^3.3.0" scrypt-kdf "^2.0.1" ulid "^2.3.0" uuid "^9.0.0" winston "^3.8.2" -"@medusajs/modules-sdk@1.11.0-snapshot-20230913073011": - version "1.11.0-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.11.0-snapshot-20230913073011.tgz#1082f36327f81e1411e2ab66524c04543fd3635d" - integrity sha512-UXZ35eIiMs4D+lrEzItE6JDWDgGQ0QdUwYrqpvnp8aGrBY9W3z36Fb1rLdkM9RvriuOKivgm/8HMwOpOX7xo7w== - dependencies: - "@medusajs/orchestration" "0.4.0-snapshot-20230913073011" - "@medusajs/types" "1.11.1-snapshot-20230913073011" - "@medusajs/utils" "1.10.1-snapshot-20230913073011" - awilix "^8.0.0" - knex "2.4.2" - pg "^8.11.2" - resolve-cwd "^3.0.0" - -"@medusajs/modules-sdk@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.10.0.tgz#11e1ee3702937607f7f7b361c3d6935928c5dd4f" - integrity sha512-UU0zzPTIlFVkGvyphMngW1IS0UU0mtj4itdEVusn052hjykFb9k+lK5QZELC5Z3wHk2DxJR1OWvm/iSTOioS9w== +"@medusajs/modules-sdk@^1.11.0": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.11.1.tgz#38ee2f5676731a6ef6e9a2815f6206faf5b479e2" + integrity sha512-1hZFpzTCw1yl7keQ1AjRlPYYSRz7m8HeyJZRUrtVqL4/TQHIC6pkHFZYWnkKzHlYAl2jIwJJlccxuz0MBMU67A== dependencies: - "@medusajs/orchestration" "^0.3.0" - "@medusajs/types" "^1.11.0" - "@medusajs/utils" "^1.10.0" + "@medusajs/orchestration" "^0.4.0" + "@medusajs/types" "^1.11.1" + "@medusajs/utils" "^1.10.1" awilix "^8.0.0" knex "2.4.2" pg "^8.11.2" resolve-cwd "^3.0.0" -"@medusajs/modules-sdk@^1.8.8": - version "1.8.8" - resolved "https://registry.yarnpkg.com/@medusajs/modules-sdk/-/modules-sdk-1.8.8.tgz#09272c431db3569ffe91499b3d7cda1bc94df937" - integrity sha512-84OOumJKDWHc984PFF8OnEUUuFOR8nDPPfW+bT5EWIvN4VHywV6bti6K6hw53uOWYfb47CQoEqrfLUybm85piA== - dependencies: - "@medusajs/types" "^1.8.8" - "@medusajs/utils" "^1.9.1" - awilix "^8.0.0" - resolve-cwd "^3.0.0" - -"@medusajs/orchestration@0.4.0-snapshot-20230913073011": - version "0.4.0-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.4.0-snapshot-20230913073011.tgz#ada5bfbd44056381d06d35d5aecf66fef9d6b283" - integrity sha512-epoJwhfoc+qyd1V5RB2dRfVkwwtlyrLpLjxvoRXE0bHwiEoq/FbL3ipVvKJpiEUMM6HcrBidqExHAm5OWbSHjg== - dependencies: - "@medusajs/types" "1.11.1-snapshot-20230913073011" - "@medusajs/utils" "1.10.1-snapshot-20230913073011" - awilix "^8.0.0" - graphql "^16.6.0" - -"@medusajs/orchestration@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.3.0.tgz#9638a81c37b96a4b0f9e80453dbe072d95d471f2" - integrity sha512-W2cU7eHHGmWmfrBaK09HwRhvAsuAAHX0NVK90nuD0f8tqkGPoN8GnAtyUh29wKZEo64FgylF3ax2VstLXCA1xw== +"@medusajs/orchestration@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@medusajs/orchestration/-/orchestration-0.4.0.tgz#f35af7240ed52f2aaa65dd870b7f3d697d631116" + integrity sha512-wOV8uppaQIXFlqasZaTQNoDEcw1u/av3ZF907i4zYdx7u8ksxAZiPuUXoTwrW9hCsyfadY8Ur9+07j1tgcR7Cw== dependencies: - "@medusajs/types" "^1.11.0" - "@medusajs/utils" "^1.10.0" + "@medusajs/types" "^1.11.1" + "@medusajs/utils" "^1.10.1" awilix "^8.0.0" graphql "^16.6.0" -"@medusajs/pricing@0.0.3-snapshot-20230913073011": - version "0.0.3-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/pricing/-/pricing-0.0.3-snapshot-20230913073011.tgz#dd6388fb18ecec39727081085fb2365142d6527d" - integrity sha512-ipIdAjlqV4aPb8+/zxJzgwA1gxDz4540K1+hYIuvIW0Ya6NPgL3P1L76CdesvkqpDcBTFVZ6nS8Z/r9/crUomg== +"@medusajs/pricing@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@medusajs/pricing/-/pricing-0.0.3.tgz#081a1400f16b77d2da56ca5344b577eb555b92d3" + integrity sha512-TRDSqzycGj5aBDN3IBf7hiAjZkDl0wzCKCiGVsTiW75/scK3QBZnPB+Bc2zDUMjt7h5Vk+c2t8Ir5F1FA9VyeA== dependencies: - "@medusajs/modules-sdk" "1.11.0-snapshot-20230913073011" - "@medusajs/types" "1.11.1-snapshot-20230913073011" - "@medusajs/utils" "1.10.1-snapshot-20230913073011" + "@medusajs/modules-sdk" "^1.11.0" + "@medusajs/types" "^1.11.1" + "@medusajs/utils" "^1.10.1" "@mikro-orm/core" "5.7.12" "@mikro-orm/migrations" "5.7.12" "@mikro-orm/postgresql" "5.7.12" @@ -717,14 +671,14 @@ dotenv "^16.1.4" knex "2.4.2" -"@medusajs/product@latest": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@medusajs/product/-/product-0.2.0.tgz#e10a4825e44590dad62f8b18e577d8239f0d4f2d" - integrity sha512-bdn1y3W5TdDceHTXFOlugpUg0nZhO22O0MdtHm9yf/tz9K2AAY6NAe8oPFVVRbo0h5QZFDX84exnr+dtQFmCvQ== +"@medusajs/product@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@medusajs/product/-/product-0.2.1.tgz#9d769282e7b03fceb78812d65ded8fd7c1391133" + integrity sha512-TrWB12OVwwuKg+4+t15Vv+nUa+8izmjOEbti3FAWEQqhacrr+8zLvM0TGxxrcYHLkwHPzyYSz8ljCM8E8IaeFg== dependencies: - "@medusajs/modules-sdk" "^1.10.0" - "@medusajs/types" "^1.11.0" - "@medusajs/utils" "^1.10.0" + "@medusajs/modules-sdk" "^1.11.0" + "@medusajs/types" "^1.11.1" + "@medusajs/utils" "^1.10.1" "@mikro-orm/core" "5.7.12" "@mikro-orm/migrations" "5.7.12" "@mikro-orm/postgresql" "5.7.12" @@ -733,27 +687,17 @@ knex "2.4.2" lodash "^4.17.21" -"@medusajs/types@1.11.1-snapshot-20230913073011": - version "1.11.1-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.1-snapshot-20230913073011.tgz#3547068a70fd757e94544ed5072eff2a029f33dd" - integrity sha512-3JQstGsQqpCgmCkqTmc9tIMrY55rq7iQ+0LNHT/dJVaJIBH9ov0SglQa/2ec0XkwJTH4cK7QmM1d89ecF5yroA== - -"@medusajs/types@^1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.0.tgz#f0619a9c2e8b0d2f7f5abf4574912d7685bda5e3" - integrity sha512-t63hOOroUj/+4BKrdSff9H+SCmEiOszcQSSzWzvLj9uJDSDzFeK7U9CbTv9rf2IA2iurJAu1eN2UoU8dy49Rqw== - -"@medusajs/types@^1.8.8": - version "1.8.8" - resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.8.8.tgz#42a0d63df9a70911de9bf5600f9e24745a8efa16" - integrity sha512-3ztLgmvcwEkWV8FlF0t4rYfxfd5in4p0HYt0NSRiZTQf9DVr/LEezq1vvMzODUkb3i1/kyrrURZDQMrq5m23gg== +"@medusajs/types@^1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@medusajs/types/-/types-1.11.1.tgz#eb8d3b82fa6ef5e4ef57618467e552186a5d5640" + integrity sha512-aSkbd/ZEY3ZV1sgn9YMd0ORrgefLu3qP7RO4StQfDUoeK1heWyHGWmxp2lG3hSkatgxpET7elDOvABGObcUDQQ== -"@medusajs/utils@1.10.1-snapshot-20230913073011": - version "1.10.1-snapshot-20230913073011" - resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.1-snapshot-20230913073011.tgz#c780bc132725ac158db4da3e560e1532d69001ff" - integrity sha512-7Y/DqlVhNEFbw4Z37Jnk/ZEM/mRY+lmNmlyf4YpIt9S62ApQxIVCaFtBX3ZfT7ij3dUvKCK/vwqhbEp2Ktt3IA== +"@medusajs/utils@^1.10.0", "@medusajs/utils@^1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.1.tgz#34ae44dde035a3d718625d2c1361991f7ac9428d" + integrity sha512-EMxJ3QsY7y0hDs2fNgvsE6iUnu/hgZHFNY637+fUkKZ/b1o+V5egAB3KJO2gqxZneM5dddwyhc+XRbT8Os1CTQ== dependencies: - "@medusajs/types" "1.11.1-snapshot-20230913073011" + "@medusajs/types" "^1.11.1" "@mikro-orm/core" "5.7.12" "@mikro-orm/migrations" "5.7.12" "@mikro-orm/postgresql" "5.7.12" @@ -761,25 +705,15 @@ knex "2.4.2" ulid "^2.3.0" -"@medusajs/utils@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.10.0.tgz#d5036bff4937ea0261c1199091515f2acb896a51" - integrity sha512-s80adEqoy6UG6Mu7jXo4mTaqwAqn8SV/a45CQEnTtabpLkcm9XB7svkX+z4kQ/irKnIwDac5nGZfwCegXM2Bkg== - dependencies: - "@medusajs/types" "^1.11.0" - "@mikro-orm/core" "5.7.12" - "@mikro-orm/migrations" "5.7.12" - "@mikro-orm/postgresql" "5.7.12" - awilix "^8.0.1" - ulid "^2.3.0" - -"@medusajs/utils@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@medusajs/utils/-/utils-1.9.1.tgz#f7a6e8a1abdbc60dcb8d85df696a8a4126e45ef8" - integrity sha512-fpUxHtvnMjS/j6waMJx5SGIMb3q4m0kIxRxWyLoWEUtlrvJaIxNIwyShW7LyxyGTvSuHo0IUN8TSJb/rVQayiQ== +"@medusajs/workflows@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@medusajs/workflows/-/workflows-0.2.2.tgz#bb6d2acf2c833eb3ac2d184a035d7d19392d33ad" + integrity sha512-N+wg+la27jte7krvOYFazuN5P4hd2YlthXNqoE57QiZgB5r7RH0LfXkNd/nf8awa+VS0jnhJpInHIFdWTfw2JQ== dependencies: + "@medusajs/modules-sdk" "^1.11.0" + "@medusajs/orchestration" "^0.4.0" + "@medusajs/utils" "^1.10.1" awilix "^8.0.1" - glob "^7.1.6" ulid "^2.3.0" "@meilisearch/instant-meilisearch@^0.7.1": @@ -859,62 +793,62 @@ resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== -"@next/env@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.5.tgz#35b126d2af0d6d60ef73e3ef84b089aa1813c0e0" - integrity sha512-SG/gKH6eij4vwQy87b/3mbpQ1X3x2vUdnpwq6/qL2IQWjtq58EY/UuNAp9CoEZoC9sI4L9AD1r+73Z9r4d3uug== +"@next/env@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.19.tgz#46905b4e6f62da825b040343cbc233144e9578d3" + integrity sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ== -"@next/eslint-plugin-next@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.5.tgz#c3339748a7d59d80a019cd441453500391610167" - integrity sha512-/xD/kyJhXmBZq+0xGKOdjL22c9/4i3mBAXaU9aOGEHTXqqFeOz8scJbScWF13aMqigeoFCsDqngIB2MIatcn4g== +"@next/eslint-plugin-next@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.19.tgz#93d130c37b47fd120f6d111aee36a60611148df1" + integrity sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ== dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.5.tgz#54eb1fb2521a18e1682214c416cc44f3721dd9c8" - integrity sha512-XvTzi2ASUN5bECFIAAcBiSoDb0xsq+KLj4F0bof4d4rdc+FgOqLvseGQaOXwVi1TIh5bHa7o4b6droSJMO5+2g== - -"@next/swc-darwin-x64@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.5.tgz#08131a786b3756650fa0b54ddc22baa59c0d5c4e" - integrity sha512-NQdqal/VKAqlJTuzhjZmNtdo8QSqwmfO7b2xJSAengTEVxQvsH76oGEzQeIv8Ci4NP6DysAFtFrJq++TmIxcUA== - -"@next/swc-linux-arm64-gnu@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.5.tgz#7e54eed32d2ff487323716920fe4df48a45f5d70" - integrity sha512-nB8TjtpJCXtzIFjYOMbnQu68ajkA8QK58TreHjTGojSQjsF0StDqo5zFHglVVVHrd8d3N/+EjC18yFNSWnd/ZA== - -"@next/swc-linux-arm64-musl@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.5.tgz#13835a43c4e7781c56b096a8a5f7f58997f7feff" - integrity sha512-W126XUW599OV3giSH9Co40VpT8VAOT47xONVHXZaYEpeca0qEevjj6WUr5IJu/8u+XGWm5xI1S0DYWjR6W+olw== - -"@next/swc-linux-x64-gnu@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.5.tgz#7567fa3bcd5f3f2859985aa55a6de95259cdfe5f" - integrity sha512-ZbPLO/oztQdtjGmWvGhRmtkZ6j9kQqg65kiO7F7Ijj7ojTtu3hh/vY+XRsHa/4Cse6HgyJ8XGZJMGoLb8ecQfQ== - -"@next/swc-linux-x64-musl@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.5.tgz#40731b7e7cf999b12a4ebcaffa56b74cca9acf2b" - integrity sha512-f+/h8KMNixVUoRB+2vza8I+jsthJ4KcvopGUsDIUHe7Q4t+m8nKwGFBeyNu9qNIenYK5g5QYEsSwYFEqZylrTQ== - -"@next/swc-win32-arm64-msvc@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.5.tgz#86b94b32e19f76ca5f41f05942891d6e45f8053b" - integrity sha512-dvtPQZ5+J+zUE1uq7gP853Oj63e+n0T1ydZ/yRdVh7d8zW9ZFuC9fFrg3MqP1cv1NPPur8rrTqDKN2mRBkSSBw== - -"@next/swc-win32-ia32-msvc@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.5.tgz#c5045cb61bd21c98b638559a35f254f6d664c507" - integrity sha512-gK9zwGe25x31S4AjPy3Bf2niQvHIAbmwgkzmqWG3OmD4K2Z/Dh2ju4vuyzPzIt0pwQe4B520meP9NizTBmVWSg== - -"@next/swc-win32-x64-msvc@13.4.5": - version "13.4.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.5.tgz#e46591701733142b2ffd219f3e56a9e1bc06d958" - integrity sha512-iyNQVc7eGehrik9RJt9xGcnO6b/pi8C7GCfg8RGenx1IlalEKbYRgBJloF7DQzwlrV47E9bQl8swT+JawaNcKA== +"@next/swc-darwin-arm64@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz#77ad462b5ced4efdc26cb5a0053968d2c7dac1b6" + integrity sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ== + +"@next/swc-darwin-x64@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz#aebe38713a4ce536ee5f2a291673e14b715e633a" + integrity sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw== + +"@next/swc-linux-arm64-gnu@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz#ec54db65b587939c7b94f9a84800f003a380f5a6" + integrity sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg== + +"@next/swc-linux-arm64-musl@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz#1f5e2c1ea6941e7d530d9f185d5d64be04279d86" + integrity sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA== + +"@next/swc-linux-x64-gnu@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz#96b0882492a2f7ffcce747846d3680730f69f4d1" + integrity sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g== + +"@next/swc-linux-x64-musl@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz#f276b618afa321d2f7b17c81fc83f429fb0fd9d8" + integrity sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q== + +"@next/swc-win32-arm64-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz#1599ae0d401da5ffca0947823dac577697cce577" + integrity sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw== + +"@next/swc-win32-ia32-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz#55cdd7da90818f03e4da16d976f0cb22045d16fd" + integrity sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA== + +"@next/swc-win32-x64-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz#648f79c4e09279212ac90d871646ae12d80cdfce" + integrity sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -938,16 +872,28 @@ fastq "^1.6.0" "@oclif/command@^1", "@oclif/command@^1.8.15": - version "1.8.25" - resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.25.tgz#9bc7fea9d03320837ca82d851b43b1f089d7b7b9" - integrity sha512-teCfKH6GNF46fiCn/P5EMHX93RE3KJAW4i0sq3X9phrzs6807WRauhythdc8OKINxd+LpqwQ1i5bnaCKvLZRcQ== + version "1.8.36" + resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.36.tgz#9739b9c268580d064a50887c4597d1b4e86ca8b5" + integrity sha512-/zACSgaYGtAQRzc7HjzrlIs14FuEYAZrMOEwicRoUnZVyRunG4+t5iSEeQu0Xy2bgbCD0U1SP/EdeNZSTXRwjQ== dependencies: "@oclif/config" "^1.18.2" "@oclif/errors" "^1.3.6" "@oclif/help" "^1.0.1" - "@oclif/parser" "^3.8.10" + "@oclif/parser" "^3.8.17" debug "^4.1.1" - semver "^7.5.1" + semver "^7.5.4" + +"@oclif/config@1.18.16": + version "1.18.16" + resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.16.tgz#3235d260ab1eb8388ebb6255bca3dd956249d796" + integrity sha512-VskIxVcN22qJzxRUq+raalq6Q3HUde7sokB7/xk5TqRZGEKRVbFeqdQBxDWwQeudiJEgcNiMvIFbMQ43dY37FA== + dependencies: + "@oclif/errors" "^1.3.6" + "@oclif/parser" "^3.8.16" + debug "^4.3.4" + globby "^11.1.0" + is-wsl "^2.1.1" + tslib "^2.6.1" "@oclif/config@1.18.2": version "1.18.2" @@ -961,29 +907,17 @@ is-wsl "^2.1.1" tslib "^2.0.0" -"@oclif/config@1.18.6": - version "1.18.6" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.6.tgz#37367026b3110a2f04875509b1920a8ee4489f21" - integrity sha512-OWhCpdu4QqggOPX1YPZ4XVmLLRX+lhGjXV6RNA7sogOwLqlEmSslnN/lhR5dkhcWZbKWBQH29YCrB3LDPRu/IA== - dependencies: - "@oclif/errors" "^1.3.6" - "@oclif/parser" "^3.8.9" - debug "^4.3.4" - globby "^11.1.0" - is-wsl "^2.1.1" - tslib "^2.3.1" - "@oclif/config@^1", "@oclif/config@^1.18.2": - version "1.18.8" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.8.tgz#efaccbd0381f90a98fa69c9131e14c5a91fc0659" - integrity sha512-FetS52+emaZQui0roFSdbBP8ddBkIezEoH2NcjLJRjqkMGdE9Z1V+jsISVqTYXk2KJ1gAI0CHDXFjJlNBYbJBg== + version "1.18.17" + resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.17.tgz#00aa4049da27edca8f06fc106832d9f0f38786a5" + integrity sha512-k77qyeUvjU8qAJ3XK3fr/QVAqsZO8QOBuESnfeM5HHtPNLSyfVcwiMM2zveSW5xRdLSG3MfV8QnLVkuyCL2ENg== dependencies: "@oclif/errors" "^1.3.6" - "@oclif/parser" "^3.8.10" + "@oclif/parser" "^3.8.17" debug "^4.3.4" globby "^11.1.0" is-wsl "^2.1.1" - tslib "^2.5.0" + tslib "^2.6.1" "@oclif/errors@1.3.5": version "1.3.5" @@ -1008,11 +942,11 @@ wrap-ansi "^7.0.0" "@oclif/help@^1.0.1": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@oclif/help/-/help-1.0.5.tgz#0a370d0340fcf167ec3cb7a4f3074ebb3db8a94a" - integrity sha512-77ZXqVXcd+bQ6EafN56KbL4PbNtZM/Lq4GQElekNav+CPIgPNKT3AtMTQrc0fWke6bb/BTLB+1Fu1gWgx643jQ== + version "1.0.15" + resolved "https://registry.yarnpkg.com/@oclif/help/-/help-1.0.15.tgz#5e36e576b8132a4906d2662204ad9de7ece87e8f" + integrity sha512-Yt8UHoetk/XqohYX76DfdrUYLsPKMc5pgkzsZVHDyBSkLiGRzujVaGZdjr32ckVZU9q3a47IjhWxhip7Dz5W/g== dependencies: - "@oclif/config" "1.18.6" + "@oclif/config" "1.18.16" "@oclif/errors" "1.3.6" chalk "^4.1.2" indent-string "^4.0.0" @@ -1027,15 +961,15 @@ resolved "https://registry.yarnpkg.com/@oclif/linewrap/-/linewrap-1.0.0.tgz#aedcb64b479d4db7be24196384897b5000901d91" integrity sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw== -"@oclif/parser@^3.8.0", "@oclif/parser@^3.8.10", "@oclif/parser@^3.8.9": - version "3.8.10" - resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.10.tgz#7b1048566e1d3f45ed09ca92b2e30f09bd9647e1" - integrity sha512-J4l/NcnfbIU84+NNdy6bxq9yJt4joFWNvpk59hq+uaQPUNtjmNJDVGuRvf6GUOxHNgRsVK1JRmd/Ez+v7Z9GqQ== +"@oclif/parser@^3.8.0", "@oclif/parser@^3.8.16", "@oclif/parser@^3.8.17": + version "3.8.17" + resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.17.tgz#e1ce0f29b22762d752d9da1c7abd57ad81c56188" + integrity sha512-l04iSd0xoh/16TGVpXb81Gg3z7tlQGrEup16BrVLsZBK6SEYpYHRJZnM32BwZrHI97ZSFfuSwVlzoo6HdsaK8A== dependencies: "@oclif/errors" "^1.3.6" "@oclif/linewrap" "^1.0.0" chalk "^4.1.0" - tslib "^2.5.0" + tslib "^2.6.2" "@oclif/plugin-help@^3": version "3.3.1" @@ -1075,33 +1009,21 @@ "@paypal/sdk-constants" "^1.0.122" "@paypal/sdk-constants@^1.0.122": - version "1.0.130" - resolved "https://registry.yarnpkg.com/@paypal/sdk-constants/-/sdk-constants-1.0.130.tgz#f1da2a7b1999b5436c6aa91d163bda36d702b883" - integrity sha512-hrh1SyZy+qiBA+h/EYWjTZ7QiBcRgDiEfhHCxP47fiBO8wE9w+DiEfHm747vFQomvHg6AyDxhyGXjnuaGAW31A== + version "1.0.131" + resolved "https://registry.yarnpkg.com/@paypal/sdk-constants/-/sdk-constants-1.0.131.tgz#ef846a8923b5a074c31428c6f89ed5ac4f6f665f" + integrity sha512-wL8YG9cl4CA2ZRL1QqG98TtkDqrj5COPIRfR1gMrAGbVaCp9PcSil9bvUslhTuopExRANk4SFfuEyhFc975dLw== dependencies: hi-base32 "^0.5.0" -"@pkgr/utils@^2.3.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.1.tgz#adf291d0357834c410ce80af16e711b56c7b1cd3" - integrity sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.2.12" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.5.0" - "@rushstack/eslint-patch@^1.1.3": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.1.tgz#edbb85ff95f3be41eaa70c6d6ad6d8ba0a9c7e46" - integrity sha512-RkmuBcqiNioeeBKbgzMlOdreUkJfYaSjwgx9XDgGGpjvWgyaxWvDmZVSN9CS6LjEASadhgPv2BcFp+SeouWXXA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.4.0.tgz#77e948b9760bd22736a5d26e335a690f76fda37b" + integrity sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg== "@rushstack/ts-command-line@^4.12.2": - version "4.15.2" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.15.2.tgz#7920e3fa2ab6af129d995ce4424c600da0bf8a93" - integrity sha512-5+C2uoJY8b+odcZD6coEe2XNC4ZjGB4vCMESbqW/8DHRWC/qIHfANdmN9F1wz/lAgxz72i7xRoVtPY2j7e4gpQ== + version "4.16.0" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.16.0.tgz#92d3af993ca5ee271ea130d41f5ce6a9479cae3f" + integrity sha512-WJKhdR9ThK9Iy7t78O3at7I3X4Ssp5RRZay/IQa8NywqkFy/DQbT3iLouodMMdUwLZD9n8n++xLubVd3dkmpkg== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -1116,9 +1038,9 @@ prop-types "^15.7.2" "@stripe/stripe-js@^1.29.0": - version "1.53.0" - resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.53.0.tgz#7821e0ba3204a551de88acc7eb92b77bfc252628" - integrity sha512-qhhAa5WxlgVqh1J41ppyqqQVu6S1T1Q9lDAk2Ho9eI/GjrkMvAHcJpKqhekJRsZ1vjsK4P68PYOcXBXPyNCpnQ== + version "1.54.2" + resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.54.2.tgz#0665848e22cbda936cfd05256facdfbba121438d" + integrity sha512-R1PwtDvUfs99cAjfuQ/WpwJ3c92+DAMy9xGApjqlWQMj0FKQabUAys2swfTRNzuYAYJh7NqK2dzcYVNkKLEKUg== "@swc/helpers@0.5.1": version "0.5.1" @@ -1127,17 +1049,17 @@ dependencies: tslib "^2.4.0" -"@tanstack/query-core@4.29.7": - version "4.29.7" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.29.7.tgz#9fe4587e23cb9566b937c518ffa44226041d388d" - integrity sha512-GXG4b5hV2Loir+h2G+RXhJdoZhJLnrBWsuLB2r0qBRyhWuXq9w/dWxzvpP89H0UARlH6Mr9DiVj4SMtpkF/aUA== +"@tanstack/query-core@4.35.3": + version "4.35.3" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.35.3.tgz#1c127e66b4ad1beeac052db83a812d7cb67369e1" + integrity sha512-PS+WEjd9wzKTyNjjQymvcOe1yg8f3wYc6mD+vb6CKyZAKvu4sIJwryfqfBULITKCla7P9C4l5e9RXePHvZOZeQ== "@tanstack/react-query@^4.22.4": - version "4.29.7" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.29.7.tgz#772996905a81ca64172582891c5a82e88dbafccd" - integrity sha512-ijBWEzAIo09fB1yd22slRZzprrZ5zMdWYzBnCg5qiXuFbH78uGN1qtGz8+Ed4MuhaPaYSD+hykn+QEKtQviEtg== + version "4.35.3" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.35.3.tgz#03d726ef6a19d426166427c6539b003dd9606d1b" + integrity sha512-UgTPioip/rGG3EQilXfA2j4BJkhEQsR+KAbF+KIuvQ7j4MkgnTCJF01SfRpIRNtQTlEfz/+IL7+jP8WA8bFbsw== dependencies: - "@tanstack/query-core" "4.29.7" + "@tanstack/query-core" "4.35.3" use-sync-external-store "^1.2.0" "@types/argparse@1.0.38": @@ -1159,9 +1081,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" - integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== + version "8.44.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" + integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1172,19 +1094,19 @@ integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/google.maps@^3.45.3": - version "3.53.1" - resolved "https://registry.yarnpkg.com/@types/google.maps/-/google.maps-3.53.1.tgz#c1fb7325eaa5af3574aedb9390d16798be0dad00" - integrity sha512-+7JVpq+kFzTU3TweSz6huYuFedZ4s60WeABaXYU6rDZczdpfoQ5DuZNCDc/eAAcdFJpxMMDpzf3d9YTMNodBFg== + version "3.54.1" + resolved "https://registry.yarnpkg.com/@types/google.maps/-/google.maps-3.54.1.tgz#c1d5d911d219c3dcd2c8735be3b465a0a26b947c" + integrity sha512-zh6333O/yPfcvRxpBTjnNFJjiHiujvy+tTAWwvNj3LMy90Y+VLTom8n9gvmgjXhOHgHvYpgO2Xyz31wYEYN27A== "@types/hogan.js@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/hogan.js/-/hogan.js-3.0.1.tgz#64c54407b30da359763e14877f5702b8ae85d61c" - integrity sha512-D03i/2OY7kGyMq9wdQ7oD8roE49z/ZCZThe/nbahtvuqCNZY9T2MfedOWyeBdbEpY2W8Gnh/dyJLdFtUCOkYbg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/hogan.js/-/hogan.js-3.0.2.tgz#0f655127712381bdee3e5cff016ed315f3511285" + integrity sha512-M6jOVsZEK31II8HV9QaYI5pg/w7fZb+3aqdCn3M3uofBswvrYBzbaQwSudB6z1UqF2IT3B8vt/3oBoa7XqugFw== "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" @@ -1192,14 +1114,14 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.14.195": - version "4.14.195" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + version "4.14.198" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.198.tgz#4d27465257011aedc741a809f1269941fa2c5d4c" + integrity sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg== "@types/node@*": - version "20.1.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.7.tgz#ce10c802f7731909d0a44ac9888e8b3a9125eb62" - integrity sha512-WCuw/o4GSwDGMoonES8rcvwsig77dGCMbZDrZr2x4ZZiNW4P/gcoZXe/0twgtobcTkmg9TuKflxYL/DuwDyJzg== + version "20.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12" + integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw== "@types/node@17.0.21": version "17.0.21" @@ -1207,24 +1129,24 @@ integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== "@types/node@^14.14.31": - version "14.18.47" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.47.tgz#89a56b05804d136cb99bf2f823bb00814a889aae" - integrity sha512-OuJi8bIng4wYHHA3YpKauL58dZrPxro3d0tabPHyiNF8rKfGKuVfr83oFlPLmKri1cX+Z3cJP39GXmnqkP11Gw== + version "14.18.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.61.tgz#752097010d85f6279b3069811bf0e99eba996096" + integrity sha512-1mFT4DqS4/s9tlZbdkwEB/EnSykA9MDeDLIk3FHApGvIMGY//qgstB2gu9GKGESWyW/qiRUO+jhlLJ9bBJ8j+Q== "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.6" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.6.tgz#bbf819813d6be21011b8f5801058498bec555572" + integrity sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg== "@types/qs@^6.5.3": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.8" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" + integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== "@types/react-instantsearch-core@*": - version "6.26.3" - resolved "https://registry.yarnpkg.com/@types/react-instantsearch-core/-/react-instantsearch-core-6.26.3.tgz#12345289aab3c285a479f9304df1a24754f20e83" - integrity sha512-dBq/K1NQFBgLmCdiLYaC15KjXdjZk8UTQBhumSg+fAHgpW3ai5fu5BbzAKzSCkqYwbgqvhCQ1EZ9PLvPvOfqwQ== + version "6.26.4" + resolved "https://registry.yarnpkg.com/@types/react-instantsearch-core/-/react-instantsearch-core-6.26.4.tgz#63581cb0e1baced6656815844ef44a605c8beab7" + integrity sha512-Iy6I0oOojQiVhPzaN9HsKs0ajODXv7nuUDDLGTSWw8XS7l6Dz2PaMwusEIhfSMz//13J5bUas3K5xoreRdptzA== dependencies: "@types/react" "*" algoliasearch ">=4" @@ -1263,14 +1185,14 @@ integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/triple-beam@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" - integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.3.tgz#726ae98a5f6418c8f24f9b0f2a9f81a8664876ae" + integrity sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g== "@types/validator@^13.7.10": - version "13.7.17" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.17.tgz#0a6d1510395065171e3378a4afc587a3aefa7cc1" - integrity sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ== + version "13.11.1" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.1.tgz#6560af76ed54490e68c42f717ab4e742ba7be74b" + integrity sha512-d/MUkJYdOeKycmm75Arql4M5+UuXmf4cHdHKsyw1GcvnNgL6s77UkgSgJ8TE/rI5PYsnwYq5jkcWBLuN/MpQ1A== "@types/yauzl@^2.9.1": version "2.10.0" @@ -1279,49 +1201,50 @@ dependencies: "@types/node" "*" -"@typescript-eslint/parser@^5.42.0": - version "5.59.11" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.11.tgz#af7d4b7110e3068ce0b97550736de455e4250103" - integrity sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA== +"@typescript-eslint/parser@^5.4.2 || ^6.0.0": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.2.tgz#e0ae93771441b9518e67d0660c79e3a105497af4" + integrity sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw== dependencies: - "@typescript-eslint/scope-manager" "5.59.11" - "@typescript-eslint/types" "5.59.11" - "@typescript-eslint/typescript-estree" "5.59.11" + "@typescript-eslint/scope-manager" "6.7.2" + "@typescript-eslint/types" "6.7.2" + "@typescript-eslint/typescript-estree" "6.7.2" + "@typescript-eslint/visitor-keys" "6.7.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.59.11": - version "5.59.11" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz#5d131a67a19189c42598af9fb2ea1165252001ce" - integrity sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q== +"@typescript-eslint/scope-manager@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.2.tgz#cf59a2095d2f894770c94be489648ad1c78dc689" + integrity sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw== dependencies: - "@typescript-eslint/types" "5.59.11" - "@typescript-eslint/visitor-keys" "5.59.11" + "@typescript-eslint/types" "6.7.2" + "@typescript-eslint/visitor-keys" "6.7.2" -"@typescript-eslint/types@5.59.11": - version "5.59.11" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.11.tgz#1a9018fe3c565ba6969561f2a49f330cf1fe8db1" - integrity sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA== +"@typescript-eslint/types@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.2.tgz#75a615a6dbeca09cafd102fe7f465da1d8a3c066" + integrity sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg== -"@typescript-eslint/typescript-estree@5.59.11": - version "5.59.11" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz#b2caaa31725e17c33970c1197bcd54e3c5f42b9f" - integrity sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA== +"@typescript-eslint/typescript-estree@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.2.tgz#ce5883c23b581a5caf878af641e49dd0349238c7" + integrity sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ== dependencies: - "@typescript-eslint/types" "5.59.11" - "@typescript-eslint/visitor-keys" "5.59.11" + "@typescript-eslint/types" "6.7.2" + "@typescript-eslint/visitor-keys" "6.7.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/visitor-keys@5.59.11": - version "5.59.11" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz#dca561ddad169dc27d62396d64f45b2d2c3ecc56" - integrity sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA== +"@typescript-eslint/visitor-keys@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.2.tgz#4cb2bd786f1f459731b0ad1584c9f73e1c7a4d5c" + integrity sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ== dependencies: - "@typescript-eslint/types" "5.59.11" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "6.7.2" + eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" @@ -1467,7 +1390,7 @@ accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: +acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== @@ -1489,10 +1412,10 @@ acorn-walk@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@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== aggregate-error@^3.0.0: version "3.1.0" @@ -1517,32 +1440,39 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -algoliasearch-helper@>=3, algoliasearch-helper@^3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.13.0.tgz#1ccca7056fd27c2b0b5c92dd5c0abf4314bec3b8" - integrity sha512-kV3c1jMQCvkARtGsSDvAwuht4PAMSsQILqPiH4WFiARoa3jXJ/r1TQoBWAjWyWF48rsNYCv7kzxgB4LTxrvvuw== +algoliasearch-helper@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.14.0.tgz#2409c2591952719ab6fba1de77b3bbe5094ab85e" + integrity sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch-helper@>=3: + version "3.14.1" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.14.1.tgz#90b505b7baf3c96500d25ab6ecb237a0b1331bea" + integrity sha512-TZihm6eisSqgLWOXpISAUFXAolJvEpa1gkTjUUEDmVl+TTiQuNvzLQ/osOiqIXzx6QSS4Pd6Ry+SKKOwiqJ17g== dependencies: "@algolia/events" "^4.0.1" algoliasearch@>=4: - version "4.17.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.17.0.tgz#46ed58b2b99509d041f11cd1ea83623edf84355f" - integrity sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA== - dependencies: - "@algolia/cache-browser-local-storage" "4.17.0" - "@algolia/cache-common" "4.17.0" - "@algolia/cache-in-memory" "4.17.0" - "@algolia/client-account" "4.17.0" - "@algolia/client-analytics" "4.17.0" - "@algolia/client-common" "4.17.0" - "@algolia/client-personalization" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/logger-common" "4.17.0" - "@algolia/logger-console" "4.17.0" - "@algolia/requester-browser-xhr" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/requester-node-http" "4.17.0" - "@algolia/transporter" "4.17.0" + version "4.20.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.20.0.tgz#700c2cb66e14f8a288460036c7b2a554d0d93cf4" + integrity sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g== + dependencies: + "@algolia/cache-browser-local-storage" "4.20.0" + "@algolia/cache-common" "4.20.0" + "@algolia/cache-in-memory" "4.20.0" + "@algolia/client-account" "4.20.0" + "@algolia/client-analytics" "4.20.0" + "@algolia/client-common" "4.20.0" + "@algolia/client-personalization" "4.20.0" + "@algolia/client-search" "4.20.0" + "@algolia/logger-common" "4.20.0" + "@algolia/logger-console" "4.20.0" + "@algolia/requester-browser-xhr" "4.20.0" + "@algolia/requester-common" "4.20.0" + "@algolia/requester-node-http" "4.20.0" + "@algolia/transporter" "4.20.0" ansi-align@^3.0.0: version "3.0.1" @@ -1556,12 +1486,7 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^3.1.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.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: 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== @@ -1633,11 +1558,11 @@ argparse@^2.0.1: integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" array-buffer-byte-length@^1.0.0: version "1.0.0" @@ -1652,15 +1577,15 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.5, array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== +array-includes@^3.1.6: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^2.1.0: @@ -1668,36 +1593,60 @@ 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.prototype.findlastindex@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" asn1@~0.2.3: version "0.2.6" @@ -1726,6 +1675,13 @@ async@^3.2.0, async@^3.2.3: resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1737,12 +1693,12 @@ at-least-node@^1.0.0: integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== autoprefixer@^10.4.2: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + version "10.4.15" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" + integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001520" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -1772,19 +1728,19 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: - version "4.7.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.1.tgz#04392c9ccb3d7d7c5d2f8684f148d56d3442f33d" - integrity sha512-sCXXUhA+cljomZ3ZAwb8i1p3oOlkABzPy08ZDAoGcYuvtBPlQ1Ytde129ArXyHWDhfeewq7rlx9F+cUx2SSlkg== + version "4.8.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.1.tgz#6948854183ee7e7eae336b9877c5bafa027998ea" + integrity sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ== axios-retry@^3.1.9: - version "3.4.0" - resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.4.0.tgz#f464dbe9408e5aa78fa319afd38bb69b533d8854" - integrity sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA== + version "3.7.0" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.7.0.tgz#d5007755d257b97e08d846089976f838b9db9ef9" + integrity sha512-ZTnCkJbRtfScvwiRnoVskFAfvU0UG3xNcsjwTR0mawSbIJoothxn67gKsMaNAFHRXJ1RmuLhmZBzvyXi3+9WyQ== dependencies: "@babel/runtime" "^7.15.4" is-retry-allowed "^2.2.0" -axios@^0.21.1, axios@^0.21.4: +axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -1799,11 +1755,11 @@ axios@^0.24.0: follow-redirects "^1.14.4" axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" babel-loader@^8.2.3: version "8.3.0" @@ -1839,11 +1795,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1923,13 +1874,6 @@ boxen@^5.0.1: widest-line "^3.1.0" wrap-ansi "^7.0.0" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1952,15 +1896,15 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" buffer-crc32@~0.2.3: version "0.2.13" @@ -1991,9 +1935,9 @@ buffer@^5.5.0, buffer@^5.6.0: ieee754 "^1.1.13" bullmq@^3.5.6: - version "3.13.4" - resolved "https://registry.yarnpkg.com/bullmq/-/bullmq-3.13.4.tgz#3ebf3628e4778e3ba05e7757d55369af49ddb0c8" - integrity sha512-3B16ZbOQSr9VoWpUXhoLB4khgxAbqwIiboJItA5rU2CEkLRe613w8yGxrivNdjJ6q8RcZtS+QvK0WHqCsuQYTQ== + version "3.15.8" + resolved "https://registry.yarnpkg.com/bullmq/-/bullmq-3.15.8.tgz#e8ec5b46b0b7d7ce57e509280d03745109411e05" + integrity sha512-k3uimHGhl5svqD7SEak+iI6c5DxeLOaOXzCufI9Ic0ST3nJr69v71TGR4cXCTXdgCff3tLec5HgoBnfyWjgn5A== dependencies: cron-parser "^4.6.0" glob "^8.0.3" @@ -2004,13 +1948,6 @@ bullmq@^3.5.6: tslib "^2.0.0" uuid "^9.0.0" -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - busboy@1.6.0, busboy@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -2029,9 +1966,9 @@ bytes@3.1.2: integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -2069,10 +2006,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001488" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz#d19d7b6e913afae3e98f023db97c19e9ddc5e91f" - integrity sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ== +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: + version "1.0.30001538" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz#9dbc6b9af1ff06b5eb12350c2012b3af56744f3f" + integrity sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw== cardinal@^2.1.1: version "2.1.1" @@ -2087,7 +2024,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^2.0.0: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2190,9 +2127,9 @@ cli-progress@^3.4.0: string-width "^4.2.3" cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== cli-table3@~0.6.1: version "0.6.3" @@ -2488,9 +2425,9 @@ cookie@0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js@^3.6.5: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" - integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + version "3.32.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.2.tgz#172fb5949ef468f93b4be7841af6ab1f21992db7" + integrity sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ== core-util-is@1.0.2: version "1.0.2" @@ -2511,9 +2448,9 @@ cors@^2.8.5: vary "^1" cron-parser@^4.2.0, cron-parser@^4.6.0: - version "4.8.1" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.8.1.tgz#47062ea63d21d78c10ddedb08ea4c5b6fc2750fb" - integrity sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ== + version "4.9.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5" + integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== dependencies: luxon "^3.2.1" @@ -2525,11 +2462,11 @@ cross-env@^5.2.1: cross-spawn "^6.0.5" cross-fetch@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" - integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== dependencies: - node-fetch "^2.6.11" + node-fetch "^2.6.12" cross-spawn@^6.0.5: version "6.0.5" @@ -2627,9 +2564,9 @@ dashdash@^1.12.0: assert-plus "^1.0.0" dayjs@^1.10.4: - version "1.11.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== + version "1.11.9" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" + integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== debug@2.6.9: version "2.6.9" @@ -2664,30 +2601,6 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-equal@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2698,24 +2611,6 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -2723,21 +2618,26 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -2761,15 +2661,20 @@ depd@2.0.0, depd@~2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== didyoumean@^1.2.2: version "1.2.2" @@ -2814,26 +2719,21 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + dotenv@16.1.4: version "16.1.4" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.1.4.tgz#67ac1a10cd9c25f5ba604e4e08bc77c0ebe0ca8c" integrity sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw== -dotenv@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - -dotenv@^16.1.4: +dotenv@^16.0.3, dotenv@^16.1.4: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2854,10 +2754,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.284: - version "1.4.397" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz#82a7e26c657538d59bb713b97ac22f97ea3a90ea" - integrity sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q== +electron-to-chromium@^1.4.477: + version "1.4.523" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz#f82f99243c827df05c26776d49712cb284972df6" + integrity sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg== emittery@^0.12.1: version "0.12.1" @@ -2896,7 +2796,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.12.0: +enhanced-resolve@^5.12.0, enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== @@ -2904,33 +2804,27 @@ enhanced-resolve@^5.12.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" - integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" + strip-ansi "^6.0.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" @@ -2945,39 +2839,48 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" + which-typed-array "^1.1.11" -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== +es-iterator-helpers@^1.0.12: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: + asynciterator.prototype "^1.0.0" call-bind "^1.0.2" - get-intrinsic "^1.1.3" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" es-module-lexer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" - integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" + integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -3025,44 +2928,43 @@ escape-string-regexp@^1.0.5: integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-config-next@^13.4.5: - version "13.4.5" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.5.tgz#353f462f2234a92e14814f07aa119a6079978880" - integrity sha512-7qgJmRp9ClRzPgkzEz7ahK+Rasiv4k2aU3eqkkORzseNUGdtImZVYomcXUhUheHwkxzdN2p//nbIA7zJrCxsCg== + version "13.4.19" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.19.tgz#f46be9d4bd9e52755f846338456132217081d7f8" + integrity sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g== dependencies: - "@next/eslint-plugin-next" "13.4.5" + "@next/eslint-plugin-next" "13.4.19" "@rushstack/eslint-patch" "^1.1.3" - "@typescript-eslint/parser" "^5.42.0" + "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^3.5.2" eslint-plugin-import "^2.26.0" eslint-plugin-jsx-a11y "^6.5.1" eslint-plugin-react "^7.31.7" - eslint-plugin-react-hooks "^4.5.0" + eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-import-resolver-typescript@^3.5.2: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" + integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" get-tsconfig "^4.5.0" - globby "^13.1.3" is-core-module "^2.11.0" is-glob "^4.0.3" - synckit "^0.8.5" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -3070,25 +2972,27 @@ eslint-module-utils@^2.7.4: debug "^3.2.7" eslint-plugin-import@^2.26.0: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + version "2.28.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.13.0" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsx-a11y@^6.5.1: version "6.7.1" @@ -3112,20 +3016,21 @@ eslint-plugin-jsx-a11y@^6.5.1: object.fromentries "^2.0.6" semver "^6.3.0" -eslint-plugin-react-hooks@^4.5.0: +"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.31.7: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -3135,7 +3040,7 @@ eslint-plugin-react@^7.31.7: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" eslint-scope@5.1.1: @@ -3147,9 +3052,9 @@ eslint-scope@5.1.1: estraverse "^4.1.1" eslint-scope@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -3167,9 +3072,9 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@8.10.0: version "8.10.0" @@ -3218,11 +3123,11 @@ esm@^3.2.25: integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== espree@^9.3.1, espree@^9.4.0: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -3290,7 +3195,7 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0, execa@^5.1.1: +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -3305,21 +3210,6 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -3428,10 +3318,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^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.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== +fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3534,17 +3424,18 @@ find-up@^4.0.0, find-up@^4.1.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== + version "3.1.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^3.1.0" + flatted "^3.2.7" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.7: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== fn.name@1.x.x: version "1.1.0" @@ -3583,9 +3474,9 @@ forwarded@0.2.0: integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + version "4.3.6" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" + integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== fresh@0.5.2: version "0.5.2" @@ -3653,31 +3544,31 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 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== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 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== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" 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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -3692,7 +3583,7 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== @@ -3714,7 +3605,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +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== @@ -3728,9 +3619,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + version "4.7.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" + integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== dependencies: resolve-pkg-maps "^1.0.0" @@ -3845,9 +3736,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0, globals@^13.6.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.21.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" + integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== dependencies: type-fest "^0.20.2" @@ -3870,17 +3761,6 @@ globby@11.1.0, globby@^11.0.1, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3894,9 +3774,9 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphql@^16.6.0: - version "16.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" - integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" @@ -3999,11 +3879,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - hyperlinker@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" @@ -4068,9 +3943,9 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^8.0.0: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -4086,12 +3961,12 @@ inquirer@^8.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^6.0.1" -instantsearch.js@4.56.0: - version "4.56.0" - resolved "https://registry.yarnpkg.com/instantsearch.js/-/instantsearch.js-4.56.0.tgz#faedcbaac1c94575703470a048cf39e4170fc6d0" - integrity sha512-A50GZjcK9c3o3y49fqOX6ghI4leCPAiz0h5xY/yvU7mMXCwwXZw1BsUbOPM02gDvaUdYvibycW7byVQno3DK1g== +instantsearch.js@4.56.8: + version "4.56.8" + resolved "https://registry.yarnpkg.com/instantsearch.js/-/instantsearch.js-4.56.8.tgz#c417c68a792a4b7d6cc866cdb059d828799e84da" + integrity sha512-40DJ5l70ZzVzWPK3qrHTKlJLaHGq1PRZpzfL6281P2mz8G19WOHQHKAP4Zh6a4lOZaRtJQUiPjQwqCHSurXZ5g== dependencies: "@algolia/events" "^4.0.1" "@algolia/ui-components-highlight-vdom" "^1.2.1" @@ -4100,14 +3975,14 @@ instantsearch.js@4.56.0: "@types/google.maps" "^3.45.3" "@types/hogan.js" "^3.0.0" "@types/qs" "^6.5.3" - algoliasearch-helper "^3.13.0" + algoliasearch-helper "3.14.0" hogan.js "^3.0.2" htm "^3.0.0" preact "^10.10.0" qs "^6.5.1 < 6.10" search-insights "^2.6.0" -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -4152,14 +4027,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -4174,6 +4041,13 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4208,14 +4082,7 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-core-module@^2.13.0: +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.9.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -4234,11 +4101,6 @@ is-docker@^2.0.0, is-docker@^2.1.1, is-docker@^2.2.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" @@ -4249,11 +4111,25 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + 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-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -4268,13 +4144,6 @@ 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-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -4295,7 +4164,7 @@ is-invalid-path@^0.1.0: dependencies: is-glob "^2.0.0" -is-map@^2.0.1, is-map@^2.0.2: +is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== @@ -4345,7 +4214,7 @@ is-retry-allowed@^2.2.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== -is-set@^2.0.1, is-set@^2.0.2: +is-set@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== @@ -4362,11 +4231,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - 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" @@ -4381,16 +4245,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -4436,11 +4296,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is_js@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/is_js/-/is_js-0.9.0.tgz#0ab94540502ba7afa24c856aa985561669e9c52d" - integrity sha512-8Y5EHSH+TonfUHX2g3pMJljdbGavg55q4jmHzghJCdqYDbdNROC8uw/YFQwIRCRqRJT1EY3pJefz+kglw+o7sg== - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -4466,6 +4321,17 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -4476,9 +4342,9 @@ jest-worker@^27.4.5: supports-color "^8.0.0" jiti@^1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" - integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + version "1.20.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" + integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -4510,6 +4376,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -4542,7 +4413,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -4564,14 +4435,20 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jsonwebtoken@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" - integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== dependencies: jws "^3.2.2" - lodash "^4.17.21" + 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 "^7.3.8" + semver "^7.5.4" jsprim@^2.0.2: version "2.0.2" @@ -4584,12 +4461,14 @@ jsprim@^2.0.2: verror "1.10.0" "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" jwa@^1.4.1: version "1.4.1" @@ -4608,6 +4487,13 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.0: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -4689,9 +4575,9 @@ levn@^0.4.1: type-check "~0.4.0" libphonenumber-js@^1.10.14: - version "1.10.30" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.30.tgz#c0559d6c58dc1a7f189b88b7b23354c98b182848" - integrity sha512-PLGc+xfrQrkya/YK2/5X+bPpxRmyJBHM+xxz9krUdSgk4Vs2ZwxX5/Ow0lv3r9PDlDtNWb4u+it8MY5rZ0IyGw== + version "1.10.44" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.44.tgz#6709722461173e744190494aaaec9c1c690d8ca8" + integrity sha512-svlRdNBI5WgBjRC20GrCfbFiclbF0Cx+sCcQob/C1r57nsoq0xg8r65QbTyVyweQIlB33P+Uahyho6EMYgcOyQ== lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" @@ -4743,17 +4629,47 @@ lodash.defaults@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + lodash.isarguments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + 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.1.1: +lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== @@ -4827,9 +4743,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" luxon@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" - integrity sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg== + version "3.4.3" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.3.tgz#8ddf0358a9492267ffec6a13675fbaab5551315d" + integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" @@ -4859,18 +4775,19 @@ medusa-core-utils@^1.2.0: integrity sha512-9mzXGkMsll92C46Ub8A9vwjcfFiHfdkgshwmPP9QpRrm02M6N+SQb45S2A9t0dKjyT9J7rgCCSrFhYQg3pvqbw== medusa-react@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/medusa-react/-/medusa-react-9.0.1.tgz#9186efdf57b654400a99e3ccd34227a5af8c6672" - integrity sha512-iOHq6sE1hmZ0HphrilaB2t2tEOTYwBazBKjhtobGSWzDE4uSloUAnVNB7ZGyXkOm4C5EIedKcHRTHAViignumg== + version "9.0.5" + resolved "https://registry.yarnpkg.com/medusa-react/-/medusa-react-9.0.5.tgz#4c5efe4d527d65ab816141eeffae3d5f207b179d" + integrity sha512-O5oJEfTQn7ysky1Zoxctm4nc7xVx8hAHqCzKI6g6KaJpLTaBSKq66pKQvRwMEkU3ao9Um+/CP0QVwwNWyh/skw== dependencies: - "@medusajs/medusa-js" "^6.0.1" + "@medusajs/medusa-js" "*" -medusa-telemetry@^0.0.16: - version "0.0.16" - resolved "https://registry.yarnpkg.com/medusa-telemetry/-/medusa-telemetry-0.0.16.tgz#f087494df4646c5c7cf281603595a213b50b116a" - integrity sha512-i9FVCfILzVQXXYuPCNf4h9BwTqi1uVyL08zzKLTCq/ttodyMb77TmnvolrE5XuvLsRbw3iqQ3aGq+sn0aURaVQ== +medusa-telemetry@^0.0.17: + version "0.0.17" + resolved "https://registry.yarnpkg.com/medusa-telemetry/-/medusa-telemetry-0.0.17.tgz#44e434307d7078491fb0bddb47883e6af7ec0ba2" + integrity sha512-Wwtm7QE1AKME0/uiEPen7lfzE9wnaO7J9Or8ObT8eTUipOqIbYRLEY7SSdGjMRg4NdyrzOJMIIjbcPz+vvsRVw== dependencies: - axios "^0.21.1" + "@babel/runtime" "^7.22.10" + axios "^0.21.4" axios-retry "^3.1.9" boxen "^5.0.1" ci-info "^3.2.0" @@ -4951,11 +4868,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -5045,9 +4957,9 @@ msgpackr-extract@^3.0.2: "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" msgpackr@^1.6.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.2.tgz#cd301f85de948111eb34553bfb402f21650f368d" - integrity sha512-xtDgI3Xv0AAiZWLRGDchyzBwU6aq0rwJ+W+5Y4CZhEWtkl/hJtFFLc+3JtGTw7nz1yquxs7nL8q/yA2aqpflIQ== + version "1.9.9" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.9.tgz#ec71e37beb8729280847f683cb0a340eb35ce70f" + integrity sha512-sbn6mioS2w0lq1O6PpGtsv6Gy8roWM+o3o4Sqjd6DudrL/nOugY+KyJUimoWzHnf9OkO0T6broHFnYE/R05t9A== optionalDependencies: msgpackr-extract "^3.0.2" @@ -5109,11 +5021,11 @@ neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next@^13.4.5: - version "13.4.5" - resolved "https://registry.yarnpkg.com/next/-/next-13.4.5.tgz#f4ee3e6a2408b363f56037f4ee5674a433c4ba0d" - integrity sha512-pfNsRLVM9e5Y1/z02VakJRfD6hMQkr24FaN2xc9GbcZDBxoOgiNAViSg5cXwlWCoMhtm4U315D7XYhgOr96Q3Q== + version "13.4.19" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.19.tgz#2326e02aeedee2c693d4f37b90e4f0ed6882b35f" + integrity sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw== dependencies: - "@next/env" "13.4.5" + "@next/env" "13.4.19" "@swc/helpers" "0.5.1" busboy "1.6.0" caniuse-lite "^1.0.30001406" @@ -5122,15 +5034,15 @@ next@^13.4.5: watchpack "2.4.0" zod "3.21.4" optionalDependencies: - "@next/swc-darwin-arm64" "13.4.5" - "@next/swc-darwin-x64" "13.4.5" - "@next/swc-linux-arm64-gnu" "13.4.5" - "@next/swc-linux-arm64-musl" "13.4.5" - "@next/swc-linux-x64-gnu" "13.4.5" - "@next/swc-linux-x64-musl" "13.4.5" - "@next/swc-win32-arm64-msvc" "13.4.5" - "@next/swc-win32-ia32-msvc" "13.4.5" - "@next/swc-win32-x64-msvc" "13.4.5" + "@next/swc-darwin-arm64" "13.4.19" + "@next/swc-darwin-x64" "13.4.19" + "@next/swc-linux-arm64-gnu" "13.4.19" + "@next/swc-linux-arm64-musl" "13.4.19" + "@next/swc-linux-x64-gnu" "13.4.19" + "@next/swc-linux-x64-musl" "13.4.19" + "@next/swc-win32-arm64-msvc" "13.4.19" + "@next/swc-win32-ia32-msvc" "13.4.19" + "@next/swc-win32-x64-msvc" "13.4.19" nice-try@^1.0.4: version "1.0.5" @@ -5146,9 +5058,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.40.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.40.0.tgz#51d8ed44534f70ff1357dfbc3a89717b1ceac1b4" - integrity sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA== + version "3.47.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.47.0.tgz#6cbfa2916805ae25c2b7156ca640131632eb05e8" + integrity sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A== dependencies: semver "^7.3.5" @@ -5157,10 +5069,10 @@ node-addon-api@^5.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== -node-fetch@^2.6.11: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -5169,10 +5081,10 @@ node-gyp-build-optional-packages@5.0.7: resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== node-schedule@^2.1.1: version "2.1.1" @@ -5207,13 +5119,6 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -5229,14 +5134,6 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -5247,7 +5144,7 @@ object-treeify@^1.1.4: resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== -object.assign@^4.1.3, object.assign@^4.1.4: +object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -5258,39 +5155,49 @@ object.assign@^4.1.3, object.assign@^4.1.4: object-keys "^1.1.1" object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" on-finished@2.4.1: version "2.4.1" @@ -5332,13 +5239,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - open@^8.0.6: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -5348,27 +5248,17 @@ open@^8.0.6: is-docker "^2.1.1" is-wsl "^2.2.0" -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" 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" @@ -5488,12 +5378,12 @@ passport@^0.6.0: utils-merge "^1.0.1" password-prompt@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.2.tgz#85b2f93896c5bd9e9f2d6ff0627fa5af3dc00923" - integrity sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" + integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== dependencies: - ansi-escapes "^3.1.0" - cross-spawn "^6.0.5" + ansi-escapes "^4.3.2" + cross-spawn "^7.0.3" path-exists@^4.0.0: version "4.0.0" @@ -5515,11 +5405,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -5550,12 +5435,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -pg-cloudflare@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz#833d70870d610d14bf9df7afb40e1cba310c17a0" - integrity sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA== - -pg-cloudflare@^1.1.1: +pg-cloudflare@^1.1.0, pg-cloudflare@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== @@ -5570,12 +5450,7 @@ pg-connection-string@2.6.1: resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.1.tgz#78c23c21a35dd116f48e12e23c0965e8d9e2cbfb" integrity sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg== -pg-connection-string@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.0.tgz#12a36cc4627df19c25cc1b9b736cc39ee1f73ae8" - integrity sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg== - -pg-connection-string@^2.6.2: +pg-connection-string@^2.6.0, pg-connection-string@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== @@ -5597,12 +5472,7 @@ pg-int8@1.0.1: resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.0.tgz#3190df3e4747a0d23e5e9e8045bcd99bda0a712e" - integrity sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ== - -pg-pool@^3.6.1: +pg-pool@^3.6.0, pg-pool@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7" integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og== @@ -5623,7 +5493,7 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@8.11.0, pg@^8.11.0, pg@^8.3.0: +pg@8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.0.tgz#a37e534e94b57a7ed811e926f23a7c56385f55d9" integrity sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA== @@ -5638,7 +5508,7 @@ pg@8.11.0, pg@^8.11.0, pg@^8.3.0: optionalDependencies: pg-cloudflare "^1.1.0" -pg@^8.11.2: +pg@^8.11.0, pg@^8.11.2, pg@^8.3.0: version "8.11.3" resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb" integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g== @@ -5676,9 +5546,9 @@ pify@^2.2.0, pify@^2.3.0: integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^4.1.0: version "4.2.0" @@ -5746,9 +5616,9 @@ postcss@8.4.14: source-map-js "^1.0.2" postcss@^8.4.23, postcss@^8.4.8: - version "8.4.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" - integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== + version "8.4.30" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7" + integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -5777,9 +5647,9 @@ postgres-interval@^1.1.0: xtend "^4.0.0" preact@^10.10.0: - version "10.14.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.14.1.tgz#1e15ef6a09e241a48d12c872b90557914b03abac" - integrity sha512-4XDSnUisk3YFBb3p9WeKeH1mKoxdFUsaXcvxs9wlpYR1wax/TWJVqhwmIWbByX0h7jMEJH6Zc5J6jqc58FKaNQ== + version "10.17.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.17.1.tgz#0a1b3c658c019e759326b9648c62912cf5c2dde1" + integrity sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA== prebuild-install@^7.1.1: version "7.1.1" @@ -5859,7 +5729,7 @@ proxy-from-env@1.0.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== -psl@^1.1.28: +psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== @@ -5872,11 +5742,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -5908,10 +5773,10 @@ qs@~6.10.3: dependencies: side-channel "^1.0.4" -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: version "1.2.3" @@ -5988,33 +5853,33 @@ react-dom@^18.2.0: scheduler "^0.23.0" react-hook-form@^7.30.0: - version "7.43.9" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.43.9.tgz#84b56ac2f38f8e946c6032ccb760e13a1037c66d" - integrity sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ== + version "7.46.1" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.46.1.tgz#39347dbff19d980cb41087ac32a57abdc6045bb3" + integrity sha512-0GfI31LRTBd5tqbXMGXT1Rdsv3rnvy0FjEk8Gn9/4tp6+s77T7DPZuGEpBRXOauL+NhyGT5iaXzdIM2R6F/E+w== react-instantsearch-hooks-web@^6.29.0: - version "6.44.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-hooks-web/-/react-instantsearch-hooks-web-6.44.0.tgz#cd40bcdcfd6953652e4d9b9cc94c38adaa512772" - integrity sha512-jLCU0r1UtVPEbMIP7YL+qU8Lfoy/Z3nLMDS6iBVn3ybB/IBESjYASJsqYGZ1Yk17W6Dl0TWSIacgQsfu8QcE2Q== + version "6.47.3" + resolved "https://registry.yarnpkg.com/react-instantsearch-hooks-web/-/react-instantsearch-hooks-web-6.47.3.tgz#aad0381c72ee85dc0465a59894d1f0c16bf4e3b5" + integrity sha512-JTkPm11xwCX9eO4FgeeJ4v4O98wz1L7cAa2LkspgzDD1MPjMLtmiRVzvGxuYnOayQTtfC5+0GOBwuJEN8TDI8A== dependencies: "@babel/runtime" "^7.1.2" - instantsearch.js "4.56.0" - react-instantsearch-hooks "6.44.0" + instantsearch.js "4.56.8" + react-instantsearch-hooks "6.47.3" -react-instantsearch-hooks@6.44.0: - version "6.44.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-hooks/-/react-instantsearch-hooks-6.44.0.tgz#59d98a6f2938009add633998832cd0f842df8c5a" - integrity sha512-1c/cd6OHAe8hP3PBeEUBwdVi6j3lu0AxGR17wun6j+aKC8/7gTyW0LXGUgm54xU5CORez8/OVh0akK+XDxu+9g== +react-instantsearch-hooks@6.47.3: + version "6.47.3" + resolved "https://registry.yarnpkg.com/react-instantsearch-hooks/-/react-instantsearch-hooks-6.47.3.tgz#66876c9a5fdf0bb0e777fcf14901b63269a17953" + integrity sha512-QuGSwZ664MHrzvndXGnsyPhpKHywGqyDgqOVorYpEE24Y063OPv5XtmJaZqn27MIvvByUormTb6dbPgbjqkd8w== dependencies: "@babel/runtime" "^7.1.2" - algoliasearch-helper "^3.13.0" - instantsearch.js "4.56.0" + algoliasearch-helper "3.14.0" + instantsearch.js "4.56.8" use-sync-external-store "^1.0.0" react-intersection-observer@^9.3.4: - version "9.4.3" - resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.3.tgz#ec84ce0c25cad548075130ea045ac5c7adf908f3" - integrity sha512-WNRqMQvKpupr6MzecAQI0Pj0+JQong307knLP4g/nBex7kYfIaZsPpXaIhKHR+oV8z+goUbH9e10j6lGRnTzlQ== + version "9.5.2" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz#f68363a1ff292323c0808201b58134307a1626d0" + integrity sha512-EmoV66/yvksJcGa1rdW0nDNc4I1RifDWkT50gXSFnPLYQ4xUptuDD4V7k+Rj1OgVAlww628KLGcxPXFlOkkU/Q== react-is@^16.13.1: version "16.13.1" @@ -6115,19 +5980,36 @@ reflect-metadata@0.1.13, reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpp@^3.2.0: version "3.2.0" @@ -6139,12 +6021,10 @@ remove-trailing-slash@^0.1.1: resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz#be2285a59f39c74d1bce4f825950061915e3780d" integrity sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA== -request-ip@^2.1.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/request-ip/-/request-ip-2.2.0.tgz#8dbf53de6c5eb9a7da63a4f9f8991c1ea968a099" - integrity sha512-Hn4zUAr+XHbUs2RrfHur62t7+UhvtevqK32ordFewguEfNHUkhSdYgbG7PDGmXZEzqEXll9bei0+VMe6gkmuUQ== - dependencies: - is_js "^0.9.0" +request-ip@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/request-ip/-/request-ip-3.3.0.tgz#863451e8fec03847d44f223e30a5d63e369fa611" + integrity sha512-cA6Xh6e0fDBBBwH77SLJaJPBmD3nWVAcF9/XAcsrIHdjhFzFiB5aNQFytdjCGPezU3ROwrR11IddKAM08vohxA== request-progress@^3.0.0: version "3.0.0" @@ -6163,6 +6043,11 @@ require-main-filename@^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== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -6185,19 +6070,10 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.7, resolve@^1.22.1, resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.20.0: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== +resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.6" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" @@ -6249,13 +6125,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -6275,6 +6144,16 @@ rxjs@^7.5.1, rxjs@^7.5.5: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, 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" @@ -6320,10 +6199,10 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.1.1, schema-utils@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" - integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" @@ -6335,24 +6214,24 @@ scrypt-kdf@^2.0.1: integrity sha512-dMhpgBVJPDWZP5erOCwTjI6oAO9hKhFAjZsdSQ0spaWJYHuA/wFNF2weQQfsyCIk8eNKoLfEDxr3zAtM+gZo0Q== search-insights@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.6.0.tgz#bb8771a73b83c4a0f1f207c2f64fea01acd3e7d0" - integrity sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw== + version "2.8.2" + resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.8.2.tgz#00c8e795ec567b8060bd46d3e6b840bb56665d63" + integrity sha512-PxA9M5Q2bpBelVvJ3oDZR8nuY00Z6qwOxL53wNpgzV28M/D6u9WUbImDckjLSILBF8F1hn/mgyuUaOPtjow4Qw== semver@^5.5.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.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@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.1: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -6397,6 +6276,15 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -6449,7 +6337,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -6485,11 +6373,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -6537,9 +6420,9 @@ split2@^4.1.0: integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== sprintf-js@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== sprintf-js@~1.0.2: version "1.0.3" @@ -6581,13 +6464,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" @@ -6608,45 +6484,46 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 strip-ansi "^6.0.1" string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -6679,11 +6556,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - 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" @@ -6702,9 +6574,9 @@ styled-jsx@5.1.1: client-only "0.0.1" sucrase@^3.32.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" - integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== + version "3.34.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" + integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== dependencies: "@jridgewell/gen-mapping" "^0.3.2" commander "^4.0.0" @@ -6748,18 +6620,10 @@ supports-preserve-symlinks-flag@^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== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - tailwindcss@^3.0.23: - version "3.3.2" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" - integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== + version "3.3.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" + integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -6781,7 +6645,6 @@ tailwindcss@^3.0.23: postcss-load-config "^4.0.1" postcss-nested "^6.0.1" postcss-selector-parser "^6.0.11" - postcss-value-parser "^4.2.0" resolve "^1.22.2" sucrase "^3.32.0" @@ -6817,9 +6680,9 @@ tarn@^3.0.2: integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== terser-webpack-plugin@^5.3.7: - version "5.3.8" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz#415e03d2508f7de63d59eca85c5d102838f06610" - integrity sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg== + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" @@ -6828,12 +6691,12 @@ terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.16.8: - version "5.17.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.4.tgz#b0c2d94897dfeba43213ed5f90ed117270a2c696" - integrity sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw== + version "5.19.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" + integrity sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -6876,11 +6739,6 @@ tildify@2.0.0: resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -6912,13 +6770,15 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +tough-cookie@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: - psl "^1.1.28" + psl "^1.1.33" punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" tr46@~0.0.3: version "0.0.3" @@ -6926,16 +6786,21 @@ tr46@~0.0.3: integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -6945,22 +6810,15 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1, tslib@^1.8.1: +tslib@^1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - -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" +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.1, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tunnel-agent@^0.6.0: version "0.6.0" @@ -7004,6 +6862,36 @@ type-is@^1.6.4, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -7076,6 +6964,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -7091,7 +6984,7 @@ untildify@^4.0.0: resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.0.10: +update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== @@ -7106,13 +6999,13 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: - punycode "1.3.2" - querystring "0.2.0" + querystringify "^2.1.1" + requires-port "^1.0.0" use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0: version "1.2.0" @@ -7135,19 +7028,19 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== 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== + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== validator@^13.7.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" - integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== vary@^1, vary@~1.1.2: version "1.1.2" @@ -7189,9 +7082,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5: - version "5.83.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.83.0.tgz#70b4b7c941ded3d2ad16d620c534a53dc27b0080" - integrity sha512-mdWk7amgh7hMCXzU+uTDGpIJEbkqat2RLgSDW53E1OOSE6U0gmBcWadJ6y0FdQQbGbW0lV2LT9t2iOEZc+FU7w== + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -7199,10 +7092,10 @@ webpack@^5: "@webassemblyjs/wasm-edit" "^1.11.5" "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.14.0" + enhanced-resolve "^5.15.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -7212,7 +7105,7 @@ webpack@^5: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.2" + schema-utils "^3.2.0" tapable "^2.1.1" terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" @@ -7237,6 +7130,24 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + which-collection@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" @@ -7252,17 +7163,16 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== +which-typed-array@^1.1.11, which-typed-array@^1.1.9: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" which@^1.2.9: version "1.3.1" @@ -7295,9 +7205,9 @@ winston-transport@^4.5.0: triple-beam "^1.3.0" winston@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" - integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== + version "3.10.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.10.0.tgz#d033cb7bd3ced026fed13bf9d92c55b903116803" + integrity sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g== dependencies: "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" @@ -7311,12 +7221,7 @@ winston@^3.8.2: triple-beam "^1.3.0" winston-transport "^4.5.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@^6.2.0: +wrap-ansi@^6.0.1, 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== @@ -7375,9 +7280,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" - integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" + integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== yargs-parser@^18.1.2: version "18.1.3" From 81757042991fd272fe7d7b389e61fffc70224b24 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 19 Sep 2023 12:33:33 +0200 Subject: [PATCH 10/12] fix: logs cleanup --- src/lib/data/index.ts | 20 -------------------- src/lib/util/get-prices-by-price-set-id.ts | 1 - 2 files changed, 21 deletions(-) diff --git a/src/lib/data/index.ts b/src/lib/data/index.ts index 23114def5..b5b92dc79 100644 --- a/src/lib/data/index.ts +++ b/src/lib/data/index.ts @@ -26,9 +26,6 @@ const PRODUCT_MODULE_ENABLED = // The API_BASE_URL is set in the .env file. It is the base URL of your Next.js app. const API_BASE_URL = process.env.NEXT_PUBLIC_BASE_URL || "http://localhost:8000" -// Set DEBUG to true to console.log where the data is coming from. -const DEBUG = false - /** * Fetches a product by handle, using the Medusa API or the Medusa Product Module, depending on the feature flag. * @param handle (string) - The handle of the product to retrieve @@ -38,7 +35,6 @@ export async function getProductByHandle( handle: string ): Promise<{ products: PricedProduct[] }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/products/${handle}`) .then((res) => res.json()) .catch((err) => { @@ -48,7 +44,6 @@ export async function getProductByHandle( return data } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { products } = await medusaRequest("GET", "/products", { query: { handle, @@ -84,7 +79,6 @@ export async function getProductsList({ const limit = queryParams.limit || 12 if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const params = new URLSearchParams(queryParams as Record) const { products, count, nextPage } = await fetch( @@ -102,7 +96,6 @@ export async function getProductsList({ } } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { products, count, nextPage } = await medusaRequest( "GET", "/products", @@ -135,7 +128,6 @@ export async function getCollectionsList( offset: number = 0 ): Promise<{ collections: ProductCollection[]; count: number }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { collections, count } = await fetch( `${API_BASE_URL}/api/collections?offset=${offset}`, { @@ -155,7 +147,6 @@ export async function getCollectionsList( } } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { collections, count } = await medusaRequest("GET", "/collections", { query: { offset, @@ -185,7 +176,6 @@ export async function getCollectionByHandle(handle: string): Promise<{ nextPage: number }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch(`${API_BASE_URL}/api/collections/${handle}`) .then((res) => res.json()) .catch((err) => { @@ -195,7 +185,6 @@ export async function getCollectionByHandle(handle: string): Promise<{ return data } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const data = await medusaRequest("GET", "/collections", { query: { handle: [handle], @@ -232,7 +221,6 @@ export async function getProductsByCollectionHandle({ nextPage: number }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( `${API_BASE_URL}/api/collections/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}` ) @@ -247,7 +235,6 @@ export async function getProductsByCollectionHandle({ } } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { id } = await getCollectionByHandle(handle).then( (res) => res.collections[0] ) @@ -283,7 +270,6 @@ export async function getCategoriesList( count: number }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { product_categories, count } = await fetch( `${API_BASE_URL}/api/categories?offset=${offset}&limit=${limit}`, { @@ -303,7 +289,6 @@ export async function getCategoriesList( } } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { product_categories, count } = await medusaRequest( "GET", "/product-categories", @@ -336,7 +321,6 @@ export async function getCategoryByHandle(categoryHandle: string[]): Promise<{ product_categories: ProductCategoryWithChildren[] }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const data = await fetch( `${API_BASE_URL}/api/categories/${categoryHandle}`, { @@ -353,8 +337,6 @@ export async function getCategoryByHandle(categoryHandle: string[]): Promise<{ return data } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") - const handles = categoryHandle.map((handle: string, index: number) => categoryHandle.slice(0, index + 1).join("/") ) @@ -403,7 +385,6 @@ export async function getProductsByCategoryHandle({ nextPage: number }> { if (PRODUCT_MODULE_ENABLED) { - DEBUG && console.log("PRODUCT_MODULE_ENABLED") const { response, nextPage } = await fetch( `${API_BASE_URL}/api/categories/${handle}?currency_code=${currencyCode}&page=${pageParam.toString()}`, { @@ -423,7 +404,6 @@ export async function getProductsByCategoryHandle({ } } - DEBUG && console.log("PRODUCT_MODULE_DISABLED") const { id } = await getCategoryByHandle([handle]).then( (res) => res.product_categories[0] ) diff --git a/src/lib/util/get-prices-by-price-set-id.ts b/src/lib/util/get-prices-by-price-set-id.ts index b1fcfc380..4ff115447 100644 --- a/src/lib/util/get-prices-by-price-set-id.ts +++ b/src/lib/util/get-prices-by-price-set-id.ts @@ -35,7 +35,6 @@ export async function getPricesByPriceSetId({ variant.price = price variant.calculated_price = price.amount - console.log({ variant }) } } return products From 10473b73ec1884c8638b33ea6a7d3c23514c8b13 Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 19 Sep 2023 12:38:03 +0200 Subject: [PATCH 11/12] fix: indendations --- src/app/api/categories/[...handle]/route.ts | 46 ++++++------ src/app/api/collections/[handle]/route.ts | 46 ++++++------ src/app/api/products/route.ts | 78 ++++++++++----------- 3 files changed, 85 insertions(+), 85 deletions(-) diff --git a/src/app/api/categories/[...handle]/route.ts b/src/app/api/categories/[...handle]/route.ts index 7b86d5ab6..f54fd9ce9 100644 --- a/src/app/api/categories/[...handle]/route.ts +++ b/src/app/api/categories/[...handle]/route.ts @@ -124,36 +124,36 @@ async function getProductsByCategoryId( collection_id thumbnail images { - url - alt_text - id + url + alt_text + id } options { - id - value - title + id + value + title } variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { id + value title - created_at - updated_at - thumbnail - inventory_quantity - material - weight - length - height - width - options { - id - value - title + } + price { + price_set { + id } - price { - price_set { - id - } } } } diff --git a/src/app/api/collections/[handle]/route.ts b/src/app/api/collections/[handle]/route.ts index bb5367330..07fdf2537 100644 --- a/src/app/api/collections/[handle]/route.ts +++ b/src/app/api/collections/[handle]/route.ts @@ -116,36 +116,36 @@ async function getProductsByCollectionId( collection_id thumbnail images { - url - alt_text - id + url + alt_text + id } options { - id - value - title + id + value + title } variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { id + value title - created_at - updated_at - thumbnail - inventory_quantity - material - weight - length - height - width - options { - id - value - title + } + price { + price_set { + id } - price { - price_set { - id - } } } } diff --git a/src/app/api/products/route.ts b/src/app/api/products/route.ts index 383979a5f..3f76334ac 100644 --- a/src/app/api/products/route.ts +++ b/src/app/api/products/route.ts @@ -53,49 +53,49 @@ async function getProducts(params: Record) { const productsQuery = `#graphql query($filters: Record, $id: String, $take: Int, $skip: Int) { products(filters: $filters, id: $id, take: $take, skip: $skip) { + id + title + handle + tags + status + collection + collection_id + thumbnail + images { + url + alt_text + id + } + options { + id + value + title + } + variants { + id + title + created_at + updated_at + thumbnail + inventory_quantity + material + weight + length + height + width + options { id + value title - handle - tags - status - collection - collection_id - thumbnail - images { - url - alt_text - id - } - options { - id - value - title - } - variants { - id - title - created_at - updated_at - thumbnail - inventory_quantity - material - weight - length - height - width - options { - id - value - title - } - price { - price_set { - id - } - } + } + price { + price_set { + id } + } } - }` + } + }` const { rows: products, From 10df1524610411737fea0c18ae9d3948bb75c7ad Mon Sep 17 00:00:00 2001 From: Victor Gerbrands Date: Tue, 19 Sep 2023 13:10:03 +0200 Subject: [PATCH 12/12] fix: 404 state --- src/app/(checkout)/not-found.tsx | 21 +++++++++++++++++++++ src/app/(main)/not-found.tsx | 21 +++++++++++++++++++++ src/modules/categories/templates/index.tsx | 3 +++ 3 files changed, 45 insertions(+) create mode 100644 src/app/(checkout)/not-found.tsx create mode 100644 src/app/(main)/not-found.tsx diff --git a/src/app/(checkout)/not-found.tsx b/src/app/(checkout)/not-found.tsx new file mode 100644 index 000000000..7ad35eef5 --- /dev/null +++ b/src/app/(checkout)/not-found.tsx @@ -0,0 +1,21 @@ +import { Metadata } from "next" +import Link from "next/link" + +export const metadata: Metadata = { + title: "404", + description: "Something went wrong", +} + +export default function NotFound() { + return ( +
+

Page not found

+

+ The page you tried to access does not exist. +

+ + Go to frontpage + +
+ ) +} diff --git a/src/app/(main)/not-found.tsx b/src/app/(main)/not-found.tsx new file mode 100644 index 000000000..7ad35eef5 --- /dev/null +++ b/src/app/(main)/not-found.tsx @@ -0,0 +1,21 @@ +import { Metadata } from "next" +import Link from "next/link" + +export const metadata: Metadata = { + title: "404", + description: "Something went wrong", +} + +export default function NotFound() { + return ( +
+

Page not found

+

+ The page you tried to access does not exist. +

+ + Go to frontpage + +
+ ) +} diff --git a/src/modules/categories/templates/index.tsx b/src/modules/categories/templates/index.tsx index acc4549ba..9b7c8d1c6 100644 --- a/src/modules/categories/templates/index.tsx +++ b/src/modules/categories/templates/index.tsx @@ -15,6 +15,7 @@ import React, { useEffect } from "react" import { useInView } from "react-intersection-observer" import Link from "next/link" import UnderlineLink from "@modules/common/components/underline-link" +import { notFound } from "next/navigation" type CategoryTemplateProps = { categories: ProductCategoryWithChildren[] @@ -27,6 +28,8 @@ const CategoryTemplate: React.FC = ({ categories }) => { const category = categories[categories.length - 1] const parents = categories.slice(0, categories.length - 1) + if (!category) notFound() + const { data: infiniteData, hasNextPage,