1st attempt of connecting it to live data

This commit is contained in:
Ghita Lucian 2023-08-17 14:00:35 +02:00
parent 0cbd56de8b
commit 843edc429f
6 changed files with 620 additions and 224 deletions

227
lib/cf/adventures.js Normal file
View File

@ -0,0 +1,227 @@
/*
* Copyright 2022 Adobe. All rights reserved.
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*
*/
import AEMHeadless from '@adobe/aem-headless-client-js';
// import { PUBLIC_AEM_HOST, PUBLIC_GRAPHQL_ENDPOINT } from '$env/static/public';
// import { AEM_AUTH } from '$env/static/private';
const PUBLIC_AEM_HOST = 'https://publish-p64257-e147834-cmstg.adobeaemcloud.com';
const PUBLIC_GRAPHQL_ENDPOINT = '/content/_cq_graphql/aem-demo-assets/endpoint.json';
export class AdventureClient {
static fromEnv() {
if (!this.__envClient) {
this.__envClient = new AdventureClient({
serviceURL: PUBLIC_AEM_HOST,
endpoint: PUBLIC_GRAPHQL_ENDPOINT,
auth: ''
});
}
return this.__envClient;
}
constructor({ serviceURL, endpoint, auth }) {
this.aemHeadlessClient = new AEMHeadless({
serviceURL,
endpoint,
auth,
fetch
});
}
async getAllAdventures() {
// const queryAdventuresAll = 'aem-demo-assets/adventures-all';
// const res = await this.aemHeadlessClient.runPersistedQuery(queryAdventuresAll);
const query = `{
adventureList {
items {
_path
title
activity
adventureType
price
tripLength
groupSize
difficulty
primaryImage {
... on ImageRef {
_path
mimeType
width
height
}
}
description {
html
}
itinerary {
html
}
}
}
}
`;
const res = await this.aemHeadlessClient.runQuery(query);
return res;
}
async getAdventurePaths() {
const res = await this.getAllAdventures();
const adventures = res?.data?.adventureList?.items || [];
const paths = adventures.map((item) => ({
params: {
path: [item.slug]
}
}));
return paths;
}
async getAdventureByPath(path) {
const query = `{
adventureByPath (_path: "${path}") {
item {
_path
title
activity
adventureType
price
tripLength
groupSize
difficulty
primaryImage {
... on ImageRef {
_path
mimeType
width
height
}
}
description {
html
}
itinerary {
html
}
}
}
}
`;
const res = await this.aemHeadlessClient.runQuery(query);
return res;
}
}
export const winterCollection = {
handle: 'winter-collection',
title: 'Winter',
description: 'Adventures for the winter.',
seo: {
title: 'Winter Collection',
description: 'Adventures for the winter.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const summerCollection = {
handle: 'summer-collection',
title: 'Summer',
description: 'Adventures for the summer.',
seo: {
title: 'Summer Collection',
description: 'Adventures for the summer.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const europeCollection = {
handle: 'europe-collection',
title: 'Europe',
description: 'Adventures in Europe.',
seo: {
title: 'Europe Collection',
description: 'Adventures in Europe.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const tcPage = {
id: 'tc',
title: 'Terms & Conditions',
handle: 'tc',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary',
seo: {
title: 'Terms & Conditions Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const aboutPage = {
id: 'about',
title: 'About',
handle: 'about',
body: 'This website is built with Next.js Commerce, which is a ecommerce template for creating a headless storefront. ',
bodySummary: 'Summary of about page',
seo: {
title: 'About Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const faqPage = {
id: 'faq',
title: 'FAQ',
handle: 'faq',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'About Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const ppPage = {
id: 'pp',
title: 'Privacy Policy',
handle: 'pp',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'Privacy Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const srPage = {
id: 'sr',
title: 'Shipping & Return Policy',
handle: 'sr',
body: 'Shipping & Return Policy Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'Privacy Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const pages = [tcPage, aboutPage, ppPage, faqPage, srPage];
export const collections = [winterCollection, summerCollection, europeCollection];

View File

@ -1,6 +1,63 @@
import { AdventureClient } from '../cf/adventures';
const baseImagePath = 'https://publish-p64257-e147834-cmstg.adobeaemcloud.com/';
const adventures = [
const getAllAdventures = async () => {
const client: AdventureClient = AdventureClient.fromEnv();
const res = await client.getAllAdventures();
const adventures = res?.data?.adventureList?.items || [];
return adventures;
};
export async function getStaticCart() {
const mockShopifyProduct = (await getAdventureProducts())[0];
const mockCartItem = {
id: 'item1',
quantity: 1,
cost: {
totalAmount: {
amount: '100.00',
currencyCode: 'USD'
}
},
merchandise: {
id: 'merchandise1',
title: 'WKND Adventure',
selectedOptions: [
{
name: 'Duration',
value: 'Normal'
}
],
product: mockShopifyProduct
}
};
const cart = {
id: 'cart1',
checkoutUrl: 'https://example.com/checkout',
cost: {
subtotalAmount: {
amount: '90.00',
currencyCode: 'USD'
},
totalAmount: {
amount: '100.00',
currencyCode: 'USD'
},
totalTaxAmount: {
amount: '10.00',
currencyCode: 'USD'
}
},
lines: { edges: [{ node: mockCartItem }] },
totalQuantity: 1
};
return cart;
}
const adventuresOld = [
{
_path: '/content/dam/aem-demo-assets/en/adventures/bali-surf-camp/bali-surf-camp',
title: 'Basel Surf Camp',
@ -620,24 +677,37 @@ export function transformToProduct(adventure: any): Product {
return product;
}
export const adventureProducts: Product[] = adventures.map(transformToProduct) as Product[];
// export const adventureProducts: Product[] = adventures.map(transformToProduct) as Product[];
export const adventureProductNodes = adventureProducts.map((product) => ({
node: product
}));
export async function getAdventureProducts() {
const adventures = await getAllAdventures();
const products = adventures.map(transformToProduct) as Product[];
return products;
}
export function getProductNodesByKeyword(keyword: string | undefined): { node: Product }[] {
return getProductsByKeyword(keyword).map((product) => ({
export async function getAdventureProductsNode() {
const adventureProducts = await getAdventureProducts();
const adventureProductNodes = adventureProducts.map((product) => ({
node: product
}));
return adventureProductNodes;
}
export async function getProductNodesByKeyword(keyword: string | undefined) {
return (await getProductsByKeyword(keyword)).map((product) => ({
node: product
}));
}
export function getProductByHandle(handle: string): Product | undefined {
export async function getProductByHandle(handle: string) {
const adventureProducts = await getAdventureProducts();
const res = adventureProducts.find((product) => product.handle === handle);
return res;
}
export function getProductsByKeyword(keyword: string | undefined): Product[] {
export async function getProductsByKeyword(keyword: string | undefined) {
const adventureProducts = await getAdventureProducts();
//if keyword is empty, return all products
if (!keyword || keyword === undefined) {
return adventureProducts;

View File

@ -1,14 +1,4 @@
// @ts-ignore
import {
mockShopifyProduct,
mockCartItem,
mockShopifyCart,
winterCollection,
summerCollection,
europeCollection,
collections,
pages
} from './mock';
import {
Cart,
Collection,
@ -22,10 +12,14 @@ import {
ShopifyCollectionsOperation,
ShopifyProduct
} from './types';
import { getCollectionsQuery } from './queries/collection';
import { TAGS } from '../constants';
import { shopifyFetch } from './index_old';
import { adventureProductNodes, getProductByHandle, getProductNodesByKeyword } from './adventures';
import { getProductByHandle, getProductNodesByKeyword, getStaticCart } from './adventures';
import {
collections,
europeCollection,
pages,
summerCollection,
winterCollection
} from '../cf/adventures';
const HIDDEN_PRODUCT_TAG = 'hidden';
@ -49,7 +43,7 @@ const removeEdgesAndNodes = (connection) => {
export const createCart = async (): Promise<Cart> => {
const res = mockFetchResponse({
cartCreate: {
cart: mockShopifyCart
cart: await getStaticCart()
}
});
return reshapeCart(res.body.data.cartCreate.cart);
@ -61,7 +55,7 @@ export const addToCart = async (
): Promise<Cart> => {
const res = mockFetchResponse({
cartLinesAdd: {
cart: mockShopifyCart
cart: await getStaticCart()
}
});
return reshapeCart(res.body.data.cartLinesAdd.cart);
@ -70,7 +64,7 @@ export const addToCart = async (
export const removeFromCart = async (cartId: string, lineIds: string[]): Promise<Cart> => {
const res = mockFetchResponse({
cartLinesRemove: {
cart: mockShopifyCart
cart: await getStaticCart()
}
});
return reshapeCart(res.body.data.cartLinesRemove.cart);
@ -82,7 +76,7 @@ export const updateCart = async (
): Promise<Cart> => {
const res = mockFetchResponse({
cartLinesUpdate: {
cart: mockShopifyCart
cart: await getStaticCart()
}
});
return reshapeCart(res.body.data.cartLinesUpdate.cart);
@ -90,7 +84,7 @@ export const updateCart = async (
export const getCart = async (cartId: string): Promise<Cart | undefined> => {
const res = mockFetchResponse({
cart: mockShopifyCart
cart: await getStaticCart()
});
return reshapeCart(res.body.data.cart);
};
@ -114,7 +108,7 @@ export const getCollectionProducts = async ({
const res = mockFetchResponse({
collection: {
products: {
edges: getProductNodesByKeyword(collection)
edges: await getProductNodesByKeyword(collection)
}
}
});
@ -227,7 +221,7 @@ export const getPages = async (): Promise<Page[]> => {
export const getProduct = async (handle: string): Promise<Product | undefined> => {
const res = mockFetchResponse({
product: getProductByHandle(handle)
product: await getProductByHandle(handle)
});
return reshapeProduct(res.body.data.product, false);
};
@ -235,10 +229,10 @@ export const getProduct = async (handle: string): Promise<Product | undefined> =
export const getProductRecommendations = async (productId: string): Promise<Product[]> => {
const res = mockFetchResponse({
productRecommendations: [
getProductByHandle('climbing-new-zealand'),
getProductByHandle('ski-touring-mont-blanc'),
getProductByHandle('downhill-skiing-wyoming'),
getProductByHandle('cycling-tuscany')
await getProductByHandle('climbing-new-zealand'),
await getProductByHandle('ski-touring-mont-blanc'),
await getProductByHandle('downhill-skiing-wyoming'),
await getProductByHandle('cycling-tuscany')
]
});
return reshapeProducts(res.body.data.productRecommendations);
@ -255,7 +249,7 @@ export const getProducts = async ({
}): Promise<Product[]> => {
const res = mockFetchResponse({
products: {
edges: getProductNodesByKeyword(query)
edges: await getProductNodesByKeyword(query)
}
});
return reshapeProducts(removeEdgesAndNodes(res.body.data.products));

View File

@ -1,178 +0,0 @@
// Mock data for the defined types
const { adventureProducts } = require('./adventures');
export const mockShopifyProduct = adventureProducts[0];
// const mockShopifyProductOld = {
// id: 'product1',
// handle: 'sample-product',
// availableForSale: true,
// title: 'Sample Product',
// description: 'This is a sample product.',
// descriptionHtml: '<p>This is a sample product.</p>',
// options: [mockProductOption],
// priceRange: {
// maxVariantPrice: mockMoney,
// minVariantPrice: mockMoney
// },
// variants: { edges: [{ node: mockProductVariant }] },
// featuredImage: mockImage,
// images: { edges: [{ node: mockImage }] },
// seo: {
// title: 'Sample Product',
// description: 'This is a sample product.'
// },
// tags: ['sample', 'product'],
// updatedAt: '2023-08-10T00:00:00Z'
// };
export const mockCartItem = {
id: 'item1',
quantity: 1,
cost: {
totalAmount: {
amount: '100.00',
currencyCode: 'USD'
}
},
merchandise: {
id: 'merchandise1',
title: 'WKND Adventure',
selectedOptions: [
{
name: 'Duration',
value: 'Normal'
}
],
product: mockShopifyProduct
}
};
export const mockShopifyCart = {
id: 'cart1',
checkoutUrl: 'https://example.com/checkout',
cost: {
subtotalAmount: {
amount: '90.00',
currencyCode: 'USD'
},
totalAmount: {
amount: '100.00',
currencyCode: 'USD'
},
totalTaxAmount: {
amount: '10.00',
currencyCode: 'USD'
}
},
lines: { edges: [{ node: mockCartItem }] },
totalQuantity: 1
};
export const winterCollection = {
handle: 'winter-collection',
title: 'Winter',
description: 'Adventures for the winter.',
seo: {
title: 'Winter Collection',
description: 'Adventures for the winter.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const summerCollection = {
handle: 'summer-collection',
title: 'Summer',
description: 'Adventures for the summer.',
seo: {
title: 'Summer Collection',
description: 'Adventures for the summer.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const europeCollection = {
handle: 'europe-collection',
title: 'Europe',
description: 'Adventures in Europe.',
seo: {
title: 'Europe Collection',
description: 'Adventures in Europe.'
},
updatedAt: '2023-08-10T00:00:00Z'
};
export const tcPage = {
id: 'tc',
title: 'Terms & Conditions',
handle: 'tc',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary',
seo: {
title: 'Terms & Conditions Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const aboutPage = {
id: 'about',
title: 'About',
handle: 'about',
body: 'This website is built with Next.js Commerce, which is a ecommerce template for creating a headless storefront. ',
bodySummary: 'Summary of about page',
seo: {
title: 'About Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const faqPage = {
id: 'faq',
title: 'FAQ',
handle: 'faq',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'About Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const ppPage = {
id: 'pp',
title: 'Privacy Policy',
handle: 'pp',
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'Privacy Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const srPage = {
id: 'sr',
title: 'Shipping & Return Policy',
handle: 'sr',
body: 'Shipping & Return Policy Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
bodySummary: 'Summary of about page',
seo: {
title: 'Privacy Page',
description: 'This is a sample page.'
},
createdAt: '2023-08-01T00:00:00Z',
updatedAt: '2023-08-10T00:00:00Z'
};
export const pages = [tcPage, aboutPage, ppPage, faqPage, srPage];
export const collections = [winterCollection, summerCollection, europeCollection];

View File

@ -27,9 +27,12 @@
"clsx": "^2.0.0",
"next": "13.4.2",
"react": "18.2.0",
"react-dom": "18.2.0"
"react-dom": "18.2.0",
"sharp": "^0.32.5"
},
"devDependencies": {
"@adobe/aem-headless-client-js": "github:adobe/aem-headless-client-js",
"@adobe/universal-editor-cors": "^1.0.3",
"@tailwindcss/container-queries": "^0.1.1",
"@tailwindcss/typography": "^0.5.9",
"@types/node": "20.4.4",

300
pnpm-lock.yaml generated
View File

@ -23,8 +23,17 @@ dependencies:
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
sharp:
specifier: ^0.32.5
version: 0.32.5
devDependencies:
'@adobe/aem-headless-client-js':
specifier: github:adobe/aem-headless-client-js
version: github.com/adobe/aem-headless-client-js/83792165a5298dbe3e7df39b5b5fba9482651d9b
'@adobe/universal-editor-cors':
specifier: ^1.0.3
version: 1.0.3
'@tailwindcss/container-queries':
specifier: ^0.1.1
version: 0.1.1(tailwindcss@3.3.3)
@ -84,6 +93,14 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/@adobe/aio-lib-core-errors@3.1.1:
resolution: {integrity: sha512-xH0BVALN5DxtsLt1PI1Y9IMEd+APpD+VV7GyFoMmWBdS1daNA1Ciy+ASTB6nykQ1bfzllpDY97Q6+OClI8Y0LA==}
dev: true
/@adobe/universal-editor-cors@1.0.3:
resolution: {integrity: sha512-7p3lEW6PK+ueGQlCWeg/sb2UbFKrM/rbikjj6pDP1cCnbBMmvlDKR58TBDVG6+gHhXZtlU9YnyEtodZTCKm/gA==}
dev: true
/@alloc/quick-lru@5.2.0:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@ -682,10 +699,18 @@ packages:
dequal: 2.0.3
dev: true
/b4a@1.6.4:
resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
dev: false
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: false
/big-integer@1.6.51:
resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
engines: {node: '>=0.6'}
@ -696,6 +721,14 @@ packages:
engines: {node: '>=8'}
dev: true
/bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
dependencies:
buffer: 5.7.1
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/bplist-parser@0.2.0:
resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
engines: {node: '>= 5.10.0'}
@ -728,6 +761,13 @@ packages:
update-browserslist-db: 1.0.11(browserslist@4.21.9)
dev: true
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: false
/builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
@ -808,6 +848,10 @@ packages:
fsevents: 2.3.2
dev: true
/chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
dev: false
/ci-info@3.8.0:
resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
engines: {node: '>=8'}
@ -868,7 +912,6 @@ packages:
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
/color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
@ -876,7 +919,21 @@ packages:
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
/color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
dev: false
/color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
dev: false
/colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@ -942,6 +999,18 @@ packages:
ms: 2.1.2
dev: true
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
dependencies:
mimic-response: 3.1.0
dev: false
/deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
dev: false
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
@ -982,6 +1051,11 @@ packages:
engines: {node: '>=6'}
dev: true
/detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
dev: false
/didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: true
@ -1027,6 +1101,12 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
/end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
dependencies:
once: 1.4.0
dev: false
/enhanced-resolve@5.15.0:
resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
engines: {node: '>=10.13.0'}
@ -1460,10 +1540,19 @@ packages:
strip-final-newline: 3.0.0
dev: true
/expand-template@2.0.3:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
dev: false
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
/fast-fifo@1.3.0:
resolution: {integrity: sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==}
dev: false
/fast-glob@3.3.0:
resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==}
engines: {node: '>=8.6.0'}
@ -1552,6 +1641,10 @@ packages:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: true
/fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
dev: false
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
@ -1610,6 +1703,10 @@ packages:
resolve-pkg-maps: 1.0.0
dev: true
/github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
dev: false
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@ -1766,6 +1863,10 @@ packages:
engines: {node: '>=14.18.0'}
dev: true
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: false
/ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
@ -1798,7 +1899,10 @@ packages:
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
/ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
dev: false
/internal-slot@1.0.5:
resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
@ -1821,6 +1925,10 @@ packages:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: true
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
dev: false
/is-bigint@1.0.4:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
dependencies:
@ -2172,7 +2280,6 @@ packages:
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@ -2201,6 +2308,11 @@ packages:
engines: {node: '>=12'}
dev: true
/mimic-response@3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
dev: false
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@ -2214,7 +2326,10 @@ packages:
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
dev: false
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
@ -2237,6 +2352,10 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
/napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
dev: false
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
@ -2286,6 +2405,17 @@ packages:
- babel-plugin-macros
dev: false
/node-abi@3.47.0:
resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==}
engines: {node: '>=10'}
dependencies:
semver: 7.5.4
dev: false
/node-addon-api@6.1.0:
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
dev: false
/node-releases@2.0.13:
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
dev: true
@ -2390,7 +2520,6 @@ packages:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: true
/onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
@ -2630,6 +2759,25 @@ packages:
source-map-js: 1.0.2
dev: true
/prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
hasBin: true
dependencies:
detect-libc: 2.0.2
expand-template: 2.0.3
github-from-package: 0.0.0
minimist: 1.2.8
mkdirp-classic: 0.5.3
napi-build-utils: 1.0.2
node-abi: 3.47.0
pump: 3.0.0
rc: 1.2.8
simple-get: 4.0.1
tar-fs: 2.1.1
tunnel-agent: 0.6.0
dev: false
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@ -2704,6 +2852,13 @@ packages:
react-is: 16.13.1
dev: true
/pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
dev: false
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
@ -2713,6 +2868,20 @@ packages:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
/queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
dev: false
/rc@1.2.8:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
dependencies:
deep-extend: 0.6.0
ini: 1.3.8
minimist: 1.2.8
strip-json-comments: 2.0.1
dev: false
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
@ -2759,6 +2928,15 @@ packages:
type-fest: 0.6.0
dev: true
/readable-stream@3.6.2:
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
engines: {node: '>= 6'}
dependencies:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
dev: false
/readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
@ -2871,6 +3049,10 @@ packages:
isarray: 2.0.5
dev: true
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: false
/safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
@ -2901,7 +3083,21 @@ packages:
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/sharp@0.32.5:
resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==}
engines: {node: '>=14.15.0'}
requiresBuild: true
dependencies:
color: 4.2.3
detect-libc: 2.0.2
node-addon-api: 6.1.0
prebuild-install: 7.1.1
semver: 7.5.4
simple-get: 4.0.1
tar-fs: 3.0.4
tunnel-agent: 0.6.0
dev: false
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
@ -2927,6 +3123,24 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
/simple-concat@1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
dev: false
/simple-get@4.0.1:
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
dependencies:
decompress-response: 6.0.0
once: 1.4.0
simple-concat: 1.0.1
dev: false
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
dependencies:
is-arrayish: 0.3.2
dev: false
/slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
@ -2994,6 +3208,13 @@ packages:
engines: {node: '>=10.0.0'}
dev: false
/streamx@2.15.1:
resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==}
dependencies:
fast-fifo: 1.3.0
queue-tick: 1.0.1
dev: false
/string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
@ -3055,6 +3276,12 @@ packages:
es-abstract: 1.22.1
dev: true
/string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
dev: false
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@ -3091,6 +3318,11 @@ packages:
min-indent: 1.0.1
dev: true
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
dev: false
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
@ -3190,6 +3422,42 @@ packages:
engines: {node: '>=6'}
dev: true
/tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
dependencies:
chownr: 1.1.4
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 2.2.0
dev: false
/tar-fs@3.0.4:
resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
dependencies:
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 3.1.6
dev: false
/tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
dependencies:
bl: 4.1.0
end-of-stream: 1.4.4
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/tar-stream@3.1.6:
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
dependencies:
b4a: 1.6.4
fast-fifo: 1.3.0
streamx: 2.15.1
dev: false
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
@ -3253,6 +3521,12 @@ packages:
typescript: 5.1.6
dev: true
/tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
dependencies:
safe-buffer: 5.2.1
dev: false
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@ -3357,7 +3631,6 @@ packages:
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@ -3415,11 +3688,9 @@ packages:
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
/yaml@2.3.1:
resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
@ -3434,3 +3705,12 @@ packages:
/zod@3.21.4:
resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
dev: false
github.com/adobe/aem-headless-client-js/83792165a5298dbe3e7df39b5b5fba9482651d9b:
resolution: {tarball: https://codeload.github.com/adobe/aem-headless-client-js/tar.gz/83792165a5298dbe3e7df39b5b5fba9482651d9b}
name: '@adobe/aem-headless-client-js'
version: 3.3.1
engines: {node: '>=14.0.0'}
dependencies:
'@adobe/aio-lib-core-errors': 3.1.1
dev: true