diff --git a/app/product/[...handle]/page.tsx b/app/product/[...handle]/page.tsx index f1ae3aa18..ceb36da7e 100644 --- a/app/product/[...handle]/page.tsx +++ b/app/product/[...handle]/page.tsx @@ -5,6 +5,7 @@ import { Suspense } from 'react'; import { AddToCart } from 'components/cart/add-to-cart'; import Grid from 'components/grid'; import Footer from 'components/layout/footer'; +import { VariantSelector } from 'components/product/variant-selector'; import ProductGridItems from 'components/layout/product-grid-items'; import { Gallery } from 'components/product/gallery'; import Prose from 'components/prose'; @@ -97,7 +98,7 @@ export default async function ProductPage({ params }: { params: { handle: string
- {/* */} + {product.descriptionHtml ? ( diff --git a/components/carousel.tsx b/components/carousel.tsx index e8a080c5b..38b403d2e 100644 --- a/components/carousel.tsx +++ b/components/carousel.tsx @@ -20,7 +20,7 @@ export async function Carousel() { {product.featuredImage ? ( { - await requestCart(cartId); + +export const fetchCart = async function (cartId?: string): Promise { + try { + const apiClient = getApiClient(cartId); + const cart = await apiClient.invoke('readCart get /checkout/cart?name', {}); + + return cart; + } catch (error) { + if (error instanceof ApiClientError) { + console.error(error); + console.error('Details:', error.details); + } else { + console.error('==>', error); + } + } }; export const addItem = async (variantId: string | undefined): Promise => { - const cartId = cookies().get('sw-context-token')?.value || ''; + const cartId = cookies().get('sw-context-token')?.value; if (!variantId) { - return new Error('Missing cartId or variantId'); + return new Error('Missing variantId'); } + try { - await requestAddToCart(variantId, cartId); - } catch (e) { - console.error('eeeee', e); - return new Error('Error adding item', { cause: e }); + const apiClient = getApiClient(cartId); + apiClient.invoke('addLineItem post /checkout/cart/line-item', { + items: [ + { + id: variantId, + quantity: 1, + referencedId: variantId, + type: 'product' + } + ] + }); + } catch (error) { + if (error instanceof ApiClientError) { + console.error(error); + console.error('Details:', error.details); + } else { + console.error('==>', error); + } } }; export const removeItem = async (lineId: string): Promise => { - const cartId = cookies().get('cartId')?.value; + const cartId = cookies().get('sw-context-token')?.value; if (!cartId) { return new Error('Missing cartId'); } + try { - console.log('removeItem lineId', lineId); - //await removeFromCart(cartId, [lineId]); - } catch (e) { - return new Error('Error removing item', { cause: e }); + const apiClient = getApiClient(cartId); + await apiClient.invoke('deleteLineItem delete /checkout/cart/line-item?id[]={ids}', { + ids: [lineId] + }); + } catch (error) { + if (error instanceof ApiClientError) { + console.error(error); + console.error('Details:', error.details); + } else { + console.error('==>', error); + } } }; @@ -43,23 +81,29 @@ export const updateItemQuantity = async ({ variantId: string; quantity: number; }): Promise => { - const cartId = cookies().get('cartId')?.value; + const cartId = cookies().get('sw-context-token')?.value; if (!cartId) { return new Error('Missing cartId'); } + try { - console.log('lineId', lineId); - console.log('variantId', variantId); - console.log('quantity', quantity); - // await updateCart(cartId, [ - // { - // id: lineId, - // merchandiseId: variantId, - // quantity - // } - // ]); - } catch (e) { - return new Error('Error updating item quantity', { cause: e }); + const apiClient = getApiClient(cartId); + await apiClient.invoke('updateLineItem patch /checkout/cart/line-item', { + items: [ + { + id: lineId, + referencedId: variantId, + quantity: quantity + } + ] + }); + } catch (error) { + if (error instanceof ApiClientError) { + console.error(error); + console.error('Details:', error.details); + } else { + console.error('==>', error); + } } }; diff --git a/components/cart/add-to-cart.tsx b/components/cart/add-to-cart.tsx index fbce2622c..0f532d784 100644 --- a/components/cart/add-to-cart.tsx +++ b/components/cart/add-to-cart.tsx @@ -18,7 +18,7 @@ export function AddToCart({ availableForSale: boolean; product: Product; }) { - const [selectedVariantId, setSelectedVariantId] = useState(variants[0]?.id); + const [selectedVariantId, setSelectedVariantId] = useState(product.id); const router = useRouter(); const searchParams = useSearchParams(); const [isPending, startTransition] = useTransition(); @@ -33,7 +33,6 @@ export function AddToCart({ if (variant) { setSelectedVariantId(variant.id); } - console.log('selectedVariantId', selectedVariantId); }, [searchParams, variants, setSelectedVariantId, selectedVariantId]); return ( @@ -43,7 +42,7 @@ export function AddToCart({ onClick={() => { if (!availableForSale) return; startTransition(async () => { - const error = await addItem(product.id); + const error = await addItem(selectedVariantId); if (error) { console.error(error); diff --git a/components/cart/index.tsx b/components/cart/index.tsx index 88088edd1..290111d15 100644 --- a/components/cart/index.tsx +++ b/components/cart/index.tsx @@ -1,20 +1,37 @@ import { fetchCart } from 'components/cart/actions'; -import { getCart } from 'lib/shopware'; import { cookies } from 'next/headers'; import CartModal from './modal'; +import { transformCart } from 'lib/shopware/transform'; export default async function Cart() { + let resCart; const cartId = cookies().get('sw-context-token')?.value; - await fetchCart(cartId); - let cartIdUpdated = false; - const cart = await getCart(cartId); + + if (cartId) { + resCart = await fetchCart(cartId); + } + + let newToken; + if (!cartId && !resCart) { + resCart = await fetchCart(); + if (resCart?.token) { + newToken = resCart?.token; + } + } + + let cart; + if (resCart) { + cart = transformCart(resCart); + } if (!cart) { return null; } - if (cartId !== cart.id) { + let cartIdUpdated = false; + if (cartId !== newToken) { cartIdUpdated = true; } + return ; } diff --git a/components/cart/modal.tsx b/components/cart/modal.tsx index 45ed311e0..07294640a 100644 --- a/components/cart/modal.tsx +++ b/components/cart/modal.tsx @@ -122,16 +122,19 @@ export default function CartModal({ cart, cartIdUpdated }: { cart: Cart; cartIdU onClick={closeCart} >
- { + {item.merchandise.product.featuredImage.url !== '' && + typeof item.merchandise.product.featuredImage.url !== 'undefined' ? ( + { + ) : null}
diff --git a/lib/shopware/api-extended.ts b/lib/shopware/api-extended.ts index d4915593b..99b67c1d7 100644 --- a/lib/shopware/api-extended.ts +++ b/lib/shopware/api-extended.ts @@ -10,6 +10,8 @@ type operationsWithoutOriginal = Omit< | 'readProductCrossSellings' | 'readProductListing' | 'searchPage' + | 'readCart' + | 'deleteLineItem' >; export type extendedPaths = | 'readCategory post /category/{navigationId}?slots' @@ -19,6 +21,8 @@ export type extendedPaths = | 'readProductCrossSellings post /product/{productId}/cross-selling' | 'readProductListing post /product-listing/{categoryId}' | 'searchPage post /search' + | 'readCart get /checkout/cart?name' + | 'deleteLineItem delete /checkout/cart/line-item?id[]={ids}' | operationPaths; export type extendedOperations = operationsWithoutOriginal & { readCategory: extendedReadCategory; @@ -28,14 +32,56 @@ export type extendedOperations = operationsWithoutOriginal & { readProductCrossSellings: extendedReadProductCrossSellings; readProductListing: extendedReadProductListing; searchPage: extendedSearchPage; + readCart: extendedReadCart; + deleteLineItem: extendedDeleteLineItem; +}; + +export type ExtendedCart = Omit & { + lineItems?: ExtendedLineItem[]; +}; + +export type ExtendedLineItem = schemas['LineItem'] & { + payload: { + updatedAt: string; + createdAt: string; + }; + price: ProductPrice; + cover?: schemas['Media']; +}; + +type ProductPrice = { + unitPrice: number; + quantity: number; + totalPrice: number; + calculatedTaxes: ProductCalculatedTaxes[]; + taxRules: ProductTaxRules[]; + referencePrice?: number; + listPrice?: number; + regulationPrice?: number; + apiAlias: string; +}; + +type ProductCalculatedTaxes = { + tax: number; + taxRate: number; + price: number; + apiAlias: string; +}; + +type ProductTaxRules = { + taxRate: number; + percentage: number; + apiAlias: string; }; export type ExtendedCmsBlock = Omit & { slots?: schemas['CmsSlot'][]; }; + export type ExtendedCmsSection = Omit & { blocks?: ExtendedCmsBlock[]; }; + export type ExtendedCmsPage = Omit & { sections?: ExtendedCmsSection[]; }; @@ -293,3 +339,37 @@ type extendedReadProductListing = { }; }; }; + +type extendedReadCart = { + parameters: { + query?: { + /** The name of the new cart. This parameter will only be used when creating a new cart. */ + name?: string; + }; + }; + responses: { + /** Cart */ + 200: { + content: { + 'application/json': ExtendedCart; + }; + }; + }; +}; + +type extendedDeleteLineItem = { + parameters: { + query: { + /** A list of product identifiers. */ + ids: string[]; + }; + }; + responses: { + /** The updated cart. */ + 200: { + content: { + 'application/json': ExtendedCart; + }; + }; + }; +}; diff --git a/lib/shopware/api.ts b/lib/shopware/api.ts index 662aea3d2..5c14e091d 100644 --- a/lib/shopware/api.ts +++ b/lib/shopware/api.ts @@ -1,6 +1,5 @@ import { createAPIClient, RequestReturnType, ApiClientError } from '@shopware/api-client'; import { operations } from '@shopware/api-client/api-types'; -import { cookies } from 'next/headers'; import { ExtendedCategory, ExtendedCriteria, @@ -18,19 +17,15 @@ import { } from './types'; import { getStoreDomainWithApiType, getAccessToken, getApiType } from 'lib/shopware/helpers'; -function getApiClient(cartId?: string) { - const apiInstance = createAPIClient({ +export function getApiClient(cartId?: string) { + const apiClientParams = { baseURL: getStoreDomainWithApiType(), accessToken: getAccessToken(), apiType: getApiType(), - contextToken: cartId, - onContextChanged(newContextToken: string) { - cookies().set('sw-context-token', newContextToken); - console.log('newContextToken', newContextToken); - } - }); + contextToken: cartId + }; - return apiInstance; + return createAPIClient(apiClientParams); } // reimport operations return types to use it in application @@ -233,9 +228,9 @@ export async function requestCrossSell( } } -export async function requestCart(cartId?: string) { +export async function requestContext(cartId?: string) { try { - return getApiClient(cartId).invoke('readCart get /checkout/cart?name', {}); + return getApiClient(cartId).invoke('readContext get /context', {}); } catch (error) { if (error instanceof ApiClientError) { console.error(error); @@ -245,23 +240,3 @@ export async function requestCart(cartId?: string) { } } } - -export async function requestContext(cartId?: string) { - return getApiClient(cartId).invoke('readCart get /checkout/cart?name', {}); -} - -export async function requestAddToCart(itemId: string, cartId: string) { - try { - return getApiClient(cartId).invoke('addLineItem post /checkout/cart/line-item', { - items: [ - { - referencedId: itemId, - quantity: 1, - type: 'product' - } - ] - }); - } catch (e) { - console.error('e', e); - } -} diff --git a/lib/shopware/index.ts b/lib/shopware/index.ts index b380e0050..ef402e133 100644 --- a/lib/shopware/index.ts +++ b/lib/shopware/index.ts @@ -1,5 +1,4 @@ import { - requestCart, requestCategory, requestCategoryList, requestCategoryProductsCollection, @@ -32,7 +31,6 @@ import { } from './transform'; import { ApiSchemas, - Cart, CategoryListingResultSW, Menu, Page, @@ -293,75 +291,3 @@ export async function getProductRecommendations(productId: string): Promise { - const cartData = await requestCart(cartId); - if (cartData) { - // @ToDo: should be moved to transformCart function - const cart: Cart = { - checkoutUrl: 'https://frontends-demo.vercel.app', - cost: { - subtotalAmount: { - amount: cartData.price?.positionPrice?.toString() || '0', - currencyCode: 'EUR' - }, - totalAmount: { - amount: cartData.price?.totalPrice?.toString() || '0', - currencyCode: 'EUR' - }, - totalTaxAmount: { - amount: '0', - currencyCode: 'EUR' - } - }, - id: cartData.token || '', - lines: - cartData.lineItems?.map((lineItem) => ({ - id: lineItem.referencedId || '', - quantity: lineItem.quantity ?? 0, - cost: { - totalAmount: { - amount: (lineItem as any)?.price?.totalPrice || '', - currencyCode: 'EUR' - } - }, - merchandise: { - id: lineItem.referencedId ?? '', - title: lineItem.label ?? '', - selectedOptions: [], - product: { - description: lineItem.description ?? '', - descriptionHtml: lineItem.description ?? '', - id: lineItem.referencedId ?? '', - images: [], - path: '', - seo: { - description: lineItem.description ?? '', - title: lineItem.label ?? '' - }, - availableForSale: true, - featuredImage: (lineItem as any).cover?.url, - handle: '', - options: [], - variants: [], - priceRange: { - minVariantPrice: { - amount: '', // @ToDo: should be correct value - currencyCode: 'EUR' - }, - maxVariantPrice: { - amount: '', // @ToDo: should be correct value - currencyCode: 'EUR' - } - }, - tags: [], - title: lineItem.label ?? '', - updatedAt: (lineItem as any)?.payload?.updatedAt - } - } - })) || [], - totalQuantity: cartData.lineItems?.length || 0 - }; - return cart; - } -} diff --git a/lib/shopware/transform.ts b/lib/shopware/transform.ts index 1341dee7d..8d30d2a19 100644 --- a/lib/shopware/transform.ts +++ b/lib/shopware/transform.ts @@ -1,5 +1,7 @@ import { ApiSchemas, + Cart, + CartItem, CategoryListingResultSW, Collection, Menu, @@ -9,8 +11,10 @@ import { ProductVariant } from './types'; import { + ExtendedCart, ExtendedCategory, ExtendedCmsPage, + ExtendedLineItem, ExtendedProduct, ExtendedProductListingResult } from './api-extended'; @@ -329,3 +333,78 @@ export function transformHandle(handle: string | []): string { return collectionName ?? ''; } + +export function transformCart(resCart: ExtendedCart): Cart { + return { + checkoutUrl: 'https://frontends-demo.vercel.app', + cost: { + subtotalAmount: { + amount: resCart.price?.positionPrice?.toString() || '0', + currencyCode: 'EUR' + }, + totalAmount: { + amount: resCart.price?.totalPrice?.toString() || '0', + currencyCode: 'EUR' + }, + totalTaxAmount: { + amount: '0', + currencyCode: 'EUR' + } + }, + id: resCart.token ?? '', + lines: + resCart.lineItems?.map((lineItem: ExtendedLineItem) => transformLineItem(lineItem)) || [], + totalQuantity: resCart.lineItems?.length || 0 + }; +} + +function transformLineItem(resLineItem: ExtendedLineItem): CartItem { + return { + id: resLineItem.id || '', + quantity: resLineItem.quantity ?? 0, + cost: { + totalAmount: { + amount: resLineItem.price?.totalPrice.toString() || '', + currencyCode: 'EUR' + } + }, + merchandise: { + id: resLineItem.referencedId ?? '', + title: resLineItem.label ?? '', + selectedOptions: [], + product: { + description: resLineItem.description ?? '', + descriptionHtml: resLineItem.description ?? '', + id: resLineItem.referencedId ?? '', + images: [], + path: resLineItem.referencedId ?? '', + seo: { + description: resLineItem.description ?? '', + title: resLineItem.label ?? '' + }, + availableForSale: true, + featuredImage: { + url: resLineItem.cover?.url ?? '', + altText: resLineItem.cover?.translated?.alt ?? resLineItem.cover?.alt ?? '', + width: Number(resLineItem.cover?.metaData?.width) ?? 0, + height: Number(resLineItem.cover?.metaData?.height) ?? 0 + }, + options: [], + variants: [], + priceRange: { + minVariantPrice: { + amount: '', // @ToDo: should be correct value + currencyCode: 'EUR' + }, + maxVariantPrice: { + amount: '', // @ToDo: should be correct value + currencyCode: 'EUR' + } + }, + tags: [], + title: resLineItem.label ?? '', + updatedAt: resLineItem.payload?.updatedAt ?? resLineItem.payload?.createdAt ?? '' + } + } + }; +} diff --git a/package.json b/package.json index e58c6ff57..ce77e704c 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,11 @@ }, "dependencies": { "@headlessui/react": "^1.7.15", - "@shopware/api-client": "0.0.0-canary-20230713092547", - "@vercel/og": "^0.5.8", + "@shopware/api-client": "0.0.0-canary-20230721083422", + "@vercel/og": "^0.5.9", "clsx": "^1.2.1", "is-empty-iterable": "^3.0.0", - "next": "13.4.10", + "next": "13.4.12", "react": "18.2.0", "react-cookie": "^4.1.1", "react-dom": "18.2.0", @@ -33,18 +33,18 @@ "devDependencies": { "@playwright/test": "^1.36.1", "@tailwindcss/typography": "^0.5.9", - "@types/node": "^20.4.2", + "@types/node": "^20.4.4", "@types/react": "18.2.15", "@types/react-dom": "18.2.7", "@vercel/git-hooks": "^1.0.0", "autoprefixer": "^10.4.14", "eslint": "^8.45.0", - "eslint-config-next": "^13.4.10", + "eslint-config-next": "^13.4.12", "eslint-config-prettier": "^8.8.0", "eslint-plugin-unicorn": "^48.0.0", "husky": "^8.0.3", "lint-staged": "^13.2.3", - "postcss": "^8.4.26", + "postcss": "^8.4.27", "prettier": "^3.0.0", "prettier-plugin-tailwindcss": "^0.4.1", "tailwindcss": "^3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee21b2876..a48b21521 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ dependencies: specifier: ^1.7.15 version: 1.7.15(react-dom@18.2.0)(react@18.2.0) '@shopware/api-client': - specifier: 0.0.0-canary-20230713092547 - version: 0.0.0-canary-20230713092547 + specifier: 0.0.0-canary-20230721083422 + version: 0.0.0-canary-20230721083422 '@vercel/og': - specifier: ^0.5.8 - version: 0.5.8 + specifier: ^0.5.9 + version: 0.5.9 clsx: specifier: ^1.2.1 version: 1.2.1 @@ -21,8 +21,8 @@ dependencies: specifier: ^3.0.0 version: 3.0.0 next: - specifier: 13.4.10 - version: 13.4.10(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.12 + version: 13.4.12(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -44,8 +44,8 @@ devDependencies: specifier: ^0.5.9 version: 0.5.9(tailwindcss@3.3.3) '@types/node': - specifier: ^20.4.2 - version: 20.4.2 + specifier: ^20.4.4 + version: 20.4.4 '@types/react': specifier: 18.2.15 version: 18.2.15 @@ -57,13 +57,13 @@ devDependencies: version: 1.0.0 autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.26) + version: 10.4.14(postcss@8.4.27) eslint: specifier: ^8.45.0 version: 8.45.0 eslint-config-next: - specifier: ^13.4.10 - version: 13.4.10(eslint@8.45.0)(typescript@5.1.6) + specifier: ^13.4.12 + version: 13.4.12(eslint@8.45.0)(typescript@5.1.6) eslint-config-prettier: specifier: ^8.8.0 version: 8.8.0(eslint@8.45.0) @@ -77,14 +77,14 @@ devDependencies: specifier: ^13.2.3 version: 13.2.3 postcss: - specifier: ^8.4.26 - version: 8.4.26 + specifier: ^8.4.27 + version: 8.4.27 prettier: specifier: ^3.0.0 version: 3.0.0 prettier-plugin-tailwindcss: specifier: ^0.4.1 - version: 0.4.1(prettier@3.0.0)https://boxblinkracer.com/blog/shopware-ai-demodata + version: 0.4.1(prettier@3.0.0) tailwindcss: specifier: ^3.3.3 version: 3.3.3 @@ -120,7 +120,7 @@ packages: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.5https://boxblinkracer.com/blog/shopware-ai-demodata + '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 dev: true @@ -142,8 +142,8 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp@4.6.0: + resolution: {integrity: sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -235,18 +235,18 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@next/env@13.4.10: - resolution: {integrity: sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==} + /@next/env@13.4.12: + resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/eslint-plugin-next@13.4.10: - resolution: {integrity: sha512-YJqyq6vk39JQfvaNtN83t/p5Jy45+bazRL+V4QI8FPd3FBqFYMEsULiwRLgSJMgFqkk4t4JbeZurz+gILEAFpA==} + /@next/eslint-plugin-next@13.4.12: + resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} dependencies: glob: 7.1.7 dev: true - /@next/swc-darwin-arm64@13.4.10: - resolution: {integrity: sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==} + /@next/swc-darwin-arm64@13.4.12: + resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -254,8 +254,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.10: - resolution: {integrity: sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==} + /@next/swc-darwin-x64@13.4.12: + resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -263,8 +263,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.10: - resolution: {integrity: sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==} + /@next/swc-linux-arm64-gnu@13.4.12: + resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -272,8 +272,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.10: - resolution: {integrity: sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==} + /@next/swc-linux-arm64-musl@13.4.12: + resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -281,8 +281,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.10: - resolution: {integrity: sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==} + /@next/swc-linux-x64-gnu@13.4.12: + resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -290,8 +290,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.4.10: - resolution: {integrity: sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==} + /@next/swc-linux-x64-musl@13.4.12: + resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -299,8 +299,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.10: - resolution: {integrity: sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==} + /@next/swc-win32-arm64-msvc@13.4.12: + resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -308,8 +308,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.10: - resolution: {integrity: sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==} + /@next/swc-win32-ia32-msvc@13.4.12: + resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -317,8 +317,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.10: - resolution: {integrity: sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==} + /@next/swc-win32-x64-msvc@13.4.12: + resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -352,7 +352,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 @@ -364,7 +364,7 @@ packages: engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 20.4.2 + '@types/node': 20.4.4 playwright-core: 1.36.1 optionalDependencies: fsevents: 2.3.2 @@ -379,8 +379,8 @@ packages: resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} dev: true - /@shopware/api-client@0.0.0-canary-20230713092547: - resolution: {integrity: sha512-+5dHwprTnpwtHQl3eletxpvMexqKf9N8fIiecqaeemrsWLkiFyAouP76UzYPVjEF54neOOaAI0DuIBvi2w4WXg==} + /@shopware/api-client@0.0.0-canary-20230721083422: + resolution: {integrity: sha512-5oOFf6SSrxSkksXzFDalp+jwMw5P93KpUNiNzaHyL8XAE/e8B5/DdtXCCMl74sS9fdU3aC5y9mfuyvrPA4t1Zg==} dependencies: ofetch: 1.1.1 dev: false @@ -427,8 +427,8 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node@20.4.2: - resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} + /@types/node@20.4.4: + resolution: {integrity: sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==} dev: true /@types/normalize-package-data@2.4.1: @@ -521,8 +521,8 @@ packages: requiresBuild: true dev: true - /@vercel/og@0.5.8: - resolution: {integrity: sha512-WlY5q96e2OmQEUsgqKZrCljNHiD05aErsa7u2z2+pkxyoVSWPHXLYFwHPtp7+IubU4gt4JYfgSbzGQg7n6xeAQ==} + /@vercel/og@0.5.9: + resolution: {integrity: sha512-CtjaV/BVHtNCjRtxGqn8Q6AKFLqcG34Byxr91+mY+4eqyp/09LVe9jEeY9WXjbaKvu8syWPMteTpY+YQUQYzSg==} engines: {node: '>=16'} dependencies: '@resvg/resvg-wasm': 2.4.1 @@ -697,7 +697,7 @@ packages: engines: {node: '>=8'} dev: true - /autoprefixer@10.4.14(postcss@8.4.26): + /autoprefixer@10.4.14(postcss@8.4.27): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -705,11 +705,11 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.9 - caniuse-lite: 1.0.30001516 + caniuse-lite: 1.0.30001517 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.26 + postcss: 8.4.27 postcss-value-parser: 4.2.0 dev: true @@ -774,8 +774,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001516 - electron-to-chromium: 1.4.461 + caniuse-lite: 1.0.30001517 + electron-to-chromium: 1.4.468 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: true @@ -820,8 +820,8 @@ packages: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} dev: false - /caniuse-lite@1.0.30001516: - resolution: {integrity: sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==} + /caniuse-lite@1.0.30001517: + resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1058,6 +1058,10 @@ packages: engines: {node: '>=6'} dev: true + /destr@2.0.0: + resolution: {integrity: sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==} + dev: false + /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true @@ -1091,8 +1095,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.461: - resolution: {integrity: sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==} + /electron-to-chromium@1.4.468: + resolution: {integrity: sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==} dev: true /emoji-regex@10.2.1: @@ -1147,7 +1151,7 @@ packages: 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 @@ -1163,7 +1167,7 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true /es-set-tostringtag@2.0.1: @@ -1209,8 +1213,8 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-next@13.4.10(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-+JjcM6lQmFR5Mw0ORm9o1CR29+z/uajgSfYAPEGIBxOhTHBgCMs7ysuwi72o7LkMmA8E3N7/h09pSGZxs0s85g==} + /eslint-config-next@13.4.12(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -1218,7 +1222,7 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 13.4.10 + '@next/eslint-plugin-next': 13.4.12 '@rushstack/eslint-patch': 1.3.2 '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) eslint: 8.45.0 @@ -1226,7 +1230,7 @@ packages: eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0) eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0) - eslint-plugin-react: 7.32.2(eslint@8.45.0) + eslint-plugin-react: 7.33.0(eslint@8.45.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0) typescript: 5.1.6 transitivePeerDependencies: @@ -1374,8 +1378,8 @@ packages: eslint: 8.45.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.45.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react@7.33.0(eslint@8.45.0): + resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -1441,7 +1445,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.0 '@eslint/eslintrc': 2.1.0 '@eslint/js': 8.44.0 '@humanwhocodes/config-array': 0.11.10 @@ -1548,8 +1552,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1758,7 +1762,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -1769,7 +1773,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -1911,7 +1915,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -2071,15 +2075,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} 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 dev: true /is-weakref@1.0.2: @@ -2354,8 +2354,8 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /next@13.4.10(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==} + /next@13.4.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} engines: {node: '>=16.8.0'} hasBin: true peerDependencies: @@ -2372,10 +2372,10 @@ packages: sass: optional: true dependencies: - '@next/env': 13.4.10 + '@next/env': 13.4.12 '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001516 + caniuse-lite: 1.0.30001517 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2383,15 +2383,15 @@ packages: watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.10 - '@next/swc-darwin-x64': 13.4.10 - '@next/swc-linux-arm64-gnu': 13.4.10 - '@next/swc-linux-arm64-musl': 13.4.10 - '@next/swc-linux-x64-gnu': 13.4.10 - '@next/swc-linux-x64-musl': 13.4.10 - '@next/swc-win32-arm64-msvc': 13.4.10 - '@next/swc-win32-ia32-msvc': 13.4.10 - '@next/swc-win32-x64-msvc': 13.4.10 + '@next/swc-darwin-arm64': 13.4.12 + '@next/swc-darwin-x64': 13.4.12 + '@next/swc-linux-arm64-gnu': 13.4.12 + '@next/swc-linux-arm64-musl': 13.4.12 + '@next/swc-linux-x64-gnu': 13.4.12 + '@next/swc-linux-x64-musl': 13.4.12 + '@next/swc-win32-arm64-msvc': 13.4.12 + '@next/swc-win32-ia32-msvc': 13.4.12 + '@next/swc-win32-x64-msvc': 13.4.12 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -2500,6 +2500,14 @@ packages: es-abstract: 1.22.1 dev: true + /ofetch@1.1.1: + resolution: {integrity: sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==} + dependencies: + destr: 2.0.0 + node-fetch-native: 1.2.0 + ufo: 1.1.2 + dev: false + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -2674,29 +2682,29 @@ packages: engines: {node: '>=4'} dev: true - /postcss-import@15.1.0(postcss@8.4.26): + /postcss-import@15.1.0(postcss@8.4.27): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.27 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.2 dev: true - /postcss-js@4.0.1(postcss@8.4.26): + /postcss-js@4.0.1(postcss@8.4.27): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.26 + postcss: 8.4.27 dev: true - /postcss-load-config@4.0.1(postcss@8.4.26): + /postcss-load-config@4.0.1(postcss@8.4.27): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -2709,17 +2717,17 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.26 + postcss: 8.4.27 yaml: 2.3.1 dev: true - /postcss-nested@6.0.1(postcss@8.4.26): + /postcss-nested@6.0.1(postcss@8.4.27): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.26 + postcss: 8.4.27 postcss-selector-parser: 6.0.13 dev: true @@ -2751,8 +2759,8 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -3281,8 +3289,8 @@ packages: react: 18.2.0 dev: false - /sucrase@3.33.0: - resolution: {integrity: sha512-ARGC7vbufOHfpvyGcZZXFaXCMZ9A4fffOGC5ucOW7+WHDGlAe8LJdf3Jts1sWhDeiI1RSWrKy5Hodl+JWGdW2A==} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} engines: {node: '>=8'} hasBin: true dependencies: @@ -3332,7 +3340,7 @@ packages: chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.19.1 @@ -3341,14 +3349,14 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.26 - postcss-import: 15.1.0(postcss@8.4.26) - postcss-js: 4.0.1(postcss@8.4.26) - postcss-load-config: 4.0.1(postcss@8.4.26) - postcss-nested: 6.0.1(postcss@8.4.26) + postcss: 8.4.27 + postcss-import: 15.1.0(postcss@8.4.27) + postcss-js: 4.0.1(postcss@8.4.27) + postcss-load-config: 4.0.1(postcss@8.4.27) + postcss-nested: 6.0.1(postcss@8.4.27) postcss-selector-parser: 6.0.13 resolve: 1.22.2 - sucrase: 3.33.0 + sucrase: 3.34.0 transitivePeerDependencies: - ts-node dev: true @@ -3458,7 +3466,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-byte-length@1.0.0: @@ -3468,7 +3476,7 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-byte-offset@1.0.0: @@ -3479,7 +3487,7 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-length@1.0.4: @@ -3487,7 +3495,7 @@ packages: dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typescript@5.1.6: @@ -3496,6 +3504,10 @@ packages: hasBin: true dev: true + /ufo@1.1.2: + resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + dev: false + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -3570,8 +3582,8 @@ packages: is-symbol: 1.0.4 dev: true - /which-typed-array@1.1.10: - resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -3579,7 +3591,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@2.0.2: