mirror of
https://github.com/vercel/commerce.git
synced 2025-05-17 06:56:59 +00:00
BigCommerce custom fields
This commit is contained in:
parent
f4a7b7255e
commit
15928abe12
@ -63,6 +63,7 @@
|
|||||||
"react-dom": "^18"
|
"react-dom": "^18"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@manifoldco/swagger-to-ts": "^2.1.0",
|
||||||
"@taskr/clear": "^1.1.0",
|
"@taskr/clear": "^1.1.0",
|
||||||
"@taskr/esnext": "^1.1.0",
|
"@taskr/esnext": "^1.1.0",
|
||||||
"@taskr/watch": "^1.1.0",
|
"@taskr/watch": "^1.1.0",
|
||||||
@ -74,6 +75,7 @@
|
|||||||
"@types/react": "^18.0.14",
|
"@types/react": "^18.0.14",
|
||||||
"lint-staged": "^12.1.7",
|
"lint-staged": "^12.1.7",
|
||||||
"next": "^12.0.8",
|
"next": "^12.0.8",
|
||||||
|
"node-fetch": "^2.6.7",
|
||||||
"prettier": "^2.5.1",
|
"prettier": "^2.5.1",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
@ -50,6 +50,15 @@ export const getProductQuery = /* GraphQL */ `
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
customFields {
|
||||||
|
edges {
|
||||||
|
node {
|
||||||
|
entityId
|
||||||
|
name
|
||||||
|
value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
import type { Page } from '@vercel/commerce/types/page'
|
import type { Page } from '@vercel/commerce/types/page'
|
||||||
import type { Product } from '@vercel/commerce/types/product'
|
import type {
|
||||||
|
Product,
|
||||||
|
ProductCustomField,
|
||||||
|
} from '@vercel/commerce/types/product'
|
||||||
import type { Cart, LineItem } from '@vercel/commerce/types/cart'
|
import type { Cart, LineItem } from '@vercel/commerce/types/cart'
|
||||||
import type { Category, Brand } from '@vercel/commerce/types/site'
|
import type { Category, Brand } from '@vercel/commerce/types/site'
|
||||||
import type { BigcommerceCart, BCCategory, BCBrand } from '../types'
|
import type { BigcommerceCart, BCCategory, BCBrand } from '../types'
|
||||||
import type { ProductNode } from '../api/operations/get-all-products'
|
import type { ProductNode } from '../api/operations/get-all-products'
|
||||||
import type { definitions } from '../api/definitions/store-content'
|
import type { definitions } from '../api/definitions/store-content'
|
||||||
|
import type { CustomFieldEdge } from '../../schema'
|
||||||
|
|
||||||
import getSlug from './get-slug'
|
import getSlug from './get-slug'
|
||||||
|
|
||||||
@ -20,10 +24,20 @@ function normalizeProductOption(productOption: any) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function normalizeProduct(productNode: ProductNode): Product {
|
// TODO: change this after schema definition is updated
|
||||||
|
interface ProductNodeWithCustomFields extends ProductNode {
|
||||||
|
customFields: {
|
||||||
|
edges?: CustomFieldEdge[]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function normalizeProduct(
|
||||||
|
productNode: ProductNodeWithCustomFields
|
||||||
|
): Product {
|
||||||
const {
|
const {
|
||||||
entityId: id,
|
entityId: id,
|
||||||
productOptions,
|
productOptions,
|
||||||
|
customFields,
|
||||||
prices,
|
prices,
|
||||||
path,
|
path,
|
||||||
images,
|
images,
|
||||||
@ -52,6 +66,7 @@ export function normalizeProduct(productNode: ProductNode): Product {
|
|||||||
})
|
})
|
||||||
) || [],
|
) || [],
|
||||||
options: productOptions?.edges?.map(normalizeProductOption) || [],
|
options: productOptions?.edges?.map(normalizeProductOption) || [],
|
||||||
|
customFields: customFields?.edges?.map(normalizeCustomFieldsValue) || [],
|
||||||
slug: path?.replace(/^\/+|\/+$/g, ''),
|
slug: path?.replace(/^\/+|\/+$/g, ''),
|
||||||
price: {
|
price: {
|
||||||
value: prices?.price.value,
|
value: prices?.price.value,
|
||||||
@ -137,3 +152,17 @@ export function normalizeBrand(brand: BCBrand): Brand {
|
|||||||
path: `/${slug}`,
|
path: `/${slug}`,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizeCustomFieldsValue(
|
||||||
|
field: CustomFieldEdge
|
||||||
|
): ProductCustomField {
|
||||||
|
const {
|
||||||
|
node: { entityId, name, value },
|
||||||
|
} = field
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: String(entityId),
|
||||||
|
name,
|
||||||
|
value,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -152,6 +152,21 @@ export interface ProductMetafields {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ProductCustomField {
|
||||||
|
/**
|
||||||
|
* The unique identifier for the custom field.
|
||||||
|
*/
|
||||||
|
id: string
|
||||||
|
/**
|
||||||
|
* The name of the custom field.
|
||||||
|
*/
|
||||||
|
name: string
|
||||||
|
/**
|
||||||
|
* The value of the custom field.
|
||||||
|
*/
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface Product {
|
export interface Product {
|
||||||
/**
|
/**
|
||||||
* The unique identifier for the product.
|
* The unique identifier for the product.
|
||||||
@ -186,11 +201,17 @@ export interface Product {
|
|||||||
*/
|
*/
|
||||||
images: Image[]
|
images: Image[]
|
||||||
/**
|
/**
|
||||||
* The products custom fields. They are used to store simple key-value additional information about the product.
|
* List of custom fields / properties associated with the product.
|
||||||
|
* @example
|
||||||
|
* customFields: [{
|
||||||
|
* id: '1',
|
||||||
|
* name: 'Warehouse Location',
|
||||||
|
* value: 'Aisle 3, Shelf 5, Bin 6'
|
||||||
|
* }]
|
||||||
*/
|
*/
|
||||||
customFields?: Record<string, string>
|
customFields?: ProductCustomField[]
|
||||||
/**
|
/**
|
||||||
* The product metafields are advanced custom fields that can be added to a product. They are used to store additional information about the product, usually in a structured format.
|
* Advanced custom fields that can be added to a product. They are used to store additional information about the product, in a structured format, grouped by namespaces.
|
||||||
* @example
|
* @example
|
||||||
* {
|
* {
|
||||||
* // Namespace, the container for a set of metadata
|
* // Namespace, the container for a set of metadata
|
||||||
@ -198,8 +219,10 @@ export interface Product {
|
|||||||
* // Key of the metafield, used to differentiate between metafields of the same namespace
|
* // Key of the metafield, used to differentiate between metafields of the same namespace
|
||||||
* rating: {
|
* rating: {
|
||||||
* key: 'rating',
|
* key: 'rating',
|
||||||
* value: 5,
|
* value: 4,
|
||||||
* // ... other metafield properties
|
* valueHtml: '★★★★☆',
|
||||||
|
* type: 'integer',
|
||||||
|
* name: 'Rating',
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
|
@ -83,8 +83,8 @@ export const getMetafieldValue = (
|
|||||||
case 'weight':
|
case 'weight':
|
||||||
return getMeasurment(value, locale)
|
return getMeasurment(value, locale)
|
||||||
case 'rating':
|
case 'rating':
|
||||||
const { scale_max, value: val } = JSON.parse(value)
|
const { scale_max: length, value: val } = JSON.parse(value)
|
||||||
return Array.from({ length: scale_max }, (_, i) =>
|
return Array.from({ length }, (_, i) =>
|
||||||
i <= val - 1 ? '★' : '☆'
|
i <= val - 1 ? '★' : '☆'
|
||||||
).join('')
|
).join('')
|
||||||
case 'color':
|
case 'color':
|
||||||
|
222
pnpm-lock.yaml
generated
222
pnpm-lock.yaml
generated
@ -15,6 +15,7 @@ importers:
|
|||||||
packages/bigcommerce:
|
packages/bigcommerce:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@cfworker/uuid': ^1.12.4
|
'@cfworker/uuid': ^1.12.4
|
||||||
|
'@manifoldco/swagger-to-ts': ^2.1.0
|
||||||
'@taskr/clear': ^1.1.0
|
'@taskr/clear': ^1.1.0
|
||||||
'@taskr/esnext': ^1.1.0
|
'@taskr/esnext': ^1.1.0
|
||||||
'@taskr/watch': ^1.1.0
|
'@taskr/watch': ^1.1.0
|
||||||
@ -33,6 +34,7 @@ importers:
|
|||||||
lint-staged: ^12.1.7
|
lint-staged: ^12.1.7
|
||||||
lodash.debounce: ^4.0.8
|
lodash.debounce: ^4.0.8
|
||||||
next: ^12.0.8
|
next: ^12.0.8
|
||||||
|
node-fetch: ^2.6.7
|
||||||
prettier: ^2.5.1
|
prettier: ^2.5.1
|
||||||
react: ^18.2.0
|
react: ^18.2.0
|
||||||
react-dom: ^18.2.0
|
react-dom: ^18.2.0
|
||||||
@ -51,6 +53,7 @@ importers:
|
|||||||
lodash.debounce: 4.0.8
|
lodash.debounce: 4.0.8
|
||||||
uuidv4: 6.2.13
|
uuidv4: 6.2.13
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@manifoldco/swagger-to-ts': 2.1.0
|
||||||
'@taskr/clear': 1.1.0
|
'@taskr/clear': 1.1.0
|
||||||
'@taskr/esnext': 1.1.0
|
'@taskr/esnext': 1.1.0
|
||||||
'@taskr/watch': 1.1.0
|
'@taskr/watch': 1.1.0
|
||||||
@ -62,6 +65,7 @@ importers:
|
|||||||
'@types/react': 18.0.25
|
'@types/react': 18.0.25
|
||||||
lint-staged: 12.5.0
|
lint-staged: 12.5.0
|
||||||
next: 12.3.4_biqbaboplfbrettd7655fr4n2y
|
next: 12.3.4_biqbaboplfbrettd7655fr4n2y
|
||||||
|
node-fetch: 2.6.7
|
||||||
prettier: 2.8.0
|
prettier: 2.8.0
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
react-dom: 18.2.0_react@18.2.0
|
react-dom: 18.2.0_react@18.2.0
|
||||||
@ -2427,6 +2431,18 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@manifoldco/swagger-to-ts/2.1.0:
|
||||||
|
resolution: {integrity: sha512-IH0FAHhwWHR3Gs3rnVHNEscZujGn+K6/2Zu5cWfZre3Vz2tx1SvvJKEbSM89MztfDDRjOpb+6pQD/vqdEoTBVg==}
|
||||||
|
engines: {node: '>= 10.0.0'}
|
||||||
|
deprecated: This package has changed to openapi-typescript
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
chalk: 4.1.2
|
||||||
|
js-yaml: 3.14.1
|
||||||
|
meow: 7.1.1
|
||||||
|
prettier: 2.8.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@next/bundle-analyzer/12.3.4:
|
/@next/bundle-analyzer/12.3.4:
|
||||||
resolution: {integrity: sha512-eKjgRICzbLTmod0UnJcArFVs5uEAiuZwB6NCf84m+btW7jdylUVoOYf1wi5tA14xk5L9Lho7Prm6/XJ8gxYzfQ==}
|
resolution: {integrity: sha512-eKjgRICzbLTmod0UnJcArFVs5uEAiuZwB6NCf84m+btW7jdylUVoOYf1wi5tA14xk5L9Lho7Prm6/XJ8gxYzfQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3260,6 +3276,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-5iJ3FBJBvQHQ8sFhEhJfjUP+G+LalhavTkYyrAYqz5MEJG+erSv0k9KJLb6q7++17Lafk1scaTIFXcMJlwK8Mw==}
|
resolution: {integrity: sha512-5iJ3FBJBvQHQ8sFhEhJfjUP+G+LalhavTkYyrAYqz5MEJG+erSv0k9KJLb6q7++17Lafk1scaTIFXcMJlwK8Mw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/minimist/1.2.2:
|
||||||
|
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/node-fetch/2.6.2:
|
/@types/node-fetch/2.6.2:
|
||||||
resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
|
resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3275,6 +3295,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
|
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/normalize-package-data/2.4.1:
|
||||||
|
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/parse-json/4.0.0:
|
/@types/parse-json/4.0.0:
|
||||||
resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
|
resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -3584,6 +3608,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/argparse/1.0.10:
|
||||||
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
|
dependencies:
|
||||||
|
sprintf-js: 1.0.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/argparse/2.0.1:
|
/argparse/2.0.1:
|
||||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -3696,6 +3726,11 @@ packages:
|
|||||||
get-intrinsic: 1.1.3
|
get-intrinsic: 1.1.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/arrify/1.0.1:
|
||||||
|
resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/asap/2.0.6:
|
/asap/2.0.6:
|
||||||
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -4016,6 +4051,15 @@ packages:
|
|||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/camelcase-keys/6.2.2:
|
||||||
|
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
camelcase: 5.3.1
|
||||||
|
map-obj: 4.3.0
|
||||||
|
quick-lru: 4.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/camelcase/5.3.1:
|
/camelcase/5.3.1:
|
||||||
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -4546,6 +4590,14 @@ packages:
|
|||||||
supports-color: 9.2.3
|
supports-color: 9.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/decamelize-keys/1.1.1:
|
||||||
|
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
decamelize: 1.2.0
|
||||||
|
map-obj: 1.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/decamelize/1.2.0:
|
/decamelize/1.2.0:
|
||||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -5100,6 +5152,12 @@ packages:
|
|||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/esprima/4.0.1:
|
||||||
|
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
hasBin: true
|
||||||
|
dev: true
|
||||||
|
|
||||||
/esquery/1.4.0:
|
/esquery/1.4.0:
|
||||||
resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
|
resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
|
||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
@ -5754,6 +5812,11 @@ packages:
|
|||||||
duplexer: 0.1.2
|
duplexer: 0.1.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/hard-rejection/2.1.0:
|
||||||
|
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/has-ansi/2.0.0:
|
/has-ansi/2.0.0:
|
||||||
resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
|
resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -5836,6 +5899,10 @@ packages:
|
|||||||
tslib: 2.4.1
|
tslib: 2.4.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/hosted-git-info/2.8.9:
|
||||||
|
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/http-cache-semantics/4.1.0:
|
/http-cache-semantics/4.1.0:
|
||||||
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
|
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
|
||||||
|
|
||||||
@ -6293,6 +6360,11 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-plain-obj/1.1.0:
|
||||||
|
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/is-plain-object/2.0.4:
|
/is-plain-object/2.0.4:
|
||||||
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -6441,6 +6513,14 @@ packages:
|
|||||||
/js-tokens/4.0.0:
|
/js-tokens/4.0.0:
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||||
|
|
||||||
|
/js-yaml/3.14.1:
|
||||||
|
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
argparse: 1.0.10
|
||||||
|
esprima: 4.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/js-yaml/4.1.0:
|
/js-yaml/4.1.0:
|
||||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -6945,6 +7025,16 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/map-obj/1.0.1:
|
||||||
|
resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/map-obj/4.3.0:
|
||||||
|
resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/map-visit/1.0.0:
|
/map-visit/1.0.0:
|
||||||
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
|
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -6963,6 +7053,23 @@ packages:
|
|||||||
resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==}
|
resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/meow/7.1.1:
|
||||||
|
resolution: {integrity: sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
'@types/minimist': 1.2.2
|
||||||
|
camelcase-keys: 6.2.2
|
||||||
|
decamelize-keys: 1.1.1
|
||||||
|
hard-rejection: 2.1.0
|
||||||
|
minimist-options: 4.1.0
|
||||||
|
normalize-package-data: 2.5.0
|
||||||
|
read-pkg-up: 7.0.1
|
||||||
|
redent: 3.0.0
|
||||||
|
trim-newlines: 3.0.1
|
||||||
|
type-fest: 0.13.1
|
||||||
|
yargs-parser: 18.1.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/merge-stream/2.0.0:
|
/merge-stream/2.0.0:
|
||||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -7074,6 +7181,11 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/min-indent/1.0.1:
|
||||||
|
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/minimatch/3.1.2:
|
/minimatch/3.1.2:
|
||||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7086,6 +7198,15 @@ packages:
|
|||||||
brace-expansion: 1.1.11
|
brace-expansion: 1.1.11
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/minimist-options/4.1.0:
|
||||||
|
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
dependencies:
|
||||||
|
arrify: 1.0.1
|
||||||
|
is-plain-obj: 1.1.0
|
||||||
|
kind-of: 6.0.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/minimist/1.2.7:
|
/minimist/1.2.7:
|
||||||
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
|
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
|
||||||
|
|
||||||
@ -7349,6 +7470,15 @@ packages:
|
|||||||
/node-releases/2.0.6:
|
/node-releases/2.0.6:
|
||||||
resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
|
resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
|
||||||
|
|
||||||
|
/normalize-package-data/2.5.0:
|
||||||
|
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
|
||||||
|
dependencies:
|
||||||
|
hosted-git-info: 2.8.9
|
||||||
|
resolve: 1.22.1
|
||||||
|
semver: 5.7.1
|
||||||
|
validate-npm-package-license: 3.0.4
|
||||||
|
dev: true
|
||||||
|
|
||||||
/normalize-path/2.1.1:
|
/normalize-path/2.1.1:
|
||||||
resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
|
resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -8257,6 +8387,11 @@ packages:
|
|||||||
/queue-microtask/1.2.3:
|
/queue-microtask/1.2.3:
|
||||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||||
|
|
||||||
|
/quick-lru/4.0.1:
|
||||||
|
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/quick-lru/5.1.1:
|
/quick-lru/5.1.1:
|
||||||
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
|
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -8383,6 +8518,25 @@ packages:
|
|||||||
pify: 2.3.0
|
pify: 2.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/read-pkg-up/7.0.1:
|
||||||
|
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
find-up: 4.1.0
|
||||||
|
read-pkg: 5.2.0
|
||||||
|
type-fest: 0.8.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/read-pkg/5.2.0:
|
||||||
|
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
'@types/normalize-package-data': 2.4.1
|
||||||
|
normalize-package-data: 2.5.0
|
||||||
|
parse-json: 5.2.0
|
||||||
|
type-fest: 0.6.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/readable-stream/2.3.7:
|
/readable-stream/2.3.7:
|
||||||
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -8421,6 +8575,14 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
/redent/3.0.0:
|
||||||
|
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
indent-string: 4.0.0
|
||||||
|
strip-indent: 3.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/redis-commands/1.7.0:
|
/redis-commands/1.7.0:
|
||||||
resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==}
|
resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==}
|
||||||
dev: false
|
dev: false
|
||||||
@ -8884,6 +9046,28 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/spdx-correct/3.1.1:
|
||||||
|
resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
|
||||||
|
dependencies:
|
||||||
|
spdx-expression-parse: 3.0.1
|
||||||
|
spdx-license-ids: 3.0.12
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/spdx-exceptions/2.3.0:
|
||||||
|
resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/spdx-expression-parse/3.0.1:
|
||||||
|
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
|
||||||
|
dependencies:
|
||||||
|
spdx-exceptions: 2.3.0
|
||||||
|
spdx-license-ids: 3.0.12
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/spdx-license-ids/3.0.12:
|
||||||
|
resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/split-string/3.1.0:
|
/split-string/3.1.0:
|
||||||
resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
|
resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -8897,6 +9081,10 @@ packages:
|
|||||||
tslib: 2.4.1
|
tslib: 2.4.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/sprintf-js/1.0.3:
|
||||||
|
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ssri/8.0.1:
|
/ssri/8.0.1:
|
||||||
resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
|
resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
@ -9049,6 +9237,13 @@ packages:
|
|||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/strip-indent/3.0.0:
|
||||||
|
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
min-indent: 1.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/strip-json-comments/2.0.1:
|
/strip-json-comments/2.0.1:
|
||||||
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -9290,6 +9485,11 @@ packages:
|
|||||||
/tr46/0.0.3:
|
/tr46/0.0.3:
|
||||||
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||||
|
|
||||||
|
/trim-newlines/3.0.1:
|
||||||
|
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ts-log/2.2.5:
|
/ts-log/2.2.5:
|
||||||
resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==}
|
resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -9453,6 +9653,11 @@ packages:
|
|||||||
prelude-ls: 1.2.1
|
prelude-ls: 1.2.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/type-fest/0.13.1:
|
||||||
|
resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/type-fest/0.20.2:
|
/type-fest/0.20.2:
|
||||||
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
|
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -9463,6 +9668,16 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/type-fest/0.6.0:
|
||||||
|
resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/type-fest/0.8.1:
|
||||||
|
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/typescript/4.7.4:
|
/typescript/4.7.4:
|
||||||
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
|
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
@ -9659,6 +9874,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
|
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/validate-npm-package-license/3.0.4:
|
||||||
|
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
|
||||||
|
dependencies:
|
||||||
|
spdx-correct: 3.1.1
|
||||||
|
spdx-expression-parse: 3.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/value-or-promise/1.0.11:
|
/value-or-promise/1.0.11:
|
||||||
resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==}
|
resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
@ -67,7 +67,7 @@ const ProductSidebar: FC<ProductSidebarProps> = ({ product, className }) => {
|
|||||||
<div className="flex flex-row justify-between items-center">
|
<div className="flex flex-row justify-between items-center">
|
||||||
<Rating value={product.metafields.reviews.rating.value} />
|
<Rating value={product.metafields.reviews.rating.value} />
|
||||||
<div className="text-accent-6 pr-1 font-medium text-sm">
|
<div className="text-accent-6 pr-1 font-medium text-sm">
|
||||||
{product.metafields.reviews.count?.value || 2} reviews
|
{product.metafields.reviews.count?.value ?? 0} reviews
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@ -90,18 +90,28 @@ const ProductSidebar: FC<ProductSidebarProps> = ({ product, className }) => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-6">
|
<div className="mt-6">
|
||||||
{product.metafields?.descriptors?.care_guide && (
|
|
||||||
<Collapse title="Care">
|
<Collapse title="Care">
|
||||||
<Text
|
This is a limited edition production run. Printing starts when the
|
||||||
className="leading-0"
|
drop ends.
|
||||||
html={product.metafields.descriptors.care_guide.valueHtml}
|
|
||||||
/>
|
|
||||||
</Collapse>
|
</Collapse>
|
||||||
)}
|
|
||||||
|
|
||||||
{product.metafields?.my_fields && (
|
|
||||||
<Collapse title="Details">
|
<Collapse title="Details">
|
||||||
{Object.values(product.metafields.my_fields).map((field) => (
|
This is a limited edition production run. Printing starts when the
|
||||||
|
drop ends. Reminder: Bad Boys For Life. Shipping may take 10+ days due
|
||||||
|
to COVID-19.
|
||||||
|
</Collapse>
|
||||||
|
{(product.customFields || product.metafields) && (
|
||||||
|
<Collapse title="Specifications">
|
||||||
|
{product.customFields?.map((field) => (
|
||||||
|
<div
|
||||||
|
key={field.id}
|
||||||
|
className="flex gap-2 border-b py-3 border-accent-2 border-dashed last:border-b-0"
|
||||||
|
>
|
||||||
|
<strong className="leading-7">{field.name}:</strong>
|
||||||
|
<span>{field.value}</span>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
|
||||||
|
{Object.values(product.metafields?.my_fields ?? {}).map((field) => (
|
||||||
<div
|
<div
|
||||||
key={field.key}
|
key={field.key}
|
||||||
className="flex gap-2 border-b py-3 border-accent-2 border-dashed last:border-b-0"
|
className="flex gap-2 border-b py-3 border-accent-2 border-dashed last:border-b-0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user