@faststore/core 3.0.61 → 3.0.63

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 (149) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +3 -3
  3. package/.next/build-manifest.json +30 -30
  4. package/.next/cache/.tsbuildinfo +1 -1
  5. package/.next/cache/config.json +3 -3
  6. package/.next/cache/eslint/.cache_1gneedd +1 -1
  7. package/.next/cache/fetch-cache/50912854cb7c781522a6ff8792d714e549515fcbbbfd660761961b06afe01c07 +1 -1
  8. package/.next/cache/webpack/client-production/0.pack +0 -0
  9. package/.next/cache/webpack/client-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-minimal-server.js.nft.json +1 -1
  13. package/.next/next-server.js.nft.json +1 -1
  14. package/.next/prerender-manifest.js +1 -1
  15. package/.next/prerender-manifest.json +1 -1
  16. package/.next/routes-manifest.json +1 -1
  17. package/.next/server/app/_not-found.html +2 -2
  18. package/.next/server/app/_not-found.js +1 -1
  19. package/.next/server/app/_not-found.js.nft.json +1 -1
  20. package/.next/server/app/_not-found.rsc +1 -1
  21. package/.next/server/app/fs-next-update/page.js +1 -1
  22. package/.next/server/app/fs-next-update/page.js.nft.json +1 -1
  23. package/.next/server/app/fs-next-update.html +2 -2
  24. package/.next/server/app/fs-next-update.rsc +1 -1
  25. package/.next/server/chunks/102.js +1 -0
  26. package/.next/server/chunks/{2133.js → 133.js} +1 -1
  27. package/.next/server/chunks/158.js +1 -0
  28. package/.next/server/chunks/245.js +1 -0
  29. package/.next/server/chunks/267.js +1 -0
  30. package/.next/server/chunks/305.js +15 -0
  31. package/.next/server/chunks/35.js +1 -0
  32. package/.next/server/chunks/{6374.js → 374.js} +1 -1
  33. package/.next/server/chunks/381.js +1 -0
  34. package/.next/server/chunks/383.js +123 -0
  35. package/.next/server/chunks/{1481.js → 481.js} +3 -3
  36. package/.next/server/chunks/493.js +1 -0
  37. package/.next/server/chunks/520.js +1 -0
  38. package/.next/server/chunks/534.js +1 -0
  39. package/.next/server/chunks/58.js +1 -0
  40. package/.next/server/chunks/635.js +1 -0
  41. package/.next/server/chunks/640.js +6 -0
  42. package/.next/server/chunks/679.js +1 -0
  43. package/.next/server/chunks/693.js +1 -0
  44. package/.next/server/chunks/779.js +1 -0
  45. package/.next/server/chunks/812.js +1 -0
  46. package/.next/server/chunks/{6859.js → 859.js} +1 -1
  47. package/.next/server/chunks/889.js +8 -0
  48. package/.next/server/chunks/902.js +1 -0
  49. package/.next/server/chunks/930.js +1 -0
  50. package/.next/server/chunks/950.js +1 -0
  51. package/.next/server/chunks/957.js +1 -0
  52. package/.next/server/chunks/993.js +1 -0
  53. package/.next/server/middleware-build-manifest.js +1 -1
  54. package/.next/server/pages/404.html +2 -2
  55. package/.next/server/pages/404.js +1 -1
  56. package/.next/server/pages/404.js.nft.json +1 -1
  57. package/.next/server/pages/500.js +1 -1
  58. package/.next/server/pages/500.js.nft.json +1 -1
  59. package/.next/server/pages/[...slug].js +2 -2
  60. package/.next/server/pages/[...slug].js.nft.json +1 -1
  61. package/.next/server/pages/[slug]/p.js +5 -5
  62. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  63. package/.next/server/pages/_app.js +1 -1
  64. package/.next/server/pages/_app.js.nft.json +1 -1
  65. package/.next/server/pages/_document.js +1 -1
  66. package/.next/server/pages/_document.js.nft.json +1 -1
  67. package/.next/server/pages/_error.js +1 -1
  68. package/.next/server/pages/_error.js.nft.json +1 -1
  69. package/.next/server/pages/account.js +1 -1
  70. package/.next/server/pages/account.js.nft.json +1 -1
  71. package/.next/server/pages/api/graphql.js +1 -1
  72. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  73. package/.next/server/pages/api/health/live.js +1 -1
  74. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  75. package/.next/server/pages/api/health/ready.js +1 -1
  76. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  77. package/.next/server/pages/api/preview.js +1 -1
  78. package/.next/server/pages/api/preview.js.nft.json +1 -1
  79. package/.next/server/pages/checkout.js +1 -1
  80. package/.next/server/pages/checkout.js.nft.json +1 -1
  81. package/.next/server/pages/en-US/404.html +2 -2
  82. package/.next/server/pages/en-US/404.json +1 -1
  83. package/.next/server/pages/en-US/500.html +2 -2
  84. package/.next/server/pages/en-US/500.json +1 -1
  85. package/.next/server/pages/en-US/account.html +2 -2
  86. package/.next/server/pages/en-US/account.json +1 -1
  87. package/.next/server/pages/en-US/checkout.html +2 -2
  88. package/.next/server/pages/en-US/checkout.json +1 -1
  89. package/.next/server/pages/en-US/login.html +2 -2
  90. package/.next/server/pages/en-US/login.json +1 -1
  91. package/.next/server/pages/en-US/s.html +2 -2
  92. package/.next/server/pages/en-US/s.json +1 -1
  93. package/.next/server/pages/en-US.html +3 -3
  94. package/.next/server/pages/en-US.json +1 -1
  95. package/.next/server/pages/index.js +1 -1
  96. package/.next/server/pages/index.js.nft.json +1 -1
  97. package/.next/server/pages/login.js +1 -1
  98. package/.next/server/pages/login.js.nft.json +1 -1
  99. package/.next/server/pages/s.js +1 -1
  100. package/.next/server/pages/s.js.nft.json +1 -1
  101. package/.next/server/pages-manifest.json +1 -1
  102. package/.next/server/webpack-api-runtime.js +1 -1
  103. package/.next/server/webpack-runtime.js +1 -1
  104. package/.next/static/chunks/{432-292475e2dafbb79e.js → 432-eb17ca619ec04a2a.js} +1 -1
  105. package/.next/static/chunks/pages/{404-6d926d3bdc58852b.js → 404-be2217109dab18cf.js} +1 -1
  106. package/.next/static/chunks/pages/{500-cbffc24e6eaddf18.js → 500-64a07a16830e129c.js} +1 -1
  107. package/.next/static/chunks/pages/{login-78b2d6166a2ebbaa.js → login-258e5b7ecec36481.js} +1 -1
  108. package/.next/static/chunks/{webpack-4f403c9b52a287c6.js → webpack-a45dc84c9a0ef3fd.js} +1 -1
  109. package/.next/static/css/548bab931c45c770.css +1 -0
  110. package/.next/static/{4w3LMmusMebDghIVyNvPn → oMUSJ3F9dCkPLN-bimLFg}/_buildManifest.js +1 -1
  111. package/.next/trace +58 -62
  112. package/.turbo/turbo-build.log +52 -4
  113. package/.turbo/turbo-test.log +4 -4
  114. package/@generated/graphql.ts +1 -1
  115. package/cms/faststore/sections.json +5 -0
  116. package/codegen.ts +3 -1
  117. package/package.json +20 -16
  118. package/src/components/navigation/Navbar/Navbar.tsx +4 -1
  119. package/src/components/search/SearchInput/SearchInput.tsx +3 -1
  120. package/src/components/sections/Navbar/Navbar.tsx +1 -0
  121. package/src/server/generator/schema.ts +4 -6
  122. package/.next/server/chunks/1889.js +0 -8
  123. package/.next/server/chunks/2381.js +0 -1
  124. package/.next/server/chunks/2534.js +0 -1
  125. package/.next/server/chunks/2957.js +0 -1
  126. package/.next/server/chunks/3057.js +0 -1
  127. package/.next/server/chunks/3383.js +0 -123
  128. package/.next/server/chunks/3404.js +0 -1
  129. package/.next/server/chunks/3779.js +0 -1
  130. package/.next/server/chunks/3993.js +0 -1
  131. package/.next/server/chunks/4222.js +0 -1
  132. package/.next/server/chunks/4520.js +0 -1
  133. package/.next/server/chunks/4930.js +0 -1
  134. package/.next/server/chunks/5640.js +0 -6
  135. package/.next/server/chunks/5950.js +0 -1
  136. package/.next/server/chunks/6058.js +0 -1
  137. package/.next/server/chunks/6102.js +0 -1
  138. package/.next/server/chunks/6305.js +0 -15
  139. package/.next/server/chunks/6693.js +0 -1
  140. package/.next/server/chunks/7035.js +0 -1
  141. package/.next/server/chunks/7267.js +0 -1
  142. package/.next/server/chunks/8158.js +0 -1
  143. package/.next/server/chunks/8245.js +0 -1
  144. package/.next/server/chunks/8635.js +0 -1
  145. package/.next/server/chunks/8640.js +0 -1
  146. package/.next/server/chunks/9679.js +0 -1
  147. package/.next/server/chunks/9812.js +0 -1
  148. package/.next/static/css/9b7689964b990431.css +0 -1
  149. /package/.next/static/{4w3LMmusMebDghIVyNvPn → oMUSJ3F9dCkPLN-bimLFg}/_ssgManifest.js +0 -0
@@ -1,7 +1,55 @@
1
1
  $ yarn partytown & yarn generate && next build
2
+ $ faststore generate-graphql -c -d
2
3
  $ partytown copylib ./public/~partytown
3
- $ faststore generate-graphql -c
4
4
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
5
+ [STARTED] yarn generate:schema
6
+ [STATUS] $ tsx src/server/generator/generateGraphQLSchemaFile.ts --debug --verbose
7
+ Schema GraphQL file generated successfully
8
+
9
+ [FINISHED] yarn generate:schema
10
+ [STARTED] yarn generate:codegen
11
+ [STATUS] $ graphql-codegen --debug --verbose
12
+ [STARTED] Parse Configuration
13
+ [SUCCESS] Parse Configuration
14
+ [STARTED] Generate outputs
15
+ [STARTED] Generate to ./@generated/
16
+ [STARTED] Load GraphQL schemas
17
+ [SUCCESS] Load GraphQL schemas
18
+ [STARTED] Load GraphQL documents
19
+ [SUCCESS] Load GraphQL documents
20
+ [STARTED] Generate
21
+ [SUCCESS] Generate
22
+ [SUCCESS] Generate to ./@generated/
23
+ [SUCCESS] Generate outputs
24
+ Running lifecycle hook "afterStart" scripts...
25
+ [CLI] Loading Schemas
26
+ [CLI] Loading Documents
27
+ [CLI] Generating output
28
+
29
+ [FINISHED] yarn generate:codegen
30
+ [STARTED] yarn format:generated
31
+ [STATUS] $ prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error --debug --verbose
32
+
33
+ [FINISHED] yarn format:generated
34
+ [STARTED] DESTINATION=/home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core yarn generate:copy-back
35
+ [STATUS] $ copyfiles "@generated/**/*" $DESTINATION --debug --verbose
36
+ unglobed path: @generated/gql.ts
37
+ unglobed path: @generated/graphql.ts
38
+ unglobed path: @generated/index.ts
39
+ unglobed path: @generated/persisted-documents.json
40
+ unglobed path: @generated/schema.graphql
41
+ copy from: @generated/gql.ts
42
+ copy to: /home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core/@generated/gql.ts
43
+ copy from: @generated/graphql.ts
44
+ copy to: /home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core/@generated/graphql.ts
45
+ copy from: @generated/index.ts
46
+ copy to: /home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core/@generated/index.ts
47
+ copy from: @generated/persisted-documents.json
48
+ copy to: /home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core/@generated/persisted-documents.json
49
+ copy from: @generated/schema.graphql
50
+ copy to: /home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core/@generated/schema.graphql
51
+
52
+ [FINISHED] DESTINATION=/home/runner/work/faststore/faststore/packages/core/node_modules/@faststore/core yarn generate:copy-back
5
53
  success - GraphQL schema, types, and optimizations successfully generated 🎉
6
54
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
7
55
  Attention: Next.js now collects completely anonymous telemetry regarding usage.
@@ -24,8 +72,8 @@ Browserslist: caniuse-lite is outdated. Please run:
24
72
  Collecting page data ...
25
73
  Generating static pages (0/9) ...
26
74
 
27
75
  Generating static pages (2/9)
28
- Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
29
76
 
30
77
  Generating static pages (4/9)
78
+ Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
31
79
 
32
80
  Generating static pages (6/9)
33
81
 
34
82
  ✓ Generating static pages (9/9)
35
83
  Finalizing page optimization ...
@@ -38,7 +86,7 @@ Route (app) Size First Load JS
38
86
  ├ chunks/472-369461a1f39981d5.js 28.4 kB
39
87
  ├ chunks/fd9d1056-43c43818840d7811.js 51.1 kB
40
88
  ├ chunks/main-app-e13fa67c2c3ceca5.js 230 B
41
- └ chunks/webpack-4f403c9b52a287c6.js 2.43 kB
89
+ └ chunks/webpack-a45dc84c9a0ef3fd.js 2.43 kB
42
90
 
43
91
  Route (pages) Size First Load JS
44
92
  ┌ ● / 1.04 kB 148 kB
@@ -62,7 +110,7 @@ Route (pages) Size First Load JS
62
110
  ├ chunks/framework-21e9365486ba23a6.js 45.4 kB
63
111
  ├ chunks/main-9c9c62c368c0a47e.js 34.8 kB
64
112
  ├ chunks/pages/_app-1930798899758fda.js 11.2 kB
65
- ├ chunks/webpack-4f403c9b52a287c6.js 2.43 kB
113
+ ├ chunks/webpack-a45dc84c9a0ef3fd.js 2.43 kB
66
114
  └ css/5d1f64b61ea581f4.css 3.05 kB
67
115
 
68
116
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -1,10 +1,10 @@
1
1
  $ jest
2
- PASS test/server/cms/index.test.ts (31.47 s)
3
- PASS test/utils/multipleTemplates.test.ts (31.586 s)
4
- PASS test/server/index.test.ts (32.977 s)
2
+ PASS test/utils/multipleTemplates.test.ts (31.056 s)
3
+ PASS test/server/cms/index.test.ts (31.192 s)
4
+ PASS test/server/index.test.ts (33.351 s)
5
5
 
6
6
  Test Suites: 3 passed, 3 total
7
7
  Tests: 19 passed, 19 total
8
8
  Snapshots: 0 total
9
- Time: 34.047 s
9
+ Time: 34.368 s
10
10
  Ran all test suites.
@@ -1253,8 +1253,8 @@ export type ServerProductQueryQuery = {
1253
1253
  }>
1254
1254
  }
1255
1255
  isVariantOf: {
1256
- productGroupID: string
1257
1256
  name: string
1257
+ productGroupID: string
1258
1258
  skuVariants: {
1259
1259
  activeVariations: any | null
1260
1260
  slugsMap: any | null
@@ -192,6 +192,11 @@
192
192
  "type": "object",
193
193
  "required": ["sort"],
194
194
  "properties": {
195
+ "placeholder": {
196
+ "title": "Placeholder for Search Bar",
197
+ "type": "string",
198
+ "default": "Search everything at the store"
199
+ },
195
200
  "sort": {
196
201
  "title": "Results default sort value",
197
202
  "type": "string",
package/codegen.ts CHANGED
@@ -17,7 +17,9 @@ const getOperationName = (document: DocumentNode) => {
17
17
 
18
18
  const config: CodegenConfig = {
19
19
  overwrite: true,
20
- errorsOnly: true,
20
+ errorsOnly: false,
21
+ debug: true,
22
+ verbose: true,
21
23
  schema: './@generated/schema.graphql',
22
24
  documents: ['./src/**/*.{ts,tsx}'],
23
25
  generates: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.0.61",
3
+ "version": "3.0.63",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -14,7 +14,7 @@
14
14
  "generate:schema": "tsx src/server/generator/generateGraphQLSchemaFile.ts",
15
15
  "generate:codegen": "graphql-codegen",
16
16
  "generate:copy-back": "copyfiles \"@generated/**/*\" $DESTINATION",
17
- "generate": "faststore generate-graphql -c",
17
+ "generate": "faststore generate-graphql -c -d",
18
18
  "build": "yarn partytown & yarn generate && next build",
19
19
  "dev": "yarn partytown & yarn generate && next dev",
20
20
  "clean": "rm -r .next",
@@ -40,19 +40,21 @@
40
40
  "@envelop/graphql-jit": "^1.1.1",
41
41
  "@envelop/parser-cache": "^2.2.0",
42
42
  "@envelop/validation-cache": "^2.2.0",
43
- "@faststore/api": "^3.0.54",
44
- "@faststore/components": "^3.0.54",
45
- "@faststore/graphql-utils": "^3.0.54",
46
- "@faststore/sdk": "^3.0.54",
47
- "@faststore/ui": "^3.0.54",
48
- "@graphql-codegen/cli": "^3.3.1",
49
- "@graphql-codegen/client-preset": "^4.1.0",
50
- "@graphql-codegen/typescript": "^3.0.4",
51
- "@graphql-codegen/typescript-operations": "^3.0.4",
43
+ "@faststore/api": "https://pkg.csb.dev/vtex/faststore/commit/5e82d1d0/@faststore/api",
44
+ "@faststore/components": "https://pkg.csb.dev/vtex/faststore/commit/5e82d1d0/@faststore/components",
45
+ "@faststore/graphql-utils": "^3.0.63",
46
+ "@faststore/sdk": "^3.0.63",
47
+ "@faststore/ui": "^3.0.63",
48
+ "@graphql-codegen/cli": "^5.0.2",
49
+ "@graphql-codegen/client-preset": "^4.2.6",
50
+ "@graphql-codegen/typescript": "^4.0.7",
51
+ "@graphql-codegen/typescript-operations": "^4.2.1",
52
52
  "@graphql-tools/load-files": "^7.0.0",
53
- "@graphql-tools/merge": "^9.0.0",
54
- "@graphql-tools/utils": "^9.2.1",
53
+ "@graphql-tools/merge": "^9.0.4",
54
+ "@graphql-tools/schema": "^10.0.3",
55
+ "@graphql-tools/utils": "^10.2.0",
55
56
  "@graphql-typed-document-node/core": "^3.2.0",
57
+ "@parcel/watcher": "^2.4.0",
56
58
  "@types/react": "^18.2.42",
57
59
  "@vtex/client-cms": "^0.2.12",
58
60
  "@vtex/prettier-config": "1.0.0",
@@ -62,6 +64,7 @@
62
64
  "css-loader": "^6.7.1",
63
65
  "deepmerge": "^4.3.1",
64
66
  "draftjs-to-html": "^0.9.1",
67
+ "fs-extra": "^10.1.0",
65
68
  "graphql": "^15.6.0",
66
69
  "include-media": "^1.4.10",
67
70
  "next": "^13.5.6",
@@ -83,12 +86,13 @@
83
86
  "devDependencies": {
84
87
  "@cypress/code-coverage": "^3.12.1",
85
88
  "@envelop/testing": "^6.0.0",
86
- "@faststore/cli": "^3.0.54",
87
- "@faststore/eslint-config": "^3.0.54",
89
+ "@faststore/cli": "https://pkg.csb.dev/vtex/faststore/commit/5e82d1d0/@faststore/cli",
90
+ "@faststore/eslint-config": "^3.0.63",
88
91
  "@faststore/lighthouse": "^1.12.32",
89
92
  "@lhci/cli": "^0.9.0",
90
93
  "@testing-library/cypress": "^10.0.1",
91
94
  "@types/cypress": "^1.1.3",
95
+ "@types/fs-extra": "^9.0.13",
92
96
  "@types/jest": "29.1.0",
93
97
  "@vtex/prettier-config": "1.0.0",
94
98
  "axe-core": "^4.8.1",
@@ -125,5 +129,5 @@
125
129
  "node": "18.19.0",
126
130
  "yarn": "1.19.1"
127
131
  },
128
- "gitHead": "9ce5509d24e1a1f6eca08c77544b94db7ef4037b"
132
+ "gitHead": "dc671b2ad4b832aec386793b6458c33cb75b63ac"
129
133
  }
@@ -120,7 +120,10 @@ function Navbar({
120
120
  </>
121
121
  )}
122
122
 
123
- <SearchInput sort={searchInput?.sort} />
123
+ <SearchInput
124
+ placeholder={searchInput?.placeholder}
125
+ sort={searchInput?.sort}
126
+ />
124
127
 
125
128
  <NavbarButtons.Component
126
129
  searchExpanded={searchExpanded}
@@ -36,6 +36,7 @@ export type SearchInputProps = {
36
36
  onSearchClick?: () => void
37
37
  buttonTestId?: string
38
38
  containerStyle?: CSSProperties
39
+ placeholder?: string
39
40
  sort?: string
40
41
  } & Omit<UISearchInputFieldProps, 'onSubmit'>
41
42
 
@@ -57,6 +58,7 @@ const SearchInput = forwardRef<SearchInputRef, SearchInputProps>(
57
58
  buttonTestId = 'fs-search-button',
58
59
  containerStyle,
59
60
  sort,
61
+ placeholder,
60
62
  ...otherProps
61
63
  },
62
64
  ref
@@ -113,7 +115,7 @@ const SearchInput = forwardRef<SearchInputRef, SearchInputProps>(
113
115
  onClick: onSearchClick,
114
116
  testId: buttonTestId,
115
117
  }}
116
- placeholder="Search everything at the store"
118
+ placeholder={placeholder}
117
119
  onChange={(e) => setSearchQuery(e.target.value)}
118
120
  onSubmit={(term) => {
119
121
  const path = formatSearchPath({
@@ -21,6 +21,7 @@ export interface NavbarProps {
21
21
  }
22
22
  }
23
23
  searchInput: {
24
+ placeholder?: string
24
25
  sort: string
25
26
  }
26
27
  signInButton: {
@@ -1,6 +1,6 @@
1
1
  import path from 'path'
2
2
  import { writeFileSync } from 'fs-extra'
3
- import { getSchema, getTypeDefs } from '@faststore/api'
3
+ import { getTypeDefs } from '@faststore/api'
4
4
  import { printSchemaWithDirectives } from '@graphql-tools/utils'
5
5
  import { loadFilesSync } from '@graphql-tools/load-files'
6
6
  import { mergeTypeDefs } from '@graphql-tools/merge'
@@ -8,8 +8,6 @@ import { buildASTSchema } from 'graphql'
8
8
  import type { GraphQLSchema } from 'graphql'
9
9
  import type { TypeSource } from '@graphql-tools/utils'
10
10
 
11
- import { apiOptions } from '../options'
12
-
13
11
  export function getTypeDefsFromFolder(
14
12
  customPath: string | string[]
15
13
  ): TypeSource {
@@ -55,8 +53,6 @@ export function getThirdPartyExtensionsTypeDefs() {
55
53
  return getTypeDefsFromFolder('thirdParty')
56
54
  }
57
55
 
58
- export const nativeApiSchema = getSchema(apiOptions)
59
-
60
56
  // Schema with no resolvers - used to generate schema.graphql file
61
57
  export const getMergedSchema = (): GraphQLSchema =>
62
58
  getCustomSchema(
@@ -69,9 +65,11 @@ export const getMergedSchema = (): GraphQLSchema =>
69
65
 
70
66
  export function writeGraphqlSchemaFile(apiSchema: GraphQLSchema) {
71
67
  try {
68
+ // getting the schema before write because somehow this fixes the validation step of codegen from codesandbox
69
+ const schema = printSchemaWithDirectives(apiSchema)
72
70
  writeFileSync(
73
71
  path.join(process.cwd(), '@generated', 'schema.graphql'),
74
- printSchemaWithDirectives(apiSchema)
72
+ schema
75
73
  )
76
74
 
77
75
  console.log('Schema GraphQL file generated successfully')
@@ -1,8 +0,0 @@
1
- exports.id=1889,exports.ids=[1889],exports.modules={5996:(e,t,r)=>{var o={"./vtex":[9679,7267,9679],"./vtex/":[9679,7267,9679],"./vtex/index":[9679,7267,9679],"./vtex/index.ts":[9679,7267,9679],"./vtex/search":[3993,7267,3993],"./vtex/search.ts":[3993,7267,3993]};function webpackAsyncContext(e){if(!r.o(o,e))return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=o[e],s=t[0];return Promise.all(t.slice(1).map(r.e)).then(()=>r(s))}webpackAsyncContext.keys=()=>Object.keys(o),webpackAsyncContext.id=5996,e.exports=webpackAsyncContext},3786:(e,t,r)=>{Promise.resolve().then(r.bind(r,1009)),Promise.resolve().then(r.bind(r,6295)),Promise.resolve().then(r.bind(r,6949))},6034:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,3724,23)),Promise.resolve().then(r.t.bind(r,5365,23)),Promise.resolve().then(r.t.bind(r,4900,23)),Promise.resolve().then(r.t.bind(r,4714,23)),Promise.resolve().then(r.t.bind(r,5392,23)),Promise.resolve().then(r.t.bind(r,8898,23))},1009:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>analytics});var o=r(9885);let unwrap=e=>({...e.params,name:e.params.name.slice(6,e.params.name.length)}),useAnalyticsEvent=e=>{let t=(0,o.useCallback)(t=>{try{if("AnalyticsEvent"!==t.data.name)return;e(unwrap(t.data))}catch(e){console.error("Something went wrong while running Analytics handler")}},[e]);(0,o.useEffect)(()=>(window.addEventListener("message",t),()=>window.removeEventListener("message",t)),[t])};var s=r(8643),a=r.n(s);let analytics=()=>(useAnalyticsEvent(e=>{window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:e.name,ecommerce:e.params}),r(5996)(`./${a().platform}`).then(({default:t})=>{t(e)})}),null)},6295:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var o=r(9885);let getReloads=()=>Number(window.sessionStorage.getItem("store:reloads")??"0"),setReloads=e=>window.sessionStorage.setItem("store:reloads",`${e}`),canRecover=()=>2>getReloads(),isFrameworkLevelError=e=>e?.name==="ChunkLoadError";let ErrorBoundary=class ErrorBoundary extends o.Component{static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){if(console.error(`React Error: ${e.message} ${t.componentStack}`),window.location.pathname.startsWith("/404")||window.location.pathname.startsWith("/500"))return;let r=encodeURIComponent(window.location.pathname),o=e?.extensions?.exception?.status===404;isFrameworkLevelError(e)&&canRecover()?(setReloads(getReloads()+1),window.location.reload()):o?window.location.href=`/404?from=${r}`:window.location.href=`/500?from=${r}&errorId=unknown`}render(){return this.state.hasError?null:this.props.children}constructor(...e){super(...e),this.state={hasError:!1,error:null}}};let s=ErrorBoundary},6949:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>UIProvider_UIProvider});var o=r(784),s=r(9885),a=r.n(s);let reducer=(e,t)=>{let{type:r}=t;switch(r){case"open":{let{payload:r}=t;return document.body.classList.add("no-scroll"),{...e,[r]:!0}}case"close":{let{payload:r}=t;return document.body.classList.remove("no-scroll"),{...e,[r]:!1}}case"pushToast":{let r=e.toasts.some(e=>e.message===t.payload.message&&e.status===t.payload.status);if(r)return e;return{...e,toasts:[...e.toasts,t.payload]}}case"popToast":return{...e,toasts:e.toasts.slice(1)};default:throw Error(`Action ${r} not implemented`)}},initializer=()=>({cart:!1,modal:!1,navbar:!1,filter:!1,toasts:[]}),n=(0,s.createContext)(void 0),hooks_UIProvider=function({children:e}){let[t,r]=(0,s.useReducer)(reducer,void 0,initializer),o=(0,s.useMemo)(()=>({openFilter:()=>r({type:"open",payload:"filter"}),closeFilter:()=>r({type:"close",payload:"filter"}),openNavbar:()=>r({type:"open",payload:"navbar"}),closeNavbar:()=>r({type:"close",payload:"navbar"}),openCart:()=>r({type:"open",payload:"cart"}),closeCart:()=>r({type:"close",payload:"cart"}),openModal:()=>r({type:"open",payload:"modal"}),closeModal:()=>r({type:"close",payload:"modal"}),pushToast:e=>r({type:"pushToast",payload:e}),popToast:()=>r({type:"popToast"})}),[]),i=(0,s.useMemo)(()=>({...t,...o}),[o,t]);return a().createElement(n.Provider,{value:i},e)};function UIProvider_UIProvider({children:e}){return o.jsx(hooks_UIProvider,{children:e})}},6965:e=>{"use strict";e.exports={seo:{title:"FastStore Starter",description:"Fast Demo Store",titleTemplate:"%s | FastStore",author:"Store Framework"},theme:"custom-theme",platform:"vtex",api:{storeId:"storeframework",workspace:"master",subDomainPrefix:["www"],environment:"vtexcommercestable",hideUnavailableItems:!1,incrementAddress:!0},session:{currency:{code:"USD",symbol:"$"},locale:"en-US",channel:'{"salesChannel":"1","regionId":"","hasOnlyDefaultSalesChannel":"true"}',country:"USA",deliveryMode:null,addressType:null,postalCode:null,geoCoordinates:null,person:null},cart:{id:"",items:[],messages:[],shouldSplitItem:!0},storeUrl:"https://vtexfaststore.com",secureSubdomain:"https://secure.vtexfaststore.com",checkoutUrl:"https://secure.vtexfaststore.com/checkout",loginUrl:"https://secure.vtexfaststore.com/api/io/login",accountUrl:"https://secure.vtexfaststore.com/api/io/account",previewRedirects:{home:"/",plp:"/office",search:"/s?q=headphone",pdp:"/apple-magic-mouse/p"},lighthouse:{server:process.env.BASE_SITE_URL||"http://localhost:3000",pages:{home:"/",pdp:"/apple-magic-mouse/p",collection:"/office"}},cypress:{pages:{home:"/",pdp:"/apple-magic-mouse/p",collection:"/office",collection_2:"/technology",collection_filtered:"/office/?category-1=office&marca=acer&facets=category-1%2Cmarca",search:"/s?q=orange"}},analytics:{gtmContainerId:"GTM-PGHZ95N"},cms:{data:process.env.CMS_DATA},experimental:{cypressVersion:12,enableCypressExtension:!1,noRobots:!1}}},8643:(e,t,r)=>{"use strict";let o=r(6965),s=r(2075),a=r(2230),n=a(o,s);e.exports=n},2075:e=>{"use strict";e.exports={}},1773:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GLOBAL_SECTIONS_CONTENT_TYPE:()=>k,default:()=>RootLayout,metadata:()=>M});var o=r(4656);r(5234),r(9313);var s=r(146);let fonts_WebFonts=function(){return o.jsx(o.Fragment,{})},a={WebFonts:fonts_WebFonts,WebFonts:fonts_WebFonts,ThirdPartyScripts:()=>o.jsx(o.Fragment,{})};a.WebFonts;var n=r(1893),i=r.n(n);let c="gtm_debug",useSnippet=e=>`${e.partytownScript?"!":""}window.location.search.includes('${c}=')&&
2
- (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
3
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
4
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
5
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
6
- })(window,document,'script',${JSON.stringify(e.dataLayerName??"dataLayer")},${JSON.stringify(e.containerId)});`,ThirdPartyScripts_GoogleTagManager=function(e){return(0,o.jsxs)(o.Fragment,{children:[o.jsx("script",{type:"text/partytown",dangerouslySetInnerHTML:{__html:useSnippet({...e,partytownScript:!0})}},"gtm.partytown"),o.jsx("script",{type:"text/javascript",dangerouslySetInnerHTML:{__html:useSnippet({...e,partytownScript:!1})}},"gtm")]})},vtex=function(){return(0,o.jsxs)(o.Fragment,{children:[o.jsx("script",{type:"text/partytown",dangerouslySetInnerHTML:{__html:`
7
- window.sendrc=function(en,ed){window.NavigationCapture&&window.NavigationCapture.sendEvent(en,ed)};
8
- `}},"vtexrc.js-init"),o.jsx("script",{type:"text/partytown",async:!0,src:"https://io.vtex.com.br/rc/rc.js"},"vtexrc.js-script"),o.jsx("script",{type:"text/partytown",dangerouslySetInnerHTML:{__html:"f=window.vtexaf=window.vtexaf||function(){(f.q=f.q||[]).push(arguments)};f.l=+new Date"}},"vtex-af.js-init"),o.jsx("script",{type:"text/partytown",async:!0,src:"https://activity-flow.vtex.com/af/af.js"},"vtex-af.js-script")]})},l=i().analytics?.gtmContainerId,p="string"==typeof l,d="vtex"===i().platform,components_ThirdPartyScripts_ThirdPartyScripts=function(){let e=[];return d&&e.push("sendrc","vtexaf"),(0,o.jsxs)(o.Fragment,{children:[o.jsx("script",{dangerouslySetInnerHTML:{__html:`var partytown={forward:[...${JSON.stringify(e)},!window.location.search.includes('${c}=')&&${p}?'dataLayer.push':null].filter(Boolean)}`}}),p&&o.jsx(ThirdPartyScripts_GoogleTagManager,{containerId:l}),d&&o.jsx(vtex,{}),o.jsx(a.ThirdPartyScripts,{}),o.jsx(s.i,{},"partytown")]})};var m=r(5153);let u=(0,m.createProxy)(String.raw`/home/runner/work/faststore/faststore/packages/core/app/sdk/analytics/index.tsx`),{__esModule:h,$$typeof:y}=u,f=u.default,g=(0,m.createProxy)(String.raw`/home/runner/work/faststore/faststore/packages/core/app/sdk/error/ErrorBoundary/ErrorBoundary.tsx`),{__esModule:w,$$typeof:v}=g,x=g.default,S=(0,m.createProxy)(String.raw`/home/runner/work/faststore/faststore/packages/core/app/sdk/ui/UIProvider.tsx`),{__esModule:b,$$typeof:C}=S,P=S.default;var T=r(1113),_=r.n(T);let I=_();var E=r(2637);let MissingContentError=class MissingContentError extends Error{constructor(e){super(`Missing content on the CMS for content type ${e.contentType}. Add content before proceeding. Context: ${JSON.stringify(e,null,2)}`)}};let MultipleContentError=class MultipleContentError extends Error{constructor(e){super(`Multiple content defined on the CMS for content type ${e.contentType}. Remove duplicated content before proceeding. Context: ${JSON.stringify(e,null,2)}`)}};let isLocator=e=>"string"==typeof e.contentType&&("string"==typeof e.releaseId||"string"==typeof e.documentId||"string"==typeof e.versionId),j=new E.Z({workspace:i().api.workspace,tenant:i().api.storeId}),getCMSPage=async(e,t=j)=>{if(isLocator(e))return await t.getCMSPage(e).then(e=>({data:[e]}));let r=[],o=await t.getCMSPagesByContentType(e.contentType,{...e.filters,page:1,perPage:10});r.push(...o.data);let s=Math.ceil(o.totalItems/10),a=Array.from({length:s-1},(e,t)=>t+2);if(o.totalItems>r.length){let o=await Promise.all(a.map(r=>t.getCMSPagesByContentType(e.contentType,{...e.filters,page:r,perPage:10})));o.forEach(e=>{r.push(...e.data)})}return{data:r}},getPage=async e=>{let t=await getCMSPage(e),r=t.data;if(!r[0])throw new MissingContentError(e);if(1!==r.length)throw new MultipleContentError(e);return r[0]},k="globalSections";async function getGlobalSectionsData(){if(i().cms.data){let e=JSON.parse(i().cms.data),t=e[k][0];if(t){let e=await getPage({contentType:k,documentId:t.documentId,versionId:t.versionId});return e}}let{sections:e}=await getPage({contentType:k});return{sections:e}}let M={robots:{index:!1,follow:!1,googleBot:{index:!1,follow:!1}}};async function RootLayout({children:e}){return await getGlobalSectionsData(),(0,o.jsxs)(x,{children:[o.jsx(f,{}),(0,o.jsxs)("html",{children:[o.jsx("head",{children:!process.env.DISABLE_3P_SCRIPTS&&o.jsx(components_ThirdPartyScripts_ThirdPartyScripts,{})}),o.jsx("body",{className:`theme ${I.className}`,children:o.jsx(P,{children:o.jsx(o.Fragment,{})})})]})]})}},6508:e=>{"use strict";e.exports={seo:{title:"FastStore Starter",description:"Fast Demo Store",titleTemplate:"%s | FastStore",author:"Store Framework"},theme:"custom-theme",platform:"vtex",api:{storeId:"storeframework",workspace:"master",subDomainPrefix:["www"],environment:"vtexcommercestable",hideUnavailableItems:!1,incrementAddress:!0},session:{currency:{code:"USD",symbol:"$"},locale:"en-US",channel:'{"salesChannel":"1","regionId":"","hasOnlyDefaultSalesChannel":"true"}',country:"USA",deliveryMode:null,addressType:null,postalCode:null,geoCoordinates:null,person:null},cart:{id:"",items:[],messages:[],shouldSplitItem:!0},storeUrl:"https://vtexfaststore.com",secureSubdomain:"https://secure.vtexfaststore.com",checkoutUrl:"https://secure.vtexfaststore.com/checkout",loginUrl:"https://secure.vtexfaststore.com/api/io/login",accountUrl:"https://secure.vtexfaststore.com/api/io/account",previewRedirects:{home:"/",plp:"/office",search:"/s?q=headphone",pdp:"/apple-magic-mouse/p"},lighthouse:{server:process.env.BASE_SITE_URL||"http://localhost:3000",pages:{home:"/",pdp:"/apple-magic-mouse/p",collection:"/office"}},cypress:{pages:{home:"/",pdp:"/apple-magic-mouse/p",collection:"/office",collection_2:"/technology",collection_filtered:"/office/?category-1=office&marca=acer&facets=category-1%2Cmarca",search:"/s?q=orange"}},analytics:{gtmContainerId:"GTM-PGHZ95N"},cms:{data:process.env.CMS_DATA},experimental:{cypressVersion:12,enableCypressExtension:!1,noRobots:!1}}},1893:(e,t,r)=>{"use strict";let o=r(6508),s=r(2482),a=r(1175),n=a(o,s);e.exports=n},2482:e=>{"use strict";e.exports={}},9313:()=>{},5234:()=>{}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2381,exports.ids=[2381],exports.modules={6565:(e,t,r)=>{r.d(t,{E9:()=>src_getContextFactory,yd:()=>src_getResolvers,T9:()=>isFastStoreError,XD:()=>isNotFoundError});var a,o=r(7881),i=r.n(o);let n=JSON.parse('{"u2":"@faststore/api","i8":"3.0.54"}'),s=`${n.u2}@${n.i8}`,fetchAPI=async(e,t,r)=>{let a=await i()(e,{...t,headers:{...t?.headers??{},"User-Agent":s}});if(a.ok)return r?.storeCookies&&r.storeCookies(a.headers),204!==a.status?a.json():void 0;console.error(e,t,a);let o=await a.text();throw Error(o)},l=/^([^=]+)=([^;]*)/,updatesContextStorageCookies=(e,t)=>{let r=t.match(l);if(r){let a=r[1],o=r[2];e.storage.cookies.set(a,{value:o,setCookie:t})}},setCookie=(e,t)=>{t.getSetCookie().forEach(t=>updatesContextStorageCookies(e,t))},getStoreCookie=e=>t=>setCookie(e,t),getUpdatedCookie=e=>{if(!e.headers?.cookie)return null;let t=Array.from(e.storage.cookies.entries());return 0===t.length?e.headers.cookie:t.reduce((e,[t,{value:r}])=>updatesCookieValueByKey(e,t,r),e.headers.cookie)},getWithCookie=e=>function(t){let r=getUpdatedCookie(e);return r?{...t,cookie:r}:t},updatesCookieValueByKey=(e,t,r)=>{let a=RegExp(`(${t})=([^;]*)`),o=e.match(a);return o?e.replace(o[0],`${o[1]}=${r}`):`${e};${t}=${r}`},c={method:"POST",headers:{"content-type":"application/json"}},VtexCommerce=({account:e,environment:t,incrementAddress:r,subDomainPrefix:a},o)=>{let i=`https://${e}.${t}.com.br`,n=getStoreCookie(o),s=getWithCookie(o),l=new Headers(o.headers).get("x-forwarded-host")??o.headers?.host??"",u=a&&a.map(e=>e+".").find(e=>l.includes(e))||"",d=l.replace(u,"");return{catalog:{salesChannel:e=>fetchAPI(`${i}/api/catalog_system/pub/saleschannel/${e}`,void 0,{storeCookies:n}),brand:{list:()=>fetchAPI(`${i}/api/catalog_system/pub/brand/list`,void 0,{storeCookies:n})},category:{tree:(e=3)=>fetchAPI(`${i}/api/catalog_system/pub/category/tree/${e}`,void 0,{storeCookies:n})},portal:{pagetype:e=>fetchAPI(`${i}/api/catalog_system/pub/portal/pagetype/${e}`,void 0,{storeCookies:n})},products:{crossselling:({type:e,productId:t,groupByProduct:r=!0})=>{let a=new URLSearchParams({sc:o.storage.channel.salesChannel,groupByProduct:r.toString()});return fetchAPI(`${i}/api/catalog_system/pub/products/crossselling/${e}/${t}?${a}`,void 0,{storeCookies:n})}}},checkout:{simulation:(e,{salesChannel:t}=o.storage.channel)=>{let r=new URLSearchParams({sc:t}),a=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForms/simulation?${r.toString()}`,{...c,headers:a,body:JSON.stringify(e)},{storeCookies:n})},shippingData:({id:e,index:t,deliveryMode:a,selectedAddresses:o},l)=>{let u=l?{startDateUtc:a?.deliveryWindow?.startDate,endDateUtc:a?.deliveryWindow?.endDate}:null,p={logisticsInfo:Array.from({length:t},(e,t)=>({itemIndex:t,selectedDeliveryChannel:a?.deliveryChannel||null,selectedSla:a?.deliveryMethod||null,deliveryWindow:u})),selectedAddresses:o,clearAddressIfPostalCodeNotFound:r},m=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForm/${e}/attachments/shippingData`,{...c,headers:m,body:JSON.stringify(p)},{storeCookies:n})},orderForm:({id:e,refreshOutdatedData:t=!0,channel:r=o.storage.channel})=>{let{salesChannel:a}=r,l=new URLSearchParams({refreshOutdatedData:t.toString(),sc:a}),u=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForm/${e}?${l.toString()}`,{...c,headers:u},{storeCookies:n})},clearOrderFormMessages:({id:e})=>{let t=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForm/${e}/messages/clear`,{...c,headers:t,body:"{}"})},updateOrderFormItems:({id:e,orderItems:t,allowOutdatedData:r="paymentData",salesChannel:a=o.storage.channel.salesChannel,shouldSplitItem:l=!0})=>{let c=new URLSearchParams({allowOutdatedData:r,sc:a}),u=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForm/${e}/items?${c}`,{headers:u,body:JSON.stringify({orderItems:t,noSplitItem:!l}),method:"PATCH"},{storeCookies:n})},setCustomData:({id:e,appId:t,key:r,value:a})=>{let o=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/orderForm/${e}/customData/${t}/${r}`,{headers:o,body:JSON.stringify({value:a}),method:"PUT"})},region:async({postalCode:e,geoCoordinates:t,country:r,salesChannel:a})=>{let o=new URLSearchParams({country:r,sc:a??""});e?o.append("postalCode",e):o.append("geoCoordinates",`${t?.longitude};${t?.latitude}`);let l=`${i}/api/checkout/pub/regions/?${o.toString()}`,c=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(l,{headers:c},{storeCookies:n})},address:async({postalCode:e,country:t})=>{let r=s({"content-type":"application/json","X-FORWARDED-HOST":d});return fetchAPI(`${i}/api/checkout/pub/postal-code/${t}/${e}`,{headers:r},{storeCookies:n})}},session:e=>{let t=new URLSearchParams(e);t.set("items","profile.id,profile.email,profile.firstName,profile.lastName,store.channel,store.countryCode,store.cultureInfo,store.currencyCode,store.currencySymbol");let r=s({"content-type":"application/json"});return fetchAPI(`${i}/api/sessions?${t.toString()}`,{method:"POST",headers:r,body:"{}"},{storeCookies:n})},subscribeToNewsletter:e=>fetchAPI(`${i}/api/dataentities/NL/documents/`,{...c,body:JSON.stringify({...e,isNewsletterOptIn:!0}),method:"PATCH"},{storeCookies:n})}},u="trade-policy",d="region-id",p="fuzzy",m="operator",g=new Set([u,d,p,m]),isFuzzyFacet=e=>"fuzzy"===e.key&&("0"===e.value||"1"===e.value||"auto"===e.value),isOperatorFacet=e=>"operator"===e.key&&("and"===e.value||"or"===e.value),IntelligentSearch=({account:e,environment:t,hideUnavailableItems:r},a)=>{let o=`https://${e}.${t}.com.br/api/io`,i=getStoreCookie(a),getPolicyFacet=()=>{let{salesChannel:e}=a.storage.channel;return e?{key:u,value:e}:null},getRegionFacet=()=>{let{regionId:e,seller:t}=a.storage.channel,r=t?Buffer.from(`SW#${t}`).toString("base64"):null,o=r??e;return o?{key:d,value:o}:null},addDefaultFacets=e=>{let t=e.filter(({key:e})=>!g.has(e)),r=e.find(({key:e})=>e===u)??getPolicyFacet(),a=e.find(({key:e})=>e===d)??getRegionFacet();return null!==r&&t.push(r),null!==a&&t.push(a),t},addSearchParamsFacets=(e,t)=>{let r=e.find(({key:e})=>e===p)??null,a=e.find(({key:e})=>e===m)??null;r&&isFuzzyFacet(r)&&t.append(p,r.value),a&&isOperatorFacet(a)&&t.append(m,a.value)},search=({query:e="",page:t,count:n,sort:s="",selectedFacets:l=[],type:c})=>{let u=new URLSearchParams({page:(t+1).toString(),count:n.toString(),query:e,sort:s,locale:a.storage.locale});void 0!==r&&u.append("hideUnavailableItems",r.toString());let d=addDefaultFacets(l).map(({key:e,value:t})=>`${e}/${t}`).join("/");return addSearchParamsFacets(l,u),fetchAPI(`${o}/_v/api/intelligent-search/${c}/${d}?${u.toString()}`,void 0,{storeCookies:i})};return{facets:e=>search({...e,type:"facets"}),products:e=>search({...e,type:"product_search"}),suggestedTerms:e=>{let t=new URLSearchParams({query:e.query?.toString()??"",locale:a.storage.locale});return fetchAPI(`${o}/_v/api/intelligent-search/search_suggestions?${t.toString()}`,void 0,{storeCookies:i})},topSearches:()=>{let e=new URLSearchParams({locale:a.storage.locale});return fetchAPI(`${o}/_v/api/intelligent-search/top_searches?${e.toString()}`,void 0,{storeCookies:i})}}},getClients=(e,t)=>{let r=IntelligentSearch(e,t),a=VtexCommerce(e,t);return{search:r,commerce:a}};var f=r(3404),h=r.n(f);let getSalesChannelLoader=(e,t)=>{let loader=async e=>Promise.all(e.map(e=>t.commerce.catalog.salesChannel(e)));return new(h())(loader)};var y=r(5471),S=r.n(y);let getSimulationLoader=(e,t)=>{let r=S()(1),loader=async e=>{let r=e.reduce((e,{items:t})=>[...e,t],[]),a=[...r.flat()],o=await t.commerce.checkout.simulation({country:e[0].country,postalCode:e[0].postalCode,items:a}),i=o.items.reduce((e,t)=>{let r=t.requestIndex;return"number"==typeof r&&r<e.length&&(e[r]=t),e},Array(a.length).fill(null)),n=r.reduce((e,t)=>[...e,t.length+e[e.length-1]],[0]);return r.map((e,t)=>({...o,items:i.slice(n[t],n[t+1]).filter(e=>!!e)}))},limited=async e=>r(loader,e);return new(h())(limited,{maxBatchSize:50})};var v=r(6109),C=r.n(v);let sanitizeHtml=(e,t)=>C()(e,t),enhanceSku=(e,t)=>({...e,isVariantOf:function(e){return{...e,description:e.description?sanitizeHtml(e.description):e.description}}(t)});let FastStoreError=class FastStoreError extends Error{extensions;constructor(e,t){super(t),this.extensions=e,this.name="FastStoreError"}};let BadRequestError=class BadRequestError extends FastStoreError{constructor(e){super({status:400,type:"BadRequestError"},e)}};let NotFoundError=class NotFoundError extends FastStoreError{constructor(e){super({status:404,type:"NotFoundError"},e)}};let isFastStoreError=e=>e?.name==="FastStoreError",isNotFoundError=e=>e?.extensions?.type==="NotFoundError",getSkuLoader=(e,t)=>{let loader=async e=>{let{products:r}=await t.search.products({query:`sku:${e.join(";")}`,page:0,count:e.length}),a=r.reduce((e,t)=>{for(let r of t.items)e[r.itemId]=enhanceSku(r,t);return e},{}),o=e.map(e=>a[e]),i=e.filter(e=>!a[e]);if(i.length>0)throw new NotFoundError(`Search API did not found the following skus: ${i.join(",")}`);return o};return new(h())(loader,{maxBatchSize:99})},b=new Set(["brand","category","department","subcategory","collection","cluster"]),isCollectionPageType=e=>"string"==typeof e.pageType&&b.has(e.pageType.toLowerCase()),getCollectionLoader=(e,t)=>{let r=S()(20),loader=async e=>Promise.all(e.map(e=>r(async()=>{let r=await t.commerce.catalog.portal.pagetype(e);if(isCollectionPageType(r))return r;throw new NotFoundError(`Catalog returned ${r.pageType} for slug: ${e}. This usually happens when there is more than one category with the same name in the same category tree level.`)})));return new(h())(loader,{batch:!1})},getLoaders=(e,{clients:t})=>{let r=getSkuLoader(e,t),a=getSimulationLoader(e,t),o=getCollectionLoader(e,t),i=getSalesChannelLoader(e,t);return{skuLoader:r,simulationLoader:a,collectionLoader:o,salesChannelLoader:i}},inStock=e=>e.AvailableQuantity>0,price=e=>e.spotPrice??0,sellingPrice=e=>e.Price??0,availability=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",bestOfferFirst=(e,t)=>inStock(e)&&!inStock(t)?-1:!inStock(e)&&inStock(t)?1:price(e)-price(t),inStockOrderFormItem=e=>"available"===e,P="\xc1\xc4\xc2\xc0\xc3\xc5Č\xc7ĆĎ\xc9Ě\xcb\xc8\xcaẼĔȆ\xcd\xcc\xce\xcfŇ\xd1\xd3\xd6\xd2\xd4\xd5\xd8ŘŔŠŤ\xdaŮ\xdc\xd9\xdb\xddŸŽ\xe1\xe4\xe2\xe0\xe3\xe5č\xe7ćď\xe9ě\xeb\xe8\xeaẽĕȇ\xed\xec\xee\xefň\xf1\xf3\xf6\xf2\xf4\xf5\xf8\xf0řŕšť\xfaů\xfc\xf9\xfb\xfd\xffž\xfe\xdeĐđ\xdf\xc6a",removeDiacritics=e=>{let t=e.slice(0);for(let e=0;e<P.length;e++)t=t.replace(RegExp(P.charAt(e),"g"),"AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa".charAt(e));return t},slugifySpecialCharacters=e=>e.replace(/[·/_,:]/,"-");function slugify(e){let t=e.replace(/,/g,""),r=t.replace(/[*+~.()'"!:@&\[\]`/ %$#?{}|><=_^]/g,"-"),a=slugifySpecialCharacters(removeDiacritics(r));return a.toLowerCase()}let isBrand=e=>"brand"===e.type||isCollectionPageType(e)&&"brand"===e.pageType.toLowerCase(),isCollection=e=>isCollectionPageType(e)&&"collection"===e.pageType.toLowerCase(),slugifyRoot=e=>isBrand(e)||isCollection(e)?slugify(e.name):isCollectionPageType(e)?new URL(`https://${e.url}`).pathname.slice(1).toLowerCase():new URL(e.url).pathname.slice(1).toLowerCase(),I={id:({id:e})=>e.toString(),slug:e=>slugifyRoot(e),seo:e=>isBrand(e)||isCollectionPageType(e)?{title:e.title,description:e.metaTagDescription}:{title:e.Title,description:e.MetaTagDescription},type:e=>isBrand(e)?"Brand":isCollectionPageType(e)?e.pageType:0===e.level?"Department":"Category",meta:e=>{let t=slugifyRoot(e);return isBrand(e)?{selectedFacets:[{key:"brand",value:t}]}:isCollection(e)?{selectedFacets:[{key:"productclusterids",value:e.id}]}:{selectedFacets:t.split("/").map((e,t)=>({key:`category-${t+1}`,value:e}))}},breadcrumbList:async(e,t,r)=>{let{loaders:{collectionLoader:a}}=r,o=slugifyRoot(e),i=o.split("/").filter(e=>!!e),n=i.map((e,t)=>i.slice(0,t+1).join("/")),s=await Promise.all(n.map(async e=>{let t=await a.load(e);return{slug:e,...t}}));return{itemListElement:s.map((e,t)=>({item:isCollection(e)?`/${e.slug}`:new URL(`https://${e.url}`).pathname.toLowerCase(),name:e.name,position:t+1})),numberOfItems:s.length}}},O={buy:"whoboughtalsobought",view:"whosawalsosaw",similars:"similars",viewAndBought:"whosawalsobought",accessories:"accessories",suggestions:"suggestions"},transformSelectedFacet=({key:e,value:t})=>{switch(e){case"price":return{key:e,value:t.replace("-to-",":")};case"channel":case"locale":case"buy":case"view":case"similars":case"viewAndBought":case"accessories":case"suggestions":return[];default:return{key:e,value:t}}},parseRange=e=>{let t=e.split(":").map(Number);return 2!==t.length||Number.isNaN(t[0])||Number.isNaN(t[1])?null:t},isCrossSelling=e=>"string"==typeof O[e],findCrossSelling=e=>{let t=e?.filter(e=>isCrossSelling(e.key));if(Array.isArray(t)&&t.length>1)throw new BadRequestError(`You passed ${t.length} cross selling facets but only one is allowed. Please leave one of the following facet: ${t.map(e=>e.key).join(",")}`);return t?.[0]??null},findSlug=e=>e?.find(e=>"slug"===e.key)?.value??null,findSkuId=e=>e?.find(e=>"id"===e.key)?.value??null,findLocale=e=>e?.find(e=>"locale"===e.key)?.value??null,findChannel=e=>e?.find(e=>"channel"===e.key)?.value??null,min=(e,t)=>{let r=0;for(let a=1;a<e.length;a++)t(e[r],e[a])>0&&(r=a);return e[r]},subscribeToNewsletter=async(e,{data:t},{clients:{commerce:r}})=>{let a=await r.subscribeToNewsletter(t);return{id:a?.Id}};var $=r(2404),F=r.n($);let ChannelMarshal=class ChannelMarshal{static parse(e){try{let t=JSON.parse(e);return{seller:t.seller??"",regionId:t.regionId??"",salesChannel:t.salesChannel??"",hasOnlyDefaultSalesChannel:t.hasOnlyDefaultSalesChannel??!0}}catch(e){throw console.error(e),Error("Malformed channel string")}}static stringify(e){return JSON.stringify(e)}};let mutateChannelContext=(e,t)=>{e.storage.channel=ChannelMarshal.parse(t)},mutateLocaleContext=(e,t)=>{e.storage.locale=t};var k=r(6113),w=r.n(k);let md5=e=>w().createHash("md5").update(e).digest("hex"),E={attachment:"ATTACHMENT",specification:"SPECIFICATION",attribute:"ATTRIBUTE"};function attachmentToPropertyValue(e){return{name:e.name,value:e.content,valueReference:E.attachment}}function attributeToPropertyValue(e){return{propertyID:e.id,name:e.name,value:e.value,valueReference:{valueReference:E.attribute,visible:e.visible}}}function getPropertyId(e){return md5(`${e.name}:${JSON.stringify(e.value)}:${e.valueReference}`)}var x=r(4802);let shouldUpdateShippingData=(e,t)=>{if(!hasSessionPostalCodeOrGeoCoordinates(t)||!hasItems(e))return{updateShipping:!1,addressChanged:!1};let[r]=e?.shippingData?.selectedAddresses??[];if(checkPostalCode(r,t.postalCode)||checkGeoCoordinates(r,t.geoCoordinates)||checkAddressType(r,t.addressType))return{updateShipping:!0,addressChanged:!0};let{logisticsInfo:a}=e.shippingData;return shouldUpdateDeliveryInfo(a,t)?{updateShipping:!0,addressChanged:!1}:{updateShipping:!1,addressChanged:!1}},hasSessionPostalCodeOrGeoCoordinates=e=>!!e.postalCode||e.geoCoordinates?.latitude&&e.geoCoordinates?.longitude,checkPostalCode=(e,t)=>"string"==typeof t&&e?.postalCode!==t,checkGeoCoordinates=(e,t)=>"number"==typeof t?.latitude&&"number"==typeof t?.longitude&&(e?.geoCoordinates[0]!==t?.longitude||e?.geoCoordinates[1]!==t?.latitude),checkAddressType=(e,t)=>"string"==typeof t&&e?.addressType!==t,hasItems=e=>0!==e.items.length,shouldUpdateDeliveryInfo=(e,t)=>{let r=t?.deliveryMode?.deliveryChannel,a=t?.deliveryMode?.deliveryMethod,{startDate:o,endDate:i}=t?.deliveryMode?.deliveryWindow||{};return e.some(({selectedDeliveryChannel:e,selectedSla:t,slas:n})=>{let s=r&&e!==r,l=a&&t!==a;return n?.some(e=>!!s&&e.deliveryChannel===r||!!l&&e.id===a||o&&i&&e.deliveryChannel===r&&e.id===a&&(!e?.deliveryWindow||e?.deliveryWindow?.startDateUtc!==o||e?.deliveryWindow?.endDateUtc!==i)&&e.availableDeliveryWindows?.some(e=>e?.startDateUtc===o&&e?.endDateUtc===i))})},getAddressOrderForm=(e,t,r)=>{let a=t.postalCode,o=t.geoCoordinates,i=e?.shippingData?.availableAddresses??[],n=e?.shippingData?.selectedAddresses??[];if(!r&&n.length>0)return[n[0]];if(r&&i.length>0)for(let e of i){if(a&&o){let t=e.postalCode===a||e.geoCoordinates[0]===o.longitude&&e.geoCoordinates[1]===o.latitude;if(t)return[e]}if(a&&!o){let t=e.postalCode===a;if(t)return[e]}if(o&&!a){let t=e.geoCoordinates[0]===o.longitude&&e.geoCoordinates[1]===o.latitude;if(t)return[e]}}return null},createNewAddress=e=>{let t=e.postalCode,r=e.geoCoordinates,a={addressType:e.addressType||null,postalCode:t||null,city:null,state:null,country:e.country||null,street:null,number:null,neighborhood:null,complement:null,reference:null,geoCoordinates:[]};if(r){let e="object"==typeof r&&"latitude"in r?r.latitude:null,t="object"==typeof r&&"longitude"in r?r.longitude:null;a.geoCoordinates=null!==e&&null!==t?[t,e]:[]}return[a]},isAttachment=e=>e.valueReference===E.attachment,getId=e=>[e.itemOffered.sku,e.seller.identifier,e.price<.01?"Gift":void 0,e.itemOffered.additionalProperty?.filter(isAttachment).map(getPropertyId).join("-")].filter(Boolean).join("::"),orderFormItemToOffer=(e,t)=>({listPrice:e.listPrice/100,price:e.sellingPrice/100,quantity:e.quantity,seller:{identifier:e.seller},itemOffered:{sku:e.id,image:[],name:e.name,additionalProperty:e.attachments.map(attachmentToPropertyValue)},index:t}),offerToOrderItemInput=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index,attachments:(e.itemOffered.additionalProperty?.filter(isAttachment)??[]).map(e=>({name:e.name,content:e.value}))}),groupById=e=>e.reduce((e,t)=>{let r=getId(t);return e.has(r)||e.set(r,[]),e.get(r)?.push(t),e},new Map),equals=(e,t)=>{let pick=(e,t)=>({...e,itemOffered:{sku:e.itemOffered.sku},index:t}),r=t.items.map(orderFormItemToOffer).map(pick),a=e.acceptedOffer.map(pick),o=e.orderNumber===t.orderFormId,i=F()(r,a);return o&&i},joinItems=e=>{let t=e.items.reduce((e,t)=>{let r=getId(orderFormItemToOffer(t));return e[r]||(e[r]=[]),e[r].push(t),e},{});return{...e,items:Object.values(t).map(e=>{let[t]=e,r=e.reduce((e,t)=>e+t.quantity,0),a=e.reduce((e,t)=>e+(t?.priceDefinition?.total??(t?.quantity??0)*(t?.sellingPrice??0)),0);return{...t,quantity:r,sellingPrice:a/r}})}},orderFormToCart=async(e,t)=>({order:{orderNumber:e.orderFormId,acceptedOffer:e.items.map(async e=>({...e,product:await t.load(e.id)}))},messages:e.messages.map(({text:e,status:t})=>({text:e,status:t.toUpperCase()}))}),getOrderFormEtag=({items:e})=>md5(JSON.stringify(e)),setOrderFormEtag=async(e,t)=>{try{let r=await t.checkout.setCustomData({id:e.orderFormId,appId:"faststore",key:"cartEtag",value:getOrderFormEtag(e)});return r}catch(e){throw console.error('Error while setting custom data to orderForm.\n Make sure to add the following custom app to the orderForm: \n{"fields":["cartEtag"],"id":"faststore","major":1}.\n More info at: https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api'),e}},isOrderFormStale=e=>{let t=e.customData?.customApps.find(e=>"faststore"===e.id),r=t?.fields?.cartEtag;if(null==r)return!0;let a=getOrderFormEtag(e);return a!==r},getOrderForm=async(e,{clients:{commerce:t}})=>t.checkout.orderForm({id:e}),clearOrderFormMessages=async(e,{clients:{commerce:t}})=>t.checkout.clearOrderFormMessages({id:e}),updateOrderFormShippingData=async(e,t,{clients:{commerce:r}})=>{if(!t)return e;let{updateShipping:a,addressChanged:o}=shouldUpdateShippingData(e,t);if(a){let a=getAddressOrderForm(e,t,o),i=a||createNewAddress(t),n=!!t.deliveryMode?.deliveryWindow;return n&&await r.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:t.deliveryMode,selectedAddresses:i},!1),r.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:t.deliveryMode,selectedAddresses:i},!0)}return e},getCookieCheckoutOrderNumber=(e,t)=>{if(!e)return"";let r=(0,x.parse)(e),a=r[t];return a?a.split("=")[1]:""},validateCart=async(e,{cart:{order:t},session:r},a)=>{let o=t?.orderNumber?t.orderNumber:getCookieCheckoutOrderNumber(a.headers.cookie,"checkout.vtex.com"),{acceptedOffer:i,shouldSplitItem:n}=t,{clients:{commerce:s},loaders:{skuLoader:l}}=a,c=r?.channel,u=r?.locale;c&&mutateChannelContext(a,c),u&&mutateLocaleContext(a,u);let d=await getOrderForm(o,a);0!==d.messages.length&&await clearOrderFormMessages(o,a);let p=isOrderFormStale(d);if(p){let e=await setOrderFormEtag(d,s).then(joinItems);if(o)return orderFormToCart(e,l)}let m=groupById(i),g=groupById(d.items.map(orderFormItemToOffer)),f=Array.from(g.entries()),h=Array.from(m.entries()),{itemsToAdd:y,itemsToUpdate:S}=h.reduce((e,[t,r])=>{let a=g.get(t);if(!a)return r.forEach(t=>e.itemsToAdd.push(t)),e;let[o,...i]=a,n=r.reduce((e,t)=>e+t.quantity,0);return e.itemsToUpdate.push({...o,quantity:n}),i.forEach(t=>e.itemsToUpdate.push({...t,quantity:0})),e},{itemsToAdd:[],itemsToUpdate:[]}),v=f.filter(([e])=>!m.has(e)).flatMap(([,e])=>e.map(e=>({...e,quantity:0}))),C=[...y,...S,...v].map(offerToOrderItemInput);if(0===C.length)return null;let b=await s.checkout.updateOrderFormItems({id:d.orderFormId,orderItems:C,shouldSplitItem:n}).then(e=>updateOrderFormShippingData(e,r,a)).then(e=>setOrderFormEtag(e,s)).then(joinItems),P=F()(d.messages,b.messages);return equals(t,b)&&P?null:orderFormToCart(b,l)},validateSession=async(e,{session:t,search:r},{clients:a})=>{let o=ChannelMarshal.parse(t.channel??""),i=String(t.postalCode??""),n=t.geoCoordinates??null,s=t.country??"",l=new URLSearchParams(r),c=l.get("sc")??o.salesChannel;l.set("sc",c);let[u,d]=await Promise.all([i||n?a.commerce.checkout.region({postalCode:i,geoCoordinates:n,country:s,salesChannel:c}):Promise.resolve(null),a.commerce.session(l.toString()).catch(()=>null)]),p=d?.namespaces.profile??null,m=d?.namespaces.store??null,g=u?.[0],f=g?.sellers.find(e=>o.seller===e.id),h={...t,currency:{code:m?.currencyCode?.value??t.currency.code,symbol:m?.currencySymbol?.value??t.currency.symbol},country:m?.countryCode?.value??t.country,channel:ChannelMarshal.stringify({salesChannel:m?.channel?.value??o.salesChannel,regionId:g?.id??o.regionId,seller:f?.id,hasOnlyDefaultSalesChannel:!m?.channel?.value}),person:p?.id?{id:p.id?.value??"",email:p.email?.value??"",givenName:p.firstName?.value??"",familyName:p.lastName?.value??""}:null};return F()(t,h)?null:h};var N=r(7343),T=r(6548);let D=new N.GraphQLScalarType({name:"ObjectOrString",description:"A string or the string representation of an object (a stringified object).",parseValue:function(e){return"string"==typeof e?getValueAsObjectOrString(e):null},serialize:function(e){return"object"==typeof e?JSON.stringify(e):"string"==typeof e?e:null},parseLiteral:e=>e.kind===T.Kind.STRING?getValueAsObjectOrString(e.value):null});function getValueAsObjectOrString(e){try{return JSON.parse(e)}catch(t){return e}}let isSearchItem=e=>"Price"in e&&"seller"in e&&"product"in e,isOrderFormItem=e=>"skuName"in e,canonicalFromProduct=({linkText:e})=>`/${e}/p`,enhanceCommercialOffer=({offer:e,seller:t,product:r})=>({...e,product:r,seller:t}),A={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg",imageLabel:"label"},getSlug=(e,t)=>`${e}-${t}`,getPath=(e,t)=>`/${getSlug(e,t)}/p`,nonEmptyArray=e=>Array.isArray(e)&&e.length>0?e:null,R=new Set(["allSpecifications"]),V={price_desc:"price:desc",price_asc:"price:asc",orders_desc:"orders:desc",name_desc:"name:desc",name_asc:"name:asc",release_desc:"release:desc",discount_desc:"discount:desc",score_desc:""},pickBestSku=e=>{let t=e.flatMap(e=>e.sellers.map(t=>({offer:t.commertialOffer,sku:e}))),r=min(t,({offer:e},{offer:t})=>bestOfferFirst(e,t));return r?r.sku:e[0]},isValidSkuId=e=>""!==e&&!Number.isNaN(Number(e)),isRootFacet=(e,t,r)=>t?"category-1"===e.key:!!r&&"brand"===e.key,L=["bd","d","h","m"],isUnit=e=>L.includes(e),_={bd:{0:"Today",1:"In 1 business day",other:"Up to # business days"},d:{0:"Today",1:"In 1 day",other:"Up to # days"},h:{0:"Now",1:"In 1 hour",other:"Up to # hours"},m:{0:"Now",1:"In 1 minute",other:"Up to # minutes"}},getLocalizedEstimates=e=>{let[t,r]=[e.split(/\D+/)[0],e.split(/[0-9]+/)[1]],a=""!==t&&!Number.isNaN(Number(t)),o=isUnit(r);if(!a||!o)return"";let i=2>Number(t)?Number(t):"other";return _[r][i].replace("#",t)??""},M="skuvariation";function findSkuVariantImage(e,t){let r=`${M}${t}`.toLowerCase(),a=e.find(e=>e.imageLabel===r);if(a)return a;let o=e.find(e=>e.imageLabel===M);return o||e[0]}function getActiveSkuVariations(e){let t={};return e.forEach(e=>{t[e.name]=e.values[0]}),t}let U={StoreCollection:I,StoreAggregateOffer:{highPrice:e=>{let t=e.filter(inStock),r=t[t.length-1];return null!=r?price(r):0},lowPrice:e=>{let[t]=e.filter(inStock);return t?price(t):0},offerCount:e=>e.length,priceCurrency:async(e,t,r)=>{let{loaders:{salesChannelLoader:a},storage:{channel:o}}=r,i=await a.load(o.salesChannel);return i.CurrencyCode??""},offers:e=>e},StoreProduct:{productID:({itemId:e})=>e,name:({isVariantOf:e,name:t})=>t??e.productName,slug:({isVariantOf:{linkText:e},itemId:t})=>getSlug(e,t),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:e})=>({title:e.productName,description:e.description,canonical:canonicalFromProduct(e)}),brand:({isVariantOf:{brand:e}})=>({name:e}),unitMultiplier:({unitMultiplier:e})=>e,breadcrumbList:({isVariantOf:{categories:e,productName:t,linkText:r},itemId:a})=>({itemListElement:[...e.reverse().map((e,t)=>{let r=e.split("/"),a=r[r.length-2],o=r.map(slugify).join("/");return{name:a,item:o,position:t+1}}),{name:t,item:getPath(r,a),position:e.length+1}],numberOfItems:e.length}),image:({images:e},t)=>{let r=(nonEmptyArray(e)??[A]).map(({imageUrl:e,imageText:t,imageLabel:r})=>({alternateName:t??"",url:e.replace("vteximg.com.br","vtexassets.com"),keywords:r}));if("object"!=typeof t)return r;let{context:a,limit:o}=t,i="generic"!==a;o=(o=o||-1)<=-1?void 0:o;let n=i?r.filter(({keywords:e})=>e===a):r;return(n=0===n.length?r:n).slice(0,o)},sku:({itemId:e})=>e,gtin:({referenceId:e})=>e[0]?.Value??"",review:()=>[],aggregateRating:()=>({}),offers:e=>e.sellers.map(t=>enhanceCommercialOffer({offer:t.commertialOffer,seller:t,product:e})).sort(bestOfferFirst),isVariantOf:e=>e,additionalProperty:({variations:e=[],attachmentsValues:t=[],attributes:r=[]})=>{let a=e.flatMap(({name:e,values:t})=>t.map(t=>({name:e,value:t,valueReference:E.specification}))),o=t.map(attachmentToPropertyValue),i=r.map(attributeToPropertyValue);return[...a,...o,...i]},releaseDate:({isVariantOf:{releaseDate:e}})=>e??""},StoreSeo:{title:({title:e})=>e??"",description:({description:e})=>e??"",canonical:({canonical:e})=>e??"",titleTemplate:()=>""},StoreFacet:{__resolveType:({type:e,values:t})=>"TEXT"!==e||t.every(e=>e.range)?"StoreFacetRange":"StoreFacetBoolean"},StoreFacetBoolean:{key:({key:e})=>e,label:({name:e})=>e,values:({values:e})=>e.sort((e,t)=>e.name.localeCompare(t.name))},StoreFacetRange:{key:({key:e})=>e,label:({name:e})=>e,min:({values:e,key:t},r,{storage:{searchArgs:a}})=>{let o=parseRange(a?.selectedFacets?.find(e=>e.key===t)?.value??""),i=min(e,(e,t)=>e.range.from-t.range.from),n=i?.range.from??0;return{selected:o?.[0]??n,absolute:n}},max:({values:e,key:t},r,{storage:{searchArgs:a}})=>{let o=parseRange(a?.selectedFacets?.find(e=>e.key===t)?.value??""),i=min(e,(e,t)=>t.range.to-e.range.to),n=i?.range.to??0;return{selected:o?.[1]??n,absolute:n}}},StoreFacetValueBoolean:{value:({value:e})=>e,label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},StoreOffer:{priceCurrency:async(e,t,r)=>{let{loaders:{salesChannelLoader:a},storage:{channel:o}}=r,i=await a.load(o.salesChannel);return i.CurrencyCode??""},priceValidUntil:e=>isSearchItem(e)?e.PriceValidUntil??"":isOrderFormItem(e)?e.priceValidUntil??"":null,itemCondition:()=>"https://schema.org/NewCondition",availability:async e=>isSearchItem(e)?availability(inStock(e)):isOrderFormItem(e)?availability(inStockOrderFormItem(e.availability)):null,seller:(e,t,r)=>isSearchItem(e)?{identifier:r.storage.channel?.seller||e.seller.sellerId||""}:isOrderFormItem(e)?{identifier:e.seller}:null,price:e=>isSearchItem(e)?price(e):isOrderFormItem(e)?e.sellingPrice/100:null,sellingPrice:e=>isSearchItem(e)?sellingPrice(e):isOrderFormItem(e)?e.sellingPrice/100:null,listPrice:e=>isSearchItem(e)?e.ListPrice??0:isOrderFormItem(e)?e.listPrice/100:null,itemOffered:e=>isSearchItem(e)?e.product:isOrderFormItem(e)?{...e.product,attachmentsValues:e.attachments}:null,quantity:e=>isSearchItem(e)?e.AvailableQuantity??0:isOrderFormItem(e)?e.quantity:null},StoreAggregateRating:{ratingValue:()=>5,reviewCount:()=>0},StoreReview:{reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},StoreProductGroup:{hasVariant:e=>e.isVariantOf.items.map(t=>enhanceSku(t,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,name:e=>e.isVariantOf.productName,skuVariants:e=>e,additionalProperty:({isVariantOf:{specificationGroups:e}})=>e.filter(e=>!R.has(e.name)).flatMap(({specifications:e})=>e.flatMap(({name:e,values:t})=>t.map(t=>({name:e,value:t,valueReference:E.specification}))))},StoreSearchResult:{suggestions:async(e,t,r)=>{let{clients:{search:a}}=r,{searchArgs:o}=e;if(!o.query){let e=await a.topSearches();return{terms:e.searches.map(e=>({value:e.term,count:e.count})),products:[]}}let{productSearchPromise:i}=e,[n,s]=await Promise.all([a.suggestedTerms(o),i]),l=s.products.map(e=>{let t=pickBestSku(e.items);return t&&enhanceSku(t,e)}).filter(e=>!!e),{searches:c}=n;return{terms:c.map(e=>({value:e.term,count:e.count})),products:l}},products:async({productSearchPromise:e})=>{let t=await e,r=t.products.map(e=>{let t=pickBestSku(e.items);return t&&enhanceSku(t,e)}).filter(e=>!!e);return{pageInfo:{hasNextPage:t.pagination.after.length>0,hasPreviousPage:t.pagination.before.length>0,startCursor:"0",endCursor:t.recordsFiltered.toString(),totalCount:t.recordsFiltered},edges:r.map((e,t)=>({node:e,cursor:t.toString()}))}},facets:async({searchArgs:e},t,r)=>{let{clients:{search:a}}=r;r.storage.searchArgs=e;let{facets:o=[]}=await a.facets(e),i=!e.query,n=!!e.selectedFacets?.length&&"category-1"===e.selectedFacets[0].key,s=!!e.selectedFacets?.length&&"brand"===e.selectedFacets[0].key,l=o.filter(e=>!i||!isRootFacet(e,n,s));return l},metadata:async({productSearchPromise:e})=>{let t=await e;return{isTermMisspelled:t.correction?.misspelled??!1,logicalOperator:t.operator,fuzzy:t.fuzzy}}},StorePropertyValue:{propertyID:e=>e.propertyID||getPropertyId(e),name:({name:e})=>e,value:({value:e})=>e,valueReference:({valueReference:e})=>e},SkuVariants:{activeVariations:e=>getActiveSkuVariations(e.variations),allVariantsByName:e=>(function(e){let t={};return e?.forEach(e=>{t[e.field.originalName??e.field.name]=e.values.map(e=>e.originalName??e.name)}),t})(e.isVariantOf.skuSpecifications),slugsMap:(e,t)=>(function(e,t,r){let a={};return e.forEach(e=>{let o=e.variations;if(0===o.length)return;let i=`${t}-${o.find(e=>e.name===t)?.values[0]??""}`,n=o.reduce((e,r)=>{let a=r.name===t;return a?e:e+`-${r.name}-${r.values[0]}`},i);a[n]=`${r}-${e.itemId}`}),a})(e.isVariantOf.items,t.dominantVariantName??e.variations[0]?.name,e.isVariantOf.linkText),availableVariations:(e,t)=>{let r=t.dominantVariantName??e.variations[0]?.name,a=getActiveSkuVariations(e.variations),o=a[r],i=function(e,t,r){let a={},o=new Set;return e.forEach(e=>{if(0===e.variations.length)return;let i=e.variations.find(e=>e.name===t),n=i?.values[0]===r;if(!n){let r=`${t}-${i?.values[0]}`;if(!i||o.has(r))return;o.add(r);let n=findSkuVariantImage(e.images,t),s={src:n.imageUrl,alt:n.imageLabel??"",label:`${t}: ${i.values[0]}`,value:i.values[0]};a[i.name]?a[i.name].push(s):a[i.name]=[s];return}e.variations.forEach(t=>{let r=`${t.name}-${t.values[0]}`;if(o.has(r))return;o.add(r);let i=findSkuVariantImage(e.images,t.name),n={src:i.imageUrl,alt:i.imageText??"",label:`${t.name}: ${t.values[0]}`,value:t.values[0]};a[t.name]?a[t.name].push(n):a[t.name]=[n]})}),function(e){for(let t in e)e[t].sort((e,t)=>{var r,a;return r=e.value,a=t.value,Number.isNaN(Number(r)-Number(a))?r<a?-1:r>a?1:0:Number(r)-Number(a)});return e}(a)}(e.isVariantOf.items,r,o);return i}},ShippingSLA:{carrier:e=>e?.friendlyName??e?.name??"",price:e=>e?.price?e.price/100:e?.price,localizedEstimates:e=>e?.shippingEstimate?getLocalizedEstimates(e.shippingEstimate):""},ObjectOrString:D,Query:{product:async(e,{locator:t},r)=>{let a=findChannel(t),o=findLocale(t),i=findSkuId(t),n=findSlug(t);a&&mutateChannelContext(r,a),o&&mutateLocaleContext(r,o);let{loaders:{skuLoader:s},clients:{commerce:l,search:c}}=r;try{let e=i??n?.split("-").pop()??"";if(!isValidSkuId(e))throw Error("Invalid SkuId");let t=await s.load(e);if(n&&t.isVariantOf.linkText&&!n.startsWith(t.isVariantOf.linkText))throw Error(`Slug was set but the fetched sku does not satisfy the slug condition. slug: ${n}, linkText: ${t.isVariantOf.linkText}`);return t}catch(a){if(null==n)throw new BadRequestError("Missing slug or id");let e=await l.catalog.portal.pagetype(`${n}/p`);if("Product"!==e.pageType||!e.id)throw new NotFoundError(`No product found for slug ${n}`);let{products:[t]}=await c.products({page:0,count:1,query:`product:${e.id}`});if(!t)throw new NotFoundError(`No product found for id ${e.id}`);let r=pickBestSku(t.items);return enhanceSku(r,t)}},collection:(e,{slug:t},r)=>{let{loaders:{collectionLoader:a}}=r;return a.load(t)},search:async(e,{first:t,after:r,sort:a,term:o,selectedFacets:i},n)=>{let s=findChannel(i),l=findLocale(i),c=findCrossSelling(i);s&&mutateChannelContext(n,s),l&&mutateLocaleContext(n,l);let u=o;if(c){let e=await n.clients.commerce.catalog.products.crossselling({type:O[c.key],productId:c.value});u=`product:${e.map(e=>e.productId).slice(0,t).join(";")}`}let d=r?Number(r):0,p={page:Math.ceil(d/t),count:t,query:u??void 0,sort:V[a??"score_desc"],selectedFacets:i?.flatMap(transformSelectedFacet)??[]},m=n.clients.search.products(p);return{searchArgs:p,productSearchPromise:m}},allProducts:async(e,{first:t,after:r},a)=>{let{clients:{search:o}}=a,i=r?Number(r):0,n=await o.products({page:Math.ceil(i/t),count:t}),s=n.products.map(e=>e.items.map(t=>enhanceSku(t,e))).flat().filter(e=>e.sellers.length>0);return{pageInfo:{hasNextPage:n.pagination.after.length>0,hasPreviousPage:n.pagination.before.length>0,startCursor:"0",endCursor:n.recordsFiltered.toString(),totalCount:n.recordsFiltered},edges:s.map((e,t)=>({node:e,cursor:(i+t).toString()}))}},allCollections:async(e,{first:t,after:r},a)=>{let{clients:{commerce:o}}=a,i=r?Number(r):0,[n,s]=await Promise.all([o.catalog.brand.list(),o.catalog.category.tree()]),l=[],dfs=(e,t)=>{for(let r of(l.push({...e,level:t}),e.children))dfs(r,t+1)};for(let e of s)dfs(e,0);let c=[...n.filter(e=>e.isActive).map(e=>({...e,type:"brand"})),...l],u=c.filter(e=>!!I.slug(e,null,a,null));return{pageInfo:{hasNextPage:u.length-i>t,hasPreviousPage:i>0,startCursor:"0",endCursor:(Math.min(t,u.length-i)-1).toString(),totalCount:u.length},edges:u.slice(i,i+t).map((e,t)=>({node:e,cursor:(i+t).toString()}))}},shipping:async(e,{country:t,items:r,postalCode:a},o)=>{let{loaders:{simulationLoader:i},clients:{commerce:n}}=o,[s,l]=await Promise.all([i.load({country:t,items:r,postalCode:a}),n.checkout.address({postalCode:a,country:t})]);return{...s,address:l}},redirect:async(e,{term:t,selectedFacets:r},a)=>{if(!t&&(!r||!r.length))return null;let{redirect:o}=await a.clients.search.products({page:1,count:1,query:t??void 0,selectedFacets:r?.flatMap(transformSelectedFacet)??[]});return{url:o}},sellers:async(e,{postalCode:t,geoCoordinates:r,country:a,salesChannel:o},i)=>{let{clients:{commerce:n}}=i,s=await n.checkout.region({postalCode:t,geoCoordinates:r,country:a,salesChannel:o}),l=s?.[0],{id:c,sellers:u}=l;return{id:c,sellers:u}}},Mutation:{validateCart:validateCart,validateSession:validateSession,subscribeToNewsletter:subscribeToNewsletter}};(0,r(5785).loadFilesSync)(__dirname,{extensions:[".graphql"]}).map(N.print).join("\n"),r(1718),r(1283),r(4161),r(5196),r(2793),r(6969),r(4691),r(8973),function(e){e.EXECUTION_ERROR="graphql.error",e.EXECUTION_RESULT="graphql.result",e.RESOLVER_EXECUTION_ERROR="graphql.resolver.error",e.RESOLVER_EXCEPTION="graphql.resolver.exception",e.RESOLVER_FIELD_NAME="graphql.resolver.fieldName",e.RESOLVER_TYPE_NAME="graphql.resolver.typeName",e.RESOLVER_RESULT_TYPE="graphql.resolver.resultType",e.RESOLVER_ARGS="graphql.resolver.args",e.EXECUTION_OPERATION_NAME="graphql.operation.name",e.EXECUTION_OPERATION_TYPE="graphql.operation.type",e.EXECUTION_OPERATION_DOCUMENT="graphql.document",e.EXECUTION_VARIABLES="graphql.variables"}(a||(a={})),Symbol("OPEN_TELEMETRY_GRAPHQL"),n.i8;let q={vtex:{getResolvers:e=>U,getContextFactory:e=>t=>(t.storage={channel:ChannelMarshal.parse(e.channel),flags:e.flags??{},locale:e.locale,cookies:new Map},t.clients=getClients(e,t),t.loaders=getLoaders(e,t),t)}},src_getResolvers=e=>q[e.platform].getResolvers(e),src_getContextFactory=e=>q[e.platform].getContextFactory(e)},9544:(e,t,r)=>{r.d(t,{Z:()=>y});var a=r(6152),o=r(997),i=r(6689),n=r(5105),s=r(9785),l=r(9137),c=r(5531),u=r.n(c),d=r(4129),p=r(6737),m=r(1206),g=r(2569);let f={ProductShelf:p.Z,__experimentalCarousel:g.Z,__experimentalProductCard:m.Z},h=(0,a.B)("CrossSellingShelf",({numberOfItems:e,itemsPerPage:t,title:r,kind:a})=>{let{ref:c,inView:p}=(0,s.useInView)(),m=(0,l.al)(),g=m?.data?.product?.isVariantOf?.productGroupID,f=(0,i.useMemo)(()=>[{key:a,value:g}],[a,g]);return o.jsx(d.Z,{className:`${u().section} section-product-shelf layout__section`,ref:c,children:o.jsx(n.Z,{inView:p,numberOfItems:e,itemsPerPage:t,title:r,selectedFacets:f})})},f),y=(0,a.v)({section:"CrossSellingShelf",Section:h})},4694:(e,t,r)=>{r.d(t,{h:()=>execute});var a=r(1423),o=r.n(a),i=r(4354),n=r(697),s=r(3760),l=r(4772),c=r(6565),u=r(7343),d=r(4626),p=r(5785);let m=JSON.parse('{"4b33c5c07f440dc7489e55619dc2211a13786e72":"fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } seo { description title } } ...ServerCollectionPage }","3ce56e42296689b601347fedc380c89519355ab7":"fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice offers { availability listPrice price seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } name offers { highPrice lowPrice offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }","534fae829675533052d75fd4aa509b9cf85b4d40":"fragment CartItem on StoreOffer { itemOffered { ...CartProductItem } listPrice price quantity seller { identifier } } fragment CartMessage on StoreCartMessage { status text } fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } mutation ValidateCartMutation($cart: IStoreCart!, $session: IStoreSession!) { validateCart(cart: $cart, session: $session) { messages { ...CartMessage } order { acceptedOffer { ...CartItem } orderNumber } } }","feb7005103a859e2bc8cf2360d568806fd88deba":"mutation SubscribeToNewsletter($data: IPersonNewsletter!) { subscribeToNewsletter(data: $data) { id } }","c0d7d2ae1d5aaae5d50eea683b389377c36fb57d":"fragment ClientManyProducts on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { pageInfo { totalCount } } } } fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { brandName: name } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID } name offers { lowPrice offers { availability listPrice price quantity seller { identifier } } } id: productID sku slug } query ClientManyProductsQuery($after: String, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $term: String!) { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { edges { node { ...ProductSummary_product } } pageInfo { totalCount } } } ...ClientManyProducts }","054742a6e1a39f1e09237dcec956879d964f3f20":"fragment ClientProductGallery on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { pageInfo { totalCount } } } } fragment Filter_facets on StoreFacet { ... on StoreFacetBoolean { __typename key label values { label quantity selected value } } ... on StoreFacetRange { __typename key label max { absolute selected } min { absolute selected } } } fragment SearchEvent_metadata on SearchMetadata { fuzzy isTermMisspelled logicalOperator } query ClientProductGalleryQuery($after: String!, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $term: String!) { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { facets { ...Filter_facets } metadata { ...SearchEvent_metadata } products { pageInfo { totalCount } } } ...ClientProductGallery }","cedeb0c3e7ec1678400fe2ae930f5a79382fba1e":"fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ClientProduct on Query { product(locator: $locator) { id: productID } } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice offers { availability listPrice price seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } query ClientProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { ...ProductDetailsFragment_product } ...ClientProduct }","a8a27661f6a032e086c047339e0d0f180f0e0161":"fragment ClientSearchSuggestions on Query { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } } fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { brandName: name } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID } name offers { lowPrice offers { availability listPrice price quantity seller { identifier } } } id: productID sku slug } fragment SearchEvent_metadata on SearchMetadata { fuzzy isTermMisspelled logicalOperator } query ClientSearchSuggestionsQuery($selectedFacets: [IStoreSelectedFacet!], $term: String!) { search(first: 5, term: $term, selectedFacets: $selectedFacets) { metadata { ...SearchEvent_metadata } products { pageInfo { totalCount } } suggestions { products { ...ProductSummary_product } terms { value } } } ...ClientSearchSuggestions }","e2385b0f11726d0068f96548f57a8dd441c064e3":"fragment ClientTopSearchSuggestions on Query { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } } query ClientTopSearchSuggestionsQuery($selectedFacets: [IStoreSelectedFacet!], $term: String!) { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } ...ClientTopSearchSuggestions }","5696202828f9275216a445e316ebf516f168c506":"mutation ValidateSession($search: String!, $session: IStoreSession!) { validateSession(session: $session, search: $search) { addressType channel country currency { code symbol } deliveryMode { deliveryChannel deliveryMethod deliveryWindow { endDate startDate } } geoCoordinates { latitude longitude } locale person { email familyName givenName id } postalCode } }","d6667f1de2a26b94b9b55f4b25d7d823f82635a0":"fragment ClientShippingSimulation on Query { shipping(items: $items, postalCode: $postalCode, country: $country) { address { city } } } query ClientShippingSimulationQuery($country: String!, $items: [IShippingItem!]!, $postalCode: String!) { shipping(items: $items, postalCode: $postalCode, country: $country) { address { city neighborhood state } logisticsInfo { slas { availableDeliveryWindows { endDateUtc listPrice price startDateUtc } carrier localizedEstimates price shippingEstimate } } } ...ClientShippingSimulation }"}'),g={},f={};var h=r(7267),y=r.n(h);let S={platform:y().platform,account:y().api.storeId,environment:y().api.environment,subDomainPrefix:y().api.subDomainPrefix??["www"],hideUnavailableItems:y().api.hideUnavailableItems,incrementAddress:y().api.incrementAddress,channel:y().session.channel,locale:y().session.locale,flags:{enableOrderFormSync:!0}},v=new Map(Object.entries(m)),C=(0,c.E9)(S),formatError=e=>e instanceof u.GraphQLError&&(0,c.T9)(e.originalError)?e:(console.error(e),new u.GraphQLError("Sorry, something went wrong.")),getEnvelop=async()=>(0,i.envelop)({plugins:[(0,i.useSchema)(function(){let e=(0,p.loadFilesSync)(o().join(process.cwd(),"@generated"),{extensions:["graphql"]}),t=(0,c.yd)(S);return(0,d.makeExecutableSchema)({typeDefs:e,resolvers:[t,g,f]})}()),(0,i.useExtendContext)(C),(0,i.useMaskedErrors)({formatError}),(0,n.useGraphQlJit)(),(0,l.useValidationCache)(),(0,s.useParserCache)()]}),b=getEnvelop(),execute=async(e,t={headers:{}})=>{let{operation:r,variables:a,query:o}=e,{operationHash:i,operationName:n}=r.__meta__,s=o??v.get(i);if(null==s)throw Error(`No query found for operationName ${n} and operationHash ${i}`);let l=await b,{parse:c,contextFactory:u,execute:d,schema:p}=l(t),m=await u(t),{data:g,errors:f}=await d({schema:p,document:c(s),variableValues:a,contextValue:m,operationName:n});return{data:g,errors:f,extensions:{cookies:m.storage.cookies,cacheControl:m.cacheControl}}}},9529:(e,t,r)=>{function normalizePLPSlug(e){let t=e.replace(/^\/+|\/+$/g,"");return"/"+(t=t.replace(/\/+/g,"/").replace(/\s+/g,"")).toLowerCase()}function findPLPTemplateBySlug(e,t,r){return e.find(e=>{if(!e.settings?.template?.value)return!1;let a=normalizePLPSlug(e.settings?.template?.value);return a===t||function({rewrites:e,templateValue:t,slug:r}){if(!e)return!1;let a=[];a=Array.isArray(e)?e:[...e?.beforeFiles||[],...e?.afterFiles||[],...e?.fallback||[]];let o=a.find(e=>e.source===t&&e.destination===r);return!!o}({rewrites:r,templateValue:a,slug:t})})}function findBestPLPTemplate(e,t,r){let a=normalizePLPSlug(t),o=findPLPTemplateBySlug(e,a,r);for(;!o&&-1!==a.lastIndexOf("/");)o=findPLPTemplateBySlug(e,a=a.substring(0,a.lastIndexOf("/")),r);return o||e.find(e=>!e.settings?.template?.value)||e[0]}r.d(t,{$j:()=>findBestPDPTemplate,AQ:()=>findBestPLPTemplate});let getSlugsWithoutSkuIdFromPDP=e=>{let t=[],r=e,a=r.match(/-\d+\/p$/);for(;a;){let e=r.replace(/-\d+\/p$/,"/p");t.push(e),a=(r=e).match(/-\d+\/p$/)}return t};function findBestPDPTemplate(e,t){let r=function({itemListElement:e=[]}){let t=[...e].reverse().map(({item:e})=>e),r=t[0],a=getSlugsWithoutSkuIdFromPDP(r);return[r,...a,...t.slice(1)].filter((e,t,r)=>e&&r.indexOf(e)===t)}({itemListElement:t.breadcrumbList.itemListElement??[]});for(let t of r)for(let r of e){if(!r.settings?.template?.value)continue;let e=function(e){let t=e.trim().replace(/^\/+|\/+$/g,"");return t.startsWith("/")||(t="/"+t),t.endsWith("/p")||(t+="/"),(t=t.replace(/\/+/g,"/").replace(/\s+/g,"")).toLowerCase()}(r.settings.template.value);if(e===t)return r}return e.find(e=>!e.settings?.template?.value)||e[0]}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2534,exports.ids=[2534],exports.modules={2534:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return Error}});let l=r(7083),o=l._(r(6689)),n=l._(r(6561)),i={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function _getInitialProps(e){let{res:t,err:r}=e,l=t&&t.statusCode?t.statusCode:r?r.statusCode:404;return{statusCode:l}}let a={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};let Error=class Error extends o.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,r=this.props.title||i[e]||"An unexpected error has occurred";return o.default.createElement("div",{style:a.error},o.default.createElement(n.default,null,o.default.createElement("title",null,e?e+": "+r:"Application error: a client-side exception has occurred")),o.default.createElement("div",{style:a.desc},o.default.createElement("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?o.default.createElement("h1",{className:"next-error-h1",style:a.h1},e):null,o.default.createElement("div",{style:a.wrap},o.default.createElement("h2",{style:a.h2},this.props.title||e?r:o.default.createElement(o.default.Fragment,null,"Application error: a client-side exception has occurred (see the browser console for more information)"),"."))))}};Error.displayName="ErrorPage",Error.getInitialProps=_getInitialProps,Error.origGetInitialProps=_getInitialProps,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2957,exports.ids=[2957],exports.modules={2957:(e,r,t)=>{t.d(r,{w:()=>useProductLink});var i=t(1072),a=t(6689),s=t(9615);let useProductLink=({index:e,product:r,selectedOffer:t})=>{let{slug:n}=r,{currency:{code:c}}=(0,s.kP)(),o=(0,a.useCallback)(()=>{(0,i._)({name:"select_item",params:{items:[{item_id:r.isVariantOf.productGroupID,item_name:r.isVariantOf.name,item_brand:r.brand.name,item_variant:r.sku,index:e,price:r.offers.offers[t].price,discount:r.offers.offers[t].listPrice-r.offers.offers[t].price,currency:c,item_variant_name:r.name,product_reference_id:r.gtin}]}}),(0,i._)({name:"search_select_item",params:{url:window.location.href,items:[{item_id:r.isVariantOf.productGroupID,item_variant:r.sku,index:e}]}})},[c,r,e,t]);return{href:`/${n}/p`,onClick:o,"data-testid":"product-link"}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3057,exports.ids=[3057],exports.modules={3057:e=>{var t,r=function(){function DataLoader(e,t){if("function"!=typeof e)throw TypeError("DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: "+e+".");this._batchLoadFn=e,this._maxBatchSize=function(e){if(!(!e||!1!==e.batch))return 1;var t=e&&e.maxBatchSize;if(void 0===t)return 1/0;if("number"!=typeof t||t<1)throw TypeError("maxBatchSize must be a positive number: "+t);return t}(t),this._batchScheduleFn=function(e){var t=e&&e.batchScheduleFn;if(void 0===t)return n;if("function"!=typeof t)throw TypeError("batchScheduleFn must be a function: "+t);return t}(t),this._cacheKeyFn=function(e){var t=e&&e.cacheKeyFn;if(void 0===t)return function(e){return e};if("function"!=typeof t)throw TypeError("cacheKeyFn must be a function: "+t);return t}(t),this._cacheMap=function(e){if(!(!e||!1!==e.cache))return null;var t=e&&e.cacheMap;if(void 0===t)return new Map;if(null!==t){var r=["get","set","delete","clear"].filter(function(e){return t&&"function"!=typeof t[e]});if(0!==r.length)throw TypeError("Custom cacheMap missing methods: "+r.join(", "))}return t}(t),this._batch=null}var e=DataLoader.prototype;return e.load=function(e){if(null==e)throw TypeError("The loader.load() function must be called with a value, but got: "+String(e)+".");var t=function(e){var t=e._batch;if(null!==t&&!t.hasDispatched&&t.keys.length<e._maxBatchSize&&(!t.cacheHits||t.cacheHits.length<e._maxBatchSize))return t;var r={hasDispatched:!1,keys:[],callbacks:[]};return e._batch=r,e._batchScheduleFn(function(){(function(e,t){if(t.hasDispatched=!0,0===t.keys.length){resolveCacheHits(t);return}var r=e._batchLoadFn(t.keys);if(!r||"function"!=typeof r.then)return failedDispatch(e,t,TypeError("DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: "+String(r)+"."));r.then(function(e){if(!isArrayLike(e))throw TypeError("DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: "+String(e)+".");if(e.length!==t.keys.length)throw TypeError("DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\n\nKeys:\n"+String(t.keys)+"\n\nValues:\n"+String(e));resolveCacheHits(t);for(var r=0;r<t.callbacks.length;r++){var n=e[r];n instanceof Error?t.callbacks[r].reject(n):t.callbacks[r].resolve(n)}}).catch(function(r){failedDispatch(e,t,r)})})(e,r)}),r}(this),r=this._cacheMap,n=this._cacheKeyFn(e);if(r){var a=r.get(n);if(a){var c=t.cacheHits||(t.cacheHits=[]);return new Promise(function(e){c.push(function(){e(a)})})}}t.keys.push(e);var i=new Promise(function(e,r){t.callbacks.push({resolve:e,reject:r})});return r&&r.set(n,i),i},e.loadMany=function(e){if(!isArrayLike(e))throw TypeError("The loader.loadMany() function must be called with Array<key> but got: "+e+".");for(var t=[],r=0;r<e.length;r++)t.push(this.load(e[r]).catch(function(e){return e}));return Promise.all(t)},e.clear=function(e){var t=this._cacheMap;if(t){var r=this._cacheKeyFn(e);t.delete(r)}return this},e.clearAll=function(){var e=this._cacheMap;return e&&e.clear(),this},e.prime=function(e,t){var r=this._cacheMap;if(r){var n,a=this._cacheKeyFn(e);void 0===r.get(a)&&(t instanceof Error?(n=Promise.reject(t)).catch(function(){}):n=Promise.resolve(t),r.set(a,n))}return this},DataLoader}(),n="object"==typeof process&&"function"==typeof process.nextTick?function(e){t||(t=Promise.resolve()),t.then(function(){process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};function failedDispatch(e,t,r){resolveCacheHits(t);for(var n=0;n<t.keys.length;n++)e.clear(t.keys[n]),t.callbacks[n].reject(r)}function resolveCacheHits(e){if(e.cacheHits)for(var t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function isArrayLike(e){return"object"==typeof e&&null!==e&&"number"==typeof e.length&&(0===e.length||e.length>0&&Object.prototype.hasOwnProperty.call(e,e.length-1))}e.exports=r}};