@faststore/core 2.2.19 → 2.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/required-server-files.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/350.js +1 -1
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/[...slug].js.nft.json +1 -1
  18. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  19. package/.next/server/pages/api/graphql.js +1 -1
  20. package/.next/server/pages/en-US/404.html +2 -2
  21. package/.next/server/pages/en-US/500.html +2 -2
  22. package/.next/server/pages/en-US/account.html +2 -2
  23. package/.next/server/pages/en-US/checkout.html +2 -2
  24. package/.next/server/pages/en-US/login.html +2 -2
  25. package/.next/server/pages/en-US/s.html +2 -2
  26. package/.next/server/pages/en-US.html +2 -2
  27. package/.next/server/pages-manifest.json +4 -4
  28. package/.next/trace +78 -78
  29. package/.turbo/turbo-build.log +3 -3
  30. package/.turbo/turbo-test.log +11 -11
  31. package/package.json +10 -21
  32. package/.storybook/components/BestPractices.tsx +0 -18
  33. package/.storybook/components/BestPracticesRule.tsx +0 -43
  34. package/.storybook/components/Callout.tsx +0 -12
  35. package/.storybook/components/SectionItem.tsx +0 -46
  36. package/.storybook/components/SectionList.tsx +0 -27
  37. package/.storybook/components/TokenDivider.tsx +0 -12
  38. package/.storybook/components/TokenRow.tsx +0 -32
  39. package/.storybook/components/TokenTable.tsx +0 -33
  40. package/.storybook/components/index.ts +0 -8
  41. package/.storybook/main.js +0 -59
  42. package/.storybook/manager-head.html +0 -9
  43. package/.storybook/manager.js +0 -6
  44. package/.storybook/mocks/cart-sidebar.js +0 -40
  45. package/.storybook/mocks/filter-slider.js +0 -59
  46. package/.storybook/mocks/index.ts +0 -5
  47. package/.storybook/mocks/product.ts +0 -67
  48. package/.storybook/mocks/productGridItems.ts +0 -334
  49. package/.storybook/mocks/searchHistory.ts +0 -8
  50. package/.storybook/mocks/searchTerms.ts +0 -5
  51. package/.storybook/preview-head.html +0 -1
  52. package/.storybook/preview.js +0 -85
  53. package/.storybook/storybook.css +0 -551
  54. package/.storybook/theme.js +0 -21
  55. package/public/brandless-storybook.png +0 -0
  56. package/src/styles/global/storybook-components.scss +0 -5
  57. /package/.next/static/{eVxha-IgCjYeJHL840-Lb → l5ofCQQvVmQNWMK4ps_PJ}/_buildManifest.js +0 -0
  58. /package/.next/static/{eVxha-IgCjYeJHL840-Lb → l5ofCQQvVmQNWMK4ps_PJ}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  $ yarn partytown & yarn generate && next build
2
2
  $ partytown copylib ./public/~partytown
3
- $ faststore generate-graphql -c
4
3
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
4
+ $ faststore generate-graphql -c
5
5
  success - GraphQL schema, types, and optimizations successfully generated 🎉
6
6
  warn - You have enabled experimental feature (scrollRestoration) in next.config.js.
7
7
  warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
@@ -20,12 +20,12 @@ info - Compiled successfully
20
20
  info - Collecting page data...
21
21
  info - Generating static pages (0/7)
22
22
  warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
23
- warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
24
- warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
25
23
  info - Generating static pages (1/7)
26
24
  warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
25
+ warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
27
26
  info - Generating static pages (3/7)
28
27
  warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
28
+ warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
29
29
  info - Generating static pages (5/7)
30
30
  warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
31
31
  warn - AlertSectionIcon not found. Add a new component for this section or remove it from the CMS
@@ -1,25 +1,25 @@
1
1
  $ tsdx test
2
2
  ts-jest[versions] (WARN) Version 29.1.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=25.0.0 <26.0.0). Please do not report issues in ts-jest if you are using unsupported versions.
3
3
  ts-jest[versions] (WARN) Version 4.9.4 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=3.4.0 <4.0.0). Please do not report issues in ts-jest if you are using unsupported versions.
4
- PASS test/server/index.test.ts (21.288s)
4
+ PASS test/server/index.test.ts (16.932s)
5
5
  FastStore GraphQL Layer
6
6
  @faststore/api
7
- ✓ should return a valid GraphQL schema (4ms)
8
- ✓ should return a valid GraphQL schema contain all expected types (4ms)
9
- ✓ should return a valid GraphQL schema contain all expected queries (1ms)
10
- ✓ should return a valid GraphQL schema contain all expected mutations (1ms)
7
+ ✓ should return a valid GraphQL schema (33ms)
8
+ ✓ should return a valid GraphQL schema contain all expected types (9ms)
9
+ ✓ should return a valid GraphQL schema contain all expected queries (2ms)
10
+ ✓ should return a valid GraphQL schema contain all expected mutations
11
11
  VTEX API Extension
12
- ✓ getTypeDefsFromFolder function should return an Array (10ms)
12
+ ✓ getTypeDefsFromFolder function should return an Array (15ms)
13
13
  Third Party API Extension
14
- ✓ getTypeDefsFromFolder function should return an Array (5ms)
14
+ ✓ getTypeDefsFromFolder function should return an Array (29ms)
15
15
  Final Schema after merging
16
- ✓ should return a valid merged GraphQL schema (25ms)
16
+ ✓ should return a valid merged GraphQL schema (106ms)
17
17
  Envelop
18
- ✓ should exist with its plugins (24ms)
19
- ✓ should handle options and execute (434ms)
18
+ ✓ should exist with its plugins (85ms)
19
+ ✓ should handle options and execute (296ms)
20
20
 
21
21
  Test Suites: 1 passed, 1 total
22
22
  Tests: 9 passed, 9 total
23
23
  Snapshots: 0 total
24
- Time: 22.439s
24
+ Time: 17.882s
25
25
  Ran all test suites.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "2.2.19",
3
+ "version": "2.2.21",
4
4
  "license": "MIT",
5
5
  "browserslist": "supports es6-module and not dead",
6
6
  "exports": {
@@ -24,9 +24,7 @@
24
24
  "stylelint": "stylelint \"**/*.scss\"",
25
25
  "stylelint:fix": "stylelint \"**/*.scss\" --fix",
26
26
  "postinstall": "node postinstall.js && (is-ci || (cd ../.. && husky install packages/core/.husky)) || echo Skipped postinstall step for @faststore/core",
27
- "partytown": "partytown copylib ./public/~partytown",
28
- "storybook": "start-storybook --docs -p 6006",
29
- "build-storybook": "build-storybook"
27
+ "partytown": "partytown copylib ./public/~partytown"
30
28
  },
31
29
  "engines": {
32
30
  "node": ">=14"
@@ -38,11 +36,11 @@
38
36
  "@envelop/graphql-jit": "^1.1.1",
39
37
  "@envelop/parser-cache": "^2.2.0",
40
38
  "@envelop/validation-cache": "^2.2.0",
41
- "@faststore/api": "^2.2.19",
42
- "@faststore/components": "^2.2.19",
43
- "@faststore/graphql-utils": "^2.2.19",
44
- "@faststore/sdk": "^2.2.19",
45
- "@faststore/ui": "^2.2.19",
39
+ "@faststore/api": "^2.2.20",
40
+ "@faststore/components": "^2.2.20",
41
+ "@faststore/graphql-utils": "^2.2.20",
42
+ "@faststore/sdk": "^2.2.20",
43
+ "@faststore/ui": "^2.2.20",
46
44
  "@graphql-codegen/cli": "^3.3.1",
47
45
  "@graphql-codegen/typescript": "^3.0.4",
48
46
  "@graphql-codegen/typescript-operations": "^3.0.4",
@@ -73,24 +71,16 @@
73
71
  "sharp": "^0.31.3",
74
72
  "style-loader": "^3.3.1",
75
73
  "swr": "^1.3.0",
76
- "tsconfig-paths-webpack-plugin": "^3.5.2",
77
74
  "tsx": "^3.12.7",
78
75
  "typescript": "4.7.3"
79
76
  },
80
77
  "devDependencies": {
81
78
  "@cypress/code-coverage": "^3.12.1",
82
79
  "@envelop/testing": "^6.0.0",
83
- "@faststore/cli": "^2.2.19",
84
- "@faststore/eslint-config": "^2.2.19",
80
+ "@faststore/cli": "^2.2.20",
81
+ "@faststore/eslint-config": "^2.2.20",
85
82
  "@faststore/lighthouse": "^1.12.32",
86
83
  "@lhci/cli": "^0.9.0",
87
- "@storybook/addon-a11y": "^6.5.9",
88
- "@storybook/addon-actions": "^6.5.9",
89
- "@storybook/addon-essentials": "^6.5.9",
90
- "@storybook/addon-links": "^6.5.9",
91
- "@storybook/builder-webpack5": "^6.5.9",
92
- "@storybook/manager-webpack5": "^6.5.9",
93
- "@storybook/react": "^6.5.9",
94
84
  "@testing-library/cypress": "^10.0.1",
95
85
  "@types/cypress": "^1.1.3",
96
86
  "@types/jest": "29.1.0",
@@ -105,7 +95,6 @@
105
95
  "is-ci": "^3.0.0",
106
96
  "jest": "29.1.0",
107
97
  "lint-staged": "^10.5.4",
108
- "msw-storybook-addon": "^1.6.3",
109
98
  "stylelint": "^14.6.0",
110
99
  "stylelint-config-recess-order": "^3.0.0",
111
100
  "stylelint-config-standard": "^24.0.0",
@@ -129,5 +118,5 @@
129
118
  "msw": {
130
119
  "workerDirectory": "public"
131
120
  },
132
- "gitHead": "43fb9e8a1c84556ef5d119348925607ce41a12a9"
121
+ "gitHead": "989edf1398897da07c47c068155dc7afcf7ef078"
133
122
  }
@@ -1,18 +0,0 @@
1
- import React from 'react'
2
- import type { PropsWithChildren } from 'react'
3
-
4
- type BestPracticesProps = {
5
- title?: string
6
- description?: string
7
- }
8
-
9
- const BestPractices = ({ children }: PropsWithChildren<BestPracticesProps>) => {
10
- return (
11
- <>
12
- <h2 className="sbdocs sbdocs-h2">Best Practices</h2>
13
- <section className="sbdocs sbdocs-best-practices">{children}</section>
14
- </>
15
- )
16
- }
17
-
18
- export default BestPractices
@@ -1,43 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
-
3
- type BestPracticesRuleProps = {
4
- recommendedUsage?: ReactNode
5
- discouragedUsage?: ReactNode
6
- recommendedDescription: string | ReactNode
7
- discouragedDescription: string | ReactNode
8
- }
9
-
10
- const BestPracticesRule = ({
11
- recommendedUsage,
12
- discouragedUsage,
13
- recommendedDescription,
14
- discouragedDescription,
15
- }: BestPracticesRuleProps) => {
16
- return (
17
- <section className="sbdocs-best-practices-rule">
18
- <article>
19
- {recommendedUsage && <div>{recommendedUsage}</div>}
20
- <article className="sbdocs-best-practices-text">
21
- <h3 className="sbdocs sbdocs-h3">
22
- <span role="img" aria-label="Check Mark">
23
- &#9989;
24
- </span>{' '}
25
- Do
26
- </h3>
27
- <p>{recommendedDescription}</p>
28
- </article>
29
- </article>
30
- <article>
31
- {discouragedUsage && <div>{discouragedUsage}</div>}
32
- <article className="sbdocs-best-practices-text">
33
- <h3 className="sbdocs sbdocs-h3">
34
- <span aria-label="Cross Mark">&#10060;</span> Don't
35
- </h3>
36
- <p>{discouragedDescription}</p>
37
- </article>
38
- </article>
39
- </section>
40
- )
41
- }
42
-
43
- export default BestPracticesRule
@@ -1,12 +0,0 @@
1
- import React from 'react'
2
-
3
- const Callout = ({ children }) => {
4
- return (
5
- <section className="sbdocs-callout">
6
- <span aria-label="Warning">&#x1F4A1;</span>
7
- <small>{children}</small>
8
- </section>
9
- )
10
- }
11
-
12
- export default Callout
@@ -1,46 +0,0 @@
1
- import React, { CSSProperties, PropsWithChildren, ReactNode } from 'react'
2
-
3
- import { Icon, LinkButton } from '@faststore/ui'
4
-
5
- type SectionItemProps = {
6
- title: string
7
- description: string | ReactNode
8
- actionPath?: string
9
- containerStyle?: CSSProperties
10
- }
11
-
12
- const SectionItem = ({
13
- title,
14
- description,
15
- children,
16
- actionPath,
17
- containerStyle,
18
- ...otherProps
19
- }: PropsWithChildren<SectionItemProps>) => {
20
- return (
21
- <li className="sbdocs-li" {...otherProps}>
22
- <div className="sbdocs-div" style={containerStyle}>
23
- {children}
24
- </div>
25
- <article className="sbdocs-list-text">
26
- <h3 className="sbdocs sbdocs-h3">{title}</h3>
27
- <p className="sbdocs sbdocs-p">{description}</p>
28
- {actionPath && (
29
- <LinkButton
30
- size="small"
31
- variant="tertiary"
32
- href={actionPath}
33
- icon={
34
- <Icon name="ArrowRight" width="18" height="18" weight="bold" />
35
- }
36
- iconPosition="right"
37
- >
38
- See more
39
- </LinkButton>
40
- )}
41
- </article>
42
- </li>
43
- )
44
- }
45
-
46
- export default SectionItem
@@ -1,27 +0,0 @@
1
- import React from 'react'
2
- import type { PropsWithChildren } from 'react'
3
-
4
- type SectionListProps = {
5
- grid?: 'row' | 'grid'
6
- classes?: string
7
- }
8
-
9
- const SectionList = ({
10
- children,
11
- classes,
12
- grid = 'row',
13
- }: PropsWithChildren<SectionListProps>) => {
14
- return (
15
- <section className={`${classes} sbdocs-list`}>
16
- <ul
17
- className={`sbdocs-ul ${
18
- grid === 'grid' ? 'sbdocs-ul-grid' : 'sbdocs-ul-row'
19
- }`}
20
- >
21
- {children}
22
- </ul>
23
- </section>
24
- )
25
- }
26
-
27
- export default SectionList
@@ -1,12 +0,0 @@
1
- import React from 'react'
2
-
3
- const TokenDivider = () => {
4
- return (
5
- <tr className="token-divider">
6
- <td></td>
7
- <td></td>
8
- </tr>
9
- )
10
- }
11
-
12
- export default TokenDivider
@@ -1,32 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
- import { Code } from '@storybook/components'
3
-
4
- type TokenRowProps = {
5
- token: string
6
- value: string
7
- isColor?: boolean
8
- globalValue?: string
9
- }
10
-
11
- const TokenRow = ({
12
- token,
13
- value,
14
- globalValue,
15
- isColor = false,
16
- }: TokenRowProps) => {
17
- return (
18
- <tr>
19
- <td>
20
- <Code>{token}</Code>
21
- </td>
22
- <td>
23
- {isColor && (
24
- <div style={{ backgroundColor: globalValue ? globalValue : value }} />
25
- )}
26
- <Code>{value}</Code>
27
- </td>
28
- </tr>
29
- )
30
- }
31
-
32
- export default TokenRow
@@ -1,33 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
- import { Table } from '@storybook/components'
3
-
4
- type TokenTableProps = {
5
- title?: string
6
- description?: string
7
- children: ReactNode
8
- }
9
-
10
- const TokenTable = ({
11
- title = 'Local token',
12
- description = 'Default value/Global token linked',
13
- children,
14
- }: TokenTableProps) => {
15
- return (
16
- <Table
17
- style={{
18
- width: '100%',
19
- }}
20
- className="sbdocs sbdocs-table"
21
- >
22
- <thead>
23
- <tr>
24
- <th>{title}</th>
25
- <th>{description}</th>
26
- </tr>
27
- </thead>
28
- <tbody>{children}</tbody>
29
- </Table>
30
- )
31
- }
32
-
33
- export default TokenTable
@@ -1,8 +0,0 @@
1
- export { default as TokenTable } from './TokenTable'
2
- export { default as TokenRow } from './TokenRow'
3
- export { default as BestPractices } from './BestPractices'
4
- export { default as BestPracticesRule } from './BestPracticesRule'
5
- export { default as TokenDivider } from './TokenDivider'
6
- export { default as SectionList } from './SectionList'
7
- export { default as SectionItem } from './SectionItem'
8
- export { default as Callout } from './Callout'
@@ -1,59 +0,0 @@
1
- const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin')
2
- const { resolve } = require('path')
3
-
4
- module.exports = {
5
- stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
6
- addons: [
7
- '@storybook/addon-links',
8
- {
9
- name: '@storybook/addon-essentials',
10
- options: {
11
- backgrounds: false,
12
- outline: false,
13
- },
14
- },
15
- '@storybook/addon-a11y',
16
- ],
17
- framework: '@storybook/react',
18
- core: {
19
- builder: 'webpack5',
20
- },
21
- staticDirs: ['../public'],
22
- webpackFinal: async (config) => {
23
- config.module.rules[0].use[0].options.plugins.push(
24
- require.resolve('@faststore/graphql-utils/babel')
25
- )
26
-
27
- config.resolve.plugins = [
28
- ...(config.resolve.plugins || []),
29
- new TsconfigPathsPlugin({
30
- extensions: config.resolve.extensions,
31
- configFile: resolve(__dirname, '../tsconfig.json'),
32
- }),
33
- ]
34
-
35
- // SCSS import and camelCase support for CSS modules
36
- config.module.rules.push({
37
- test: /\.scss$/,
38
- use: [
39
- {
40
- loader: 'style-loader',
41
- },
42
- {
43
- loader: 'css-loader',
44
- options: {
45
- modules: {
46
- exportLocalsConvention: 'camelCase',
47
- },
48
- },
49
- },
50
- {
51
- loader: 'sass-loader',
52
- },
53
- ],
54
- include: resolve(__dirname, '../'),
55
- })
56
-
57
- return config
58
- },
59
- }
@@ -1,9 +0,0 @@
1
- <style>
2
- #storybook-explorer-menu a:hover { background-color: #d8e2ff; }
3
-
4
- #storybook-explorer-menu a[data-selected="true"],
5
- #storybook-explorer-menu a[data-selected="true"]:hover {
6
- color: #fff;
7
- background-color: #001947;
8
- }
9
- </style>
@@ -1,6 +0,0 @@
1
- import { addons } from '@storybook/addons'
2
- import customTheme from './theme'
3
-
4
- addons.setConfig({
5
- theme: customTheme,
6
- })
@@ -1,40 +0,0 @@
1
- export const cartItem = {
2
- id: '39542524',
3
- price: 656.5,
4
- listPrice: 892.43,
5
- seller: {
6
- identifier: '1',
7
- },
8
- quantity: 1,
9
- itemOffered: {
10
- sku: '39542524',
11
- name: 'pink',
12
- gtin: '0001078884042',
13
- image: [
14
- {
15
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165082/sed.jpg?v=637752996157770000',
16
- alternateName: 'accusamus',
17
- },
18
- {
19
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165079/quis.jpg?v=637752996135400000',
20
- alternateName: 'dolorem',
21
- },
22
- {
23
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165080/tempora.jpg?v=637752996141030000',
24
- alternateName: 'enim',
25
- },
26
- {
27
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165081/est.jpg?v=637752996144600000',
28
- alternateName: 'ea',
29
- },
30
- ],
31
- brand: {
32
- name: 'iRobot',
33
- },
34
- isVariantOf: {
35
- productGroupID: '99483893',
36
- name: 'Tasty Concrete Computer',
37
- },
38
- additionalProperty: [],
39
- },
40
- }
@@ -1,59 +0,0 @@
1
- export const facets = [
2
- {
3
- key: 'price',
4
- label: 'Preço',
5
- min: {
6
- selected: 1.67,
7
- absolute: 1.67,
8
- },
9
- max: {
10
- selected: 889.53,
11
- absolute: 889.53,
12
- },
13
- __typename: 'StoreFacetRange',
14
- },
15
- {
16
- key: 'category-2',
17
- label: 'Categoria',
18
- values: [
19
- {
20
- label: 'Chairs',
21
- value: 'chairs',
22
- selected: true,
23
- quantity: 138,
24
- },
25
- {
26
- label: 'Desks',
27
- value: 'desks',
28
- selected: false,
29
- quantity: 125,
30
- },
31
- ],
32
- __typename: 'StoreFacetBoolean',
33
- },
34
- {
35
- key: 'brand',
36
- label: 'Marca',
37
- values: [
38
- {
39
- label: 'Acer',
40
- value: 'acer',
41
- selected: true,
42
- quantity: 138,
43
- },
44
- {
45
- label: 'Adidas',
46
- value: 'adidas',
47
- selected: false,
48
- quantity: 121,
49
- },
50
- {
51
- label: 'Nike',
52
- value: 'nike',
53
- selected: false,
54
- quantity: 150,
55
- },
56
- ],
57
- __typename: 'StoreFacetBoolean',
58
- },
59
- ]
@@ -1,5 +0,0 @@
1
- import './searchHistory'
2
-
3
- export { product } from './product'
4
- export { productGridItems } from './productGridItems'
5
- export { searchTerms } from './searchTerms'
@@ -1,67 +0,0 @@
1
- export const product = {
2
- id: '99988212',
3
- slug: 'apple-magic-mouse-99988212',
4
- sku: '99988212',
5
- brand: {
6
- brandName: 'adidas',
7
- name: 'adidas',
8
- },
9
- name: 'Magic white',
10
- gtin: '1503',
11
- isVariantOf: {
12
- productGroupID: '99995945',
13
- name: 'Apple Magic Mouse',
14
- },
15
- image: [
16
- {
17
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190902/unsplash-magic-mouse.jpg?v=637800136963870000',
18
- alternateName: 'Magicwhite',
19
- },
20
- {
21
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190923/lena-de-fanti-nQ_j5d-klVU-unsplash.jpg?v=637867501523500000',
22
- alternateName: 'magicbox',
23
- },
24
- {
25
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190924/anthony-choren-e7dG26YCrZU-unsplash.jpg?v=637867501835430000',
26
- alternateName: 'magicblackwhite',
27
- },
28
- {
29
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190925/maheshkumar-painam-GZdfLeL-MDk-unsplash.jpg?v=637867502064000000',
30
- alternateName: 'magiccombo',
31
- },
32
- {
33
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190926/math-0U9fBLGP3EY-unsplash.jpg?v=637867502325830000',
34
- alternateName: 'magicback',
35
- },
36
- {
37
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190927/marek-levak-YPeqMN_wfw0-unsplash.jpg?v=637867502641430000',
38
- alternateName: 'magictable',
39
- },
40
- {
41
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190928/mouse8.jpg?v=637867504048970000',
42
- alternateName: 'magichand',
43
- },
44
- {
45
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190929/harpal-singh-KuvEVL7lXYQ-unsplash.jpg?v=637867509459130000',
46
- alternateName: 'magicstyle',
47
- },
48
- {
49
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190930/chris-hardy-182PzOtcmWc-unsplash.jpg?v=637867509778300000',
50
- alternateName: 'magicscale',
51
- },
52
- ],
53
- offers: {
54
- lowPrice: 950,
55
- offers: [
56
- {
57
- availability: 'https://schema.org/InStock',
58
- price: 950,
59
- listPrice: 999,
60
- quantity: 10000,
61
- seller: {
62
- identifier: '1',
63
- },
64
- },
65
- ],
66
- },
67
- }