feat(poc): add log for api client

This commit is contained in:
Björn Meyer 2023-07-17 08:44:21 +02:00
parent eacf390afa
commit 47291853e3
9 changed files with 289 additions and 199 deletions

View File

@ -19,9 +19,7 @@ export default async function sitemap(): Promise<Promise<Promise<MetadataRoute.S
}))
);
const fetchedRoutes = (
await Promise.all([productsPromise])
).flat();
const fetchedRoutes = (await Promise.all([productsPromise])).flat();
return [...routesMap, ...fetchedRoutes];
}

View File

@ -3,7 +3,9 @@ import Image from 'next/image';
import Link from 'next/link';
export async function Carousel() {
const { products } = await getCollectionProducts({ collection: 'Summer-BBQ/Hidden-Carousel-Category' });
const { products } = await getCollectionProducts({
collection: 'Summer-BBQ/Hidden-Carousel-Category'
});
if (!products?.length) return null;

View File

@ -1,4 +1,5 @@
import Link from 'next/link';
import Image from 'next/image';
import GitHubIcon from 'components/icons/github';
import LogoIcon from 'components/icons/logo';
@ -25,12 +26,8 @@ export default async function Footer() {
</a>
</div>
{menu.map((item: Menu) => (
< nav className="col-span-1 lg:col-span-3" key={item.title + item.type} >
{
item.type === "headline" ? (
<span className='font-bold'>{item.title}</span>
) : null
}
<nav className="col-span-1 lg:col-span-3" key={item.title + item.type}>
{item.type === 'headline' ? <span className="font-bold">{item.title}</span> : null}
{item.children.length > 0 ? (
<ul className="py-3 md:py-0 md:pt-4" key={item.title}>
{item.children.map((item: Menu) => (
@ -44,7 +41,7 @@ export default async function Footer() {
</li>
))}
</ul>
) :
) : (
// if there are no children, at least display a link
<Link
key={item.title}
@ -52,11 +49,17 @@ export default async function Footer() {
className="text-gray-800 transition duration-150 ease-in-out hover:text-gray-300 dark:text-gray-100"
>
{item.title}
</Link>}
</Link>
)}
</nav>
))}
<div className="col-span-1 text-black dark:text-white lg:col-span-2 inline-grid justify-items-end">
<a aria-label="Github Repository" href="https://github.com/shopware/frontends" target="_blank" rel="noopener noreferrer">
<div className="col-span-1 inline-grid justify-items-end text-black dark:text-white lg:col-span-2">
<a
aria-label="Github Repository"
href="https://github.com/shopware/frontends"
target="_blank"
rel="noopener noreferrer"
>
<GitHubIcon className="h-6" />
</a>
</div>
@ -77,15 +80,17 @@ export default async function Footer() {
className="text-black dark:text-white"
>
<div className="ml-4 h-auto w-10">
<img
<Image
src="https://www.shopware.com/media/pages/solutions/shopware-frontends/shopware-frontends-intro-graphic-base.svg"
alt="Shopware Composable Frontends Logo"
></img>
width={40}
height={40}
></Image>
</div>
</a>
</div>
</div>
</div>
</footer >
</footer>
);
}

View File

@ -57,9 +57,10 @@ export type ExtendedProductListingResult = Omit<schemas['ProductListingResult'],
export type ExtendedCrossSellingElementCollection = Omit<
schemas['CrossSellingElementCollection'],
'products'
> & {
> &
{
products?: ExtendedProduct[];
}[];
}[];
export type ExtendedCategory = Omit<schemas['Category'], 'children' | 'seoUrls' | 'cmsPage'> & {
children?: ExtendedCategory[];
@ -104,7 +105,7 @@ type extendedReadProductCrossSellings = {
/** Found cross sellings */
200: {
content: {
'application/json': ExtendedCrossSellingElementCollection
'application/json': ExtendedCrossSellingElementCollection;
};
};
};

View File

@ -34,7 +34,8 @@ export type ApiReturnType<OPERATION_NAME extends keyof operations> = RequestRetu
export async function requestNavigation(
type: StoreNavigationTypeSW,
depth: number
): Promise<ExtendedCategory[]> {
): Promise<ExtendedCategory[] | undefined> {
try {
return await apiInstance.invoke(
'readNavigation post /navigation/{activeId}/{rootId} sw-include-seo-urls',
{
@ -43,50 +44,74 @@ export async function requestNavigation(
depth: depth
}
);
} catch (error) {
console.log(error);
}
}
export async function requestCategory(
categoryId: string,
criteria?: Partial<ProductListingCriteria>
): Promise<ExtendedCategory> {
): Promise<ExtendedCategory | undefined> {
try {
return await apiInstance.invoke('readCategory post /category/{navigationId}?slots', {
navigationId: categoryId,
criteria
});
} catch (error) {
console.log(error);
}
}
export async function requestCategoryList(
criteria: Partial<ExtendedCriteria>
): Promise<CategoryListingResultSW> {
): Promise<CategoryListingResultSW | undefined> {
try {
return await apiInstance.invoke('readCategoryList post /category', criteria);
} catch (error) {
console.log(error);
}
}
export async function requestProductsCollection(
criteria: Partial<ProductListingCriteria>
): Promise<ExtendedProductListingResult> {
): Promise<ExtendedProductListingResult | undefined> {
try {
return await apiInstance.invoke('readProduct post /product', criteria);
} catch (error) {
console.log(error);
}
}
export async function requestCategoryProductsCollection(
categoryId: string,
criteria: Partial<ProductListingCriteria>
): Promise<ExtendedProductListingResult> {
): Promise<ExtendedProductListingResult | undefined> {
try {
return await apiInstance.invoke('readProductListing post /product-listing/{categoryId}', {
...criteria,
categoryId: categoryId
});
} catch (error) {
console.log(error);
}
}
export async function requestSearchCollectionProducts(
criteria?: Partial<ProductListingCriteria>
): Promise<ExtendedProductListingResult> {
): Promise<ExtendedProductListingResult | undefined> {
try {
return await apiInstance.invoke('searchPage post /search', {
search: encodeURIComponent(criteria?.query || ''),
...criteria
});
} catch (error) {
console.log(error);
}
}
export async function requestSeoUrls(routeName: RouteNames, page: number = 1, limit: number = 100) {
try {
return await apiInstance.invoke('readSeoUrl post /seo-url', {
page: page,
limit: limit,
@ -98,13 +123,17 @@ export async function requestSeoUrls(routeName: RouteNames, page: number = 1, li
}
]
});
} catch (error) {
console.log(error);
}
}
export async function requestSeoUrl(
handle: string,
page: number = 1,
limit: number = 1
): Promise<SeoURLResultSW> {
): Promise<SeoURLResultSW | undefined> {
try {
return await apiInstance.invoke('readSeoUrl post /seo-url', {
page: page,
limit: limit,
@ -128,12 +157,16 @@ export async function requestSeoUrl(
}
]
});
} catch (error) {
console.log(error);
}
}
export async function requestCrossSell(
productId: string,
criteria?: Partial<ProductListingCriteria>
): Promise<ExtendedCrossSellingElementCollection> {
): Promise<ExtendedCrossSellingElementCollection | undefined> {
try {
return await apiInstance.invoke(
'readProductCrossSellings post /product/{productId}/cross-selling',
{
@ -141,8 +174,15 @@ export async function requestCrossSell(
...criteria
}
);
} catch (error) {
console.log(error);
}
}
export async function requestCart() {
try {
return apiInstance.invoke('readCart get /checkout/cart?name', {});
} catch (error) {
console.log(error);
}
}

View File

@ -10,7 +10,11 @@ export type ProductListingCriteria = {
query: string;
} & Omit<ApiSchemas['ProductListingCriteria'], 'filter'> &
ExtendedCriteria;
export type RouteNames = 'frontend.navigation.page' | 'frontend.detail.page' | 'frontend.account.customer-group-registration.page' | 'frontend.landing.page'
export type RouteNames =
| 'frontend.navigation.page'
| 'frontend.detail.page'
| 'frontend.account.customer-group-registration.page'
| 'frontend.landing.page';
/** Return Types */
export type CategoryListingResultSW = {

View File

@ -31,22 +31,22 @@
"react-paginate": "^8.2.0"
},
"devDependencies": {
"@playwright/test": "^1.36.0",
"@playwright/test": "^1.36.1",
"@tailwindcss/typography": "^0.5.9",
"@types/node": "^20.4.2",
"@types/react": "18.2.15",
"@types/react-dom": "18.2.7",
"@vercel/git-hooks": "^1.0.0",
"autoprefixer": "^10.4.14",
"eslint": "^8.44.0",
"eslint": "^8.45.0",
"eslint-config-next": "^13.4.10",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-unicorn": "^47.0.0",
"eslint-plugin-unicorn": "^48.0.0",
"husky": "^8.0.3",
"lint-staged": "^13.2.3",
"postcss": "^8.4.26",
"prettier": "^3.0.0",
"prettier-plugin-tailwindcss": "^0.4.0",
"prettier-plugin-tailwindcss": "^0.4.1",
"tailwindcss": "^3.3.3",
"typescript": "5.1.6"
}

238
pnpm-lock.yaml generated
View File

@ -38,8 +38,8 @@ dependencies:
devDependencies:
'@playwright/test':
specifier: ^1.36.0
version: 1.36.0
specifier: ^1.36.1
version: 1.36.1
'@tailwindcss/typography':
specifier: ^0.5.9
version: 0.5.9(tailwindcss@3.3.3)
@ -59,17 +59,17 @@ devDependencies:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.26)
eslint:
specifier: ^8.44.0
version: 8.44.0
specifier: ^8.45.0
version: 8.45.0
eslint-config-next:
specifier: ^13.4.10
version: 13.4.10(eslint@8.44.0)(typescript@5.1.6)
version: 13.4.10(eslint@8.45.0)(typescript@5.1.6)
eslint-config-prettier:
specifier: ^8.8.0
version: 8.8.0(eslint@8.44.0)
version: 8.8.0(eslint@8.45.0)
eslint-plugin-unicorn:
specifier: ^47.0.0
version: 47.0.0(eslint@8.44.0)
specifier: ^48.0.0
version: 48.0.0(eslint@8.45.0)
husky:
specifier: ^8.0.3
version: 8.0.3
@ -83,8 +83,8 @@ devDependencies:
specifier: ^3.0.0
version: 3.0.0
prettier-plugin-tailwindcss:
specifier: ^0.4.0
version: 0.4.0(prettier@3.0.0)
specifier: ^0.4.1
version: 0.4.1(prettier@3.0.0)
tailwindcss:
specifier: ^3.3.3
version: 3.3.3
@ -132,13 +132,13 @@ packages:
regenerator-runtime: 0.13.11
dev: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.44.0):
/@eslint-community/eslint-utils@4.4.0(eslint@8.45.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.44.0
eslint: 8.45.0
eslint-visitor-keys: 3.4.1
dev: true
@ -153,7 +153,7 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.0
espree: 9.6.1
globals: 13.20.0
ignore: 5.2.4
import-fresh: 3.3.0
@ -359,13 +359,13 @@ packages:
tslib: 2.6.0
dev: true
/@playwright/test@1.36.0:
resolution: {integrity: sha512-yN+fvMYtiyLFDCQos+lWzoX4XW3DNuaxjBu68G0lkgLgC6BP+m/iTxJQoSicz/x2G5EsrqlZTqTIP9sTgLQerg==}
/@playwright/test@1.36.1:
resolution: {integrity: sha512-YK7yGWK0N3C2QInPU6iaf/L3N95dlGdbsezLya4n0ZCh3IL7VgPGxC6Gnznh9ApWdOmkJeleT2kMTcWPRZvzqg==}
engines: {node: '>=16'}
hasBin: true
dependencies:
'@types/node': 20.4.2
playwright-core: 1.36.0
playwright-core: 1.36.1
optionalDependencies:
fsevents: 2.3.2
dev: true
@ -454,7 +454,7 @@ packages:
/@types/scheduler@0.16.3:
resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
/@typescript-eslint/parser@5.62.0(eslint@8.44.0)(typescript@5.1.6):
/@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6):
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -468,7 +468,7 @@ packages:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
debug: 4.3.4
eslint: 8.44.0
eslint: 8.45.0
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
@ -636,7 +636,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
get-intrinsic: 1.2.1
is-string: 1.0.7
dev: true
@ -652,7 +652,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
@ -662,7 +662,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
@ -671,11 +671,23 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
get-intrinsic: 1.2.1
dev: true
/arraybuffer.prototype.slice@1.0.1:
resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
call-bind: 1.0.2
define-properties: 1.2.0
get-intrinsic: 1.2.1
is-array-buffer: 3.0.2
is-shared-array-buffer: 1.0.2
dev: true
/ast-types-flow@0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
dev: true
@ -693,7 +705,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.9
caniuse-lite: 1.0.30001515
caniuse-lite: 1.0.30001516
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
@ -762,8 +774,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
caniuse-lite: 1.0.30001515
electron-to-chromium: 1.4.460
caniuse-lite: 1.0.30001516
electron-to-chromium: 1.4.461
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.9)
dev: true
@ -808,8 +820,8 @@ packages:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
dev: false
/caniuse-lite@1.0.30001515:
resolution: {integrity: sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==}
/caniuse-lite@1.0.30001516:
resolution: {integrity: sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==}
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@ -1083,8 +1095,8 @@ packages:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
/electron-to-chromium@1.4.460:
resolution: {integrity: sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ==}
/electron-to-chromium@1.4.461:
resolution: {integrity: sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==}
dev: true
/emoji-regex@10.2.1:
@ -1113,11 +1125,12 @@ packages:
is-arrayish: 0.2.1
dev: true
/es-abstract@1.21.3:
resolution: {integrity: sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==}
/es-abstract@1.22.1:
resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
arraybuffer.prototype.slice: 1.0.1
available-typed-arrays: 1.0.5
call-bind: 1.0.2
es-set-tostringtag: 2.0.1
@ -1144,10 +1157,13 @@ packages:
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.5.0
safe-array-concat: 1.0.0
safe-regex-test: 1.0.0
string.prototype.trim: 1.2.7
string.prototype.trimend: 1.0.6
string.prototype.trimstart: 1.0.6
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
@ -1197,7 +1213,7 @@ packages:
engines: {node: '>=10'}
dev: true
/eslint-config-next@13.4.10(eslint@8.44.0)(typescript@5.1.6):
/eslint-config-next@13.4.10(eslint@8.45.0)(typescript@5.1.6):
resolution: {integrity: sha512-+JjcM6lQmFR5Mw0ORm9o1CR29+z/uajgSfYAPEGIBxOhTHBgCMs7ysuwi72o7LkMmA8E3N7/h09pSGZxs0s85g==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@ -1208,27 +1224,27 @@ packages:
dependencies:
'@next/eslint-plugin-next': 13.4.10
'@rushstack/eslint-patch': 1.3.2
'@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
eslint: 8.44.0
'@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
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.44.0)
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.44.0)
eslint-plugin-react: 7.32.2(eslint@8.44.0)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.44.0)
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-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0)
typescript: 5.1.6
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-config-prettier@8.8.0(eslint@8.44.0):
/eslint-config-prettier@8.8.0(eslint@8.45.0):
resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.44.0
eslint: 8.45.0
dev: true
/eslint-import-resolver-node@0.3.7:
@ -1241,7 +1257,7 @@ packages:
- supports-color
dev: true
/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.44.0):
/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):
resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@ -1250,9 +1266,9 @@ packages:
dependencies:
debug: 4.3.4
enhanced-resolve: 5.15.0
eslint: 8.44.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0)
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0)
eslint: 8.45.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.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)
get-tsconfig: 4.6.2
globby: 13.2.2
is-core-module: 2.12.1
@ -1265,7 +1281,7 @@ packages:
- supports-color
dev: true
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0):
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@ -1286,16 +1302,16 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
'@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
debug: 3.2.7
eslint: 8.44.0
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
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.44.0)
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)
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0):
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
engines: {node: '>=4'}
peerDependencies:
@ -1305,15 +1321,15 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
'@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
debug: 3.2.7
doctrine: 2.1.0
eslint: 8.44.0
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0)
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
has: 1.0.3
is-core-module: 2.12.1
is-glob: 4.0.3
@ -1328,7 +1344,7 @@ packages:
- supports-color
dev: true
/eslint-plugin-jsx-a11y@6.7.1(eslint@8.44.0):
/eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0):
resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
engines: {node: '>=4.0'}
peerDependencies:
@ -1343,7 +1359,7 @@ packages:
axobject-query: 3.2.1
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 8.44.0
eslint: 8.45.0
has: 1.0.3
jsx-ast-utils: 3.3.4
language-tags: 1.0.5
@ -1353,16 +1369,16 @@ packages:
semver: 6.3.1
dev: true
/eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.44.0):
/eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0):
resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==}
engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
dependencies:
eslint: 8.44.0
eslint: 8.45.0
dev: true
/eslint-plugin-react@7.32.2(eslint@8.44.0):
/eslint-plugin-react@7.32.2(eslint@8.45.0):
resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
engines: {node: '>=4'}
peerDependencies:
@ -1372,7 +1388,7 @@ packages:
array.prototype.flatmap: 1.3.1
array.prototype.tosorted: 1.1.1
doctrine: 2.1.0
eslint: 8.44.0
eslint: 8.45.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.4
minimatch: 3.1.2
@ -1386,17 +1402,17 @@ packages:
string.prototype.matchall: 4.0.8
dev: true
/eslint-plugin-unicorn@47.0.0(eslint@8.44.0):
resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==}
/eslint-plugin-unicorn@48.0.0(eslint@8.45.0):
resolution: {integrity: sha512-8fk/v3p1ro34JSVDBEmtOq6EEQRpMR0iTir79q69KnXFZ6DJyPkT3RAi+ZoTqhQMdDSpGh8BGR68ne1sP5cnAA==}
engines: {node: '>=16'}
peerDependencies:
eslint: '>=8.38.0'
eslint: '>=8.44.0'
dependencies:
'@babel/helper-validator-identifier': 7.22.5
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
ci-info: 3.8.0
clean-regexp: 1.0.0
eslint: 8.44.0
eslint: 8.45.0
esquery: 1.5.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
@ -1406,13 +1422,12 @@ packages:
read-pkg-up: 7.0.1
regexp-tree: 0.1.27
regjsparser: 0.10.0
safe-regex: 2.1.1
semver: 7.5.4
strip-indent: 3.0.0
dev: true
/eslint-scope@7.2.0:
resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
/eslint-scope@7.2.1:
resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
esrecurse: 4.3.0
@ -1424,12 +1439,12 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.44.0:
resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==}
/eslint@8.45.0:
resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
'@eslint-community/regexpp': 4.5.1
'@eslint/eslintrc': 2.1.0
'@eslint/js': 8.44.0
@ -1442,9 +1457,9 @@ packages:
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.0
eslint-scope: 7.2.1
eslint-visitor-keys: 3.4.1
espree: 9.6.0
espree: 9.6.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@ -1454,7 +1469,6 @@ packages:
globals: 13.20.0
graphemer: 1.4.0
ignore: 5.2.4
import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@ -1466,14 +1480,13 @@ packages:
natural-compare: 1.4.0
optionator: 0.9.3
strip-ansi: 6.0.1
strip-json-comments: 3.1.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
dev: true
/espree@9.6.0:
resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==}
/espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.10.0
@ -1642,7 +1655,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
functions-have-names: 1.2.3
dev: true
@ -2086,6 +2099,10 @@ packages:
is-docker: 2.2.1
dev: true
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
dev: true
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
@ -2362,7 +2379,7 @@ packages:
'@next/env': 13.4.10
'@swc/helpers': 0.5.1
busboy: 1.6.0
caniuse-lite: 1.0.30001515
caniuse-lite: 1.0.30001516
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -2459,7 +2476,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/object.fromentries@2.0.6:
@ -2468,14 +2485,14 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/object.hasown@1.1.2:
resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
dependencies:
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/object.values@1.1.6:
@ -2484,7 +2501,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/ofetch@1.1.1:
@ -2658,8 +2675,8 @@ packages:
engines: {node: '>= 6'}
dev: true
/playwright-core@1.36.0:
resolution: {integrity: sha512-7RTr8P6YJPAqB+8j5ATGHqD6LvLLM39sYVNsslh78g8QeLcBs5750c6+msjrHUwwGt+kEbczBj1XB22WMwn+WA==}
/playwright-core@1.36.1:
resolution: {integrity: sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg==}
engines: {node: '>=16'}
hasBin: true
dev: true
@ -2760,8 +2777,8 @@ packages:
engines: {node: '>= 0.8.0'}
dev: true
/prettier-plugin-tailwindcss@0.4.0(prettier@3.0.0):
resolution: {integrity: sha512-Rna0sDPETA0KNhMHlN8wxKNgfSa8mTl2hPPAGxnbv6tUcHT6J4RQmQ8TLXyhB7Dm5Von4iHloBxTyClYM6wT0A==}
/prettier-plugin-tailwindcss@0.4.1(prettier@3.0.0):
resolution: {integrity: sha512-hwn2EiJmv8M+AW4YDkbjJ6HlZCTzLyz1QlySn9sMuKV/Px0fjwldlB7tol8GzdgqtkdPtzT3iJ4UzdnYXP25Ag==}
engines: {node: '>=12.17.0'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
@ -3004,6 +3021,16 @@ packages:
tslib: 2.6.0
dev: true
/safe-array-concat@1.0.0:
resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
engines: {node: '>=0.4'}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
has-symbols: 1.0.3
isarray: 2.0.5
dev: true
/safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
@ -3012,12 +3039,6 @@ packages:
is-regex: 1.1.4
dev: true
/safe-regex@2.1.1:
resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
dependencies:
regexp-tree: 0.1.27
dev: true
/satori@0.10.1:
resolution: {integrity: sha512-F4bTCkDp931tLb7+UCNPBuSQwXhikrUkI4fBQo6fA8lF0Evqqgg3nDyUpRktQpR5Ry1DIiIVqLyEwkAms87ykg==}
engines: {node: '>=16'}
@ -3181,7 +3202,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
get-intrinsic: 1.2.1
has-symbols: 1.0.3
internal-slot: 1.0.5
@ -3195,7 +3216,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/string.prototype.trimend@1.0.6:
@ -3203,7 +3224,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/string.prototype.trimstart@1.0.6:
@ -3211,7 +3232,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.21.3
es-abstract: 1.22.1
dev: true
/strip-ansi@6.0.1:
@ -3272,8 +3293,8 @@ packages:
react: 18.2.0
dev: false
/sucrase@3.32.0:
resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
/sucrase@3.33.0:
resolution: {integrity: sha512-ARGC7vbufOHfpvyGcZZXFaXCMZ9A4fffOGC5ucOW7+WHDGlAe8LJdf3Jts1sWhDeiI1RSWrKy5Hodl+JWGdW2A==}
engines: {node: '>=8'}
hasBin: true
dependencies:
@ -3339,7 +3360,7 @@ packages:
postcss-nested: 6.0.1(postcss@8.4.26)
postcss-selector-parser: 6.0.13
resolve: 1.22.2
sucrase: 3.32.0
sucrase: 3.33.0
transitivePeerDependencies:
- ts-node
dev: true
@ -3443,6 +3464,25 @@ packages:
engines: {node: '>=8'}
dev: true
/typed-array-buffer@1.0.0:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
is-typed-array: 1.1.10
dev: true
/typed-array-byte-length@1.0.0:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.10
dev: true
/typed-array-byte-offset@1.0.0:
resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
engines: {node: '>= 0.4'}