@faststore/core 4.5.0-dev.3 → 4.5.0-dev.4

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.
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.2 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.0-dev.3 generate /home/runner/work/faststore/faststore/packages/core
3
3
  > pnpm run gen-types && pnpm run cache-graphql
4
4
 
5
5
 
6
- > @faststore/core@4.5.0-dev.2 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.0-dev.3 gen-types /home/runner/work/faststore/faststore/packages/core
7
7
  > node ../cli/bin/run generate-types .
8
8
 
9
9
  [STARTED] Parse Configuration
@@ -19,7 +19,7 @@
19
19
  [COMPLETED] Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
20
20
  [COMPLETED] Generate outputs
21
21
 
22
- > @faststore/core@4.5.0-dev.2 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.0-dev.3 cache-graphql /home/runner/work/faststore/faststore/packages/core
23
23
  > node ../cli/bin/run cache-graphql --config=./discovery.config.default.js --queries=./@generated/persisted-documents.json
24
24
 
25
25
  [Info] - Config file location: /home/runner/work/faststore/faststore/packages/core/discovery.config.default.js
@@ -1,11 +1,11 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.2 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.0-dev.3 test /home/runner/work/faststore/faststore/packages/core
3
3
  > vitest run
4
4
 
5
5
 
6
6
   RUN  v4.0.7 /home/runner/work/faststore/faststore/packages/core
7
7
 
8
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 42ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 46ms
9
9
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
10
10
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=32c15f8888ca34f223def7972b7f19090808435a
11
11
   at node:internal/deps/undici/undici:16416:13
@@ -32,12 +32,15 @@
32
32
  }
33
33
  }
34
34
 
35
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2028ms
36
- ✓ shows an error state when the list fails to load  610ms
37
35
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
38
36
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
39
37
 
40
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 282ms
38
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 309ms
39
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2605ms
40
+ ✓ shows an error state when the list fails to load  686ms
41
+ ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  330ms
42
+ ✓ keeps Confirm disabled when the selected contract is filtered out  325ms
43
+ ✓ does not reload when the switch returns false  309ms
41
44
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
42
45
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
43
46
 
@@ -267,12 +270,15 @@ act(() => {
267
270
  This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
268
271
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
269
272
 
270
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1279ms
271
- ✓ renders the password protection form  519ms
272
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 27ms
273
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1699ms
274
- ✓ renders the menu view with contract details and manage footer  978ms
275
- ✓ opens the contract switcher and returns to the menu on back  349ms
273
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2426ms
274
+ ✓ renders the password protection form  917ms
275
+ ✓ posts the password and redirects to the requested return path  368ms
276
+ ✓ defaults returnTo to root and shows API validation errors  312ms
277
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 47ms
278
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2196ms
279
+ ✓ renders the menu view with contract details and manage footer  1127ms
280
+ ✓ opens the contract switcher and returns to the menu on back  383ms
281
+ ✓ resets to the menu when the drawer closes  366ms
276
282
  stderr | test/sdk/localization/store-url.browser.test.ts
277
283
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
278
284
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -280,10 +286,9 @@ This ensures that you're testing the behavior the user would see in the browser.
280
286
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
281
287
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
282
288
 
283
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 92ms
284
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 17ms
285
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 101ms
286
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 145ms
289
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 76ms
290
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 31ms
291
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 63ms
287
292
  stderr | test/components/account/doLogout.browser.test.ts
288
293
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
289
294
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -291,7 +296,8 @@ This ensures that you're testing the behavior the user would see in the browser.
291
296
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
292
297
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
293
298
 
294
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 87ms
299
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 175ms
300
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 80ms
295
301
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
296
302
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
297
303
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -299,11 +305,12 @@ This ensures that you're testing the behavior the user would see in the browser.
299
305
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
300
306
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
301
307
 
302
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 9ms
303
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 286ms
304
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 292ms
305
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 5ms
308
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 311ms
309
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 10ms
310
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 344ms
311
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 4ms
306
312
  ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 3ms
313
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 35ms
307
314
  stderr | test/sdk/account/refreshToken.browser.test.ts
308
315
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
309
316
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -311,12 +318,12 @@ This ensures that you're testing the behavior the user would see in the browser.
311
318
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
312
319
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
313
320
 
314
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 25ms
315
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 6ms
316
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 27ms
317
- ✓  node  test/utils/match-url.test.ts (10 tests) 7ms
318
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 7ms
319
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 195ms
321
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 4ms
322
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 33ms
323
+ ✓  node  test/utils/match-url.test.ts (10 tests) 10ms
324
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 17ms
325
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 226ms
326
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 8ms
320
327
  stderr | test/components/search/SearchInputComponent.test.tsx
321
328
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
322
329
 
@@ -380,23 +387,22 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
380
387
  at Suspense
381
388
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
382
389
 
383
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 67ms
384
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 19ms
385
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 10ms
386
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 72ms
390
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 66ms
391
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 15ms
392
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 73ms
387
393
  ✓  node  test/utils/clearCookies.test.ts (20 tests) 28ms
388
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 329ms
394
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 378ms
389
395
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
390
396
  Set password request failed: Bad Request
391
397
 
392
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 39ms
393
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 24ms
394
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 823ms
395
- ✓ navigates with the search term on blur  359ms
396
- ✓ navigates without a label param when the search is cleared  359ms
398
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 34ms
399
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 28ms
397
400
  ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 6ms
401
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 815ms
402
+ ✓ navigates with the search term on blur  358ms
403
+ ✓ navigates without a label param when the search is cleared  359ms
398
404
  ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 8ms
399
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 38ms
405
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 31ms
400
406
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
401
407
  Graphql execution returned with error: [
402
408
  {
@@ -443,46 +449,48 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
443
449
  { message: 'bad', status: 400, type: 'BadRequestError' }
444
450
  ]
445
451
 
446
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 17ms
447
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 56ms
448
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 50ms
449
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 138ms
450
- ✓  node  test/proxy.localization.test.ts (5 tests) 51ms
451
- ✓  node  test/server/index.test.ts (7 tests) 699ms
452
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 30ms
453
- ✓  node  test/proxy.test.ts (4 tests) 32ms
454
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 38ms
452
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 26ms
453
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 37ms
454
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 58ms
455
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 137ms
456
+ ✓  node  test/proxy.localization.test.ts (5 tests) 76ms
457
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 29ms
458
+ ✓  node  test/server/index.test.ts (7 tests) 1078ms
459
+ ✓ should return a valid merged GraphQL schema  324ms
460
+ ✓ should handle options and execute  527ms
461
+ ✓  node  test/proxy.test.ts (4 tests) 38ms
455
462
  ✓  node  test/server/webops-api.test.ts (9 tests) 21ms
456
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 105ms
457
- ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 9ms
458
- ✓  node  test/server/cms/global.test.ts (3 tests) 5ms
459
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (8 tests) 5ms
463
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 117ms
464
+ ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 8ms
460
465
  ✓  node  test/server/content/service.test.ts (5 tests) 5ms
461
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
466
+ ✓  node  test/server/cms/global.test.ts (3 tests) 5ms
467
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 45ms
468
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (8 tests) 8ms
469
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 5ms
462
470
  ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
463
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 20ms
464
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
465
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 142ms
466
- ✓  node  test/pages/api/preview.test.ts (2 tests) 8ms
467
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 8ms
468
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 7ms
469
- ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 5ms
471
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
472
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 24ms
473
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 151ms
474
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 6ms
475
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 10ms
476
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 9ms
477
+ ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
470
478
  ✓  node  test/server/cms/index.test.ts (2 tests) 6ms
471
479
  ✓  node  test/utils/retry.test.ts (5 tests) 13ms
472
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 37ms
473
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 190ms
474
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 5ms
480
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 195ms
481
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 55ms
482
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
475
483
  ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
476
484
  ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
477
- ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 4ms
478
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 37ms
479
- ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 4ms
480
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 30ms
481
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 9ms
482
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 23ms
485
+ ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 5ms
486
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 42ms
487
+ ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 3ms
488
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 45ms
489
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 13ms
490
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 27ms
483
491
 
484
492
   Test Files  71 passed (71)
485
-  Tests  548 passed (548)
486
-  Start at  21:46:31
487
-  Duration  36.11s (transform 8.70s, setup 0ms, collect 28.71s, tests 9.95s, environment 48.82s, prepare 1.22s)
493
+  Tests  558 passed (558)
494
+  Start at  22:14:55
495
+  Duration  38.19s (transform 8.70s, setup 0ms, collect 29.56s, tests 12.87s, environment 50.72s, prepare 1.34s)
488
496
 
package/@generated/gql.ts CHANGED
@@ -30,8 +30,8 @@ type Documents = {
30
30
  "\n fragment ServerCollectionPage on Query {\n collection(slug: $slug) {\n id\n }\n }\n": typeof types.ServerCollectionPageFragmentDoc,
31
31
  "\n fragment ServerProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n }\n": typeof types.ServerProductFragmentDoc,
32
32
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": typeof types.ServerAccountPageQueryDocument,
33
- "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n": typeof types.ServerCollectionPageQueryDocument,
34
- "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": typeof types.ServerProductQueryDocument,
33
+ "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n": typeof types.ServerCollectionPageQueryDocument,
34
+ "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": typeof types.ServerProductQueryDocument,
35
35
  "\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n": typeof types.UserOrderItemsFragmentFragmentDoc,
36
36
  "\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerOrderDetailsQueryDocument,
37
37
  "\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerListOrdersQueryDocument,
@@ -82,8 +82,8 @@ const documents: Documents = {
82
82
  "\n fragment ServerCollectionPage on Query {\n collection(slug: $slug) {\n id\n }\n }\n": types.ServerCollectionPageFragmentDoc,
83
83
  "\n fragment ServerProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n }\n": types.ServerProductFragmentDoc,
84
84
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": types.ServerAccountPageQueryDocument,
85
- "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n": types.ServerCollectionPageQueryDocument,
86
- "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": types.ServerProductQueryDocument,
85
+ "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n": types.ServerCollectionPageQueryDocument,
86
+ "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": types.ServerProductQueryDocument,
87
87
  "\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n": types.UserOrderItemsFragmentFragmentDoc,
88
88
  "\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerOrderDetailsQueryDocument,
89
89
  "\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerListOrdersQueryDocument,
@@ -182,11 +182,11 @@ export function gql(source: "\n query ServerAccountPageQuery {\n accountProf
182
182
  /**
183
183
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
184
184
  */
185
- export function gql(source: "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n"): typeof import('./graphql').ServerCollectionPageQueryDocument;
185
+ export function gql(source: "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n"): typeof import('./graphql').ServerCollectionPageQueryDocument;
186
186
  /**
187
187
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
188
188
  */
189
- export function gql(source: "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n"): typeof import('./graphql').ServerProductQueryDocument;
189
+ export function gql(source: "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n"): typeof import('./graphql').ServerProductQueryDocument;
190
190
  /**
191
191
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
192
192
  */
@@ -1292,6 +1292,11 @@ export type StoreCollection = {
1292
1292
  id: Scalars['ID']['output'];
1293
1293
  /** Collection meta information. Used for search. */
1294
1294
  meta: StoreCollectionMeta;
1295
+ /**
1296
+ * Localized versions of this collection for all available locales.
1297
+ * Only populated when localization is enabled.
1298
+ */
1299
+ otherLocales: Maybe<Array<StoreCollectionLocale>>;
1295
1300
  /** Meta tag data. */
1296
1301
  seo: StoreSeo;
1297
1302
  /** Corresponding collection URL slug, with which to retrieve this entity. */
@@ -1324,25 +1329,46 @@ export type StoreCollectionFacet = {
1324
1329
  value: Scalars['String']['output'];
1325
1330
  };
1326
1331
 
1332
+ /** Localized collection data for a specific locale. */
1333
+ export type StoreCollectionLocale = {
1334
+ /** Locale code (e.g. "pt-BR", "it-IT"). */
1335
+ locale: Scalars['String']['output'];
1336
+ /** Localized collection slug (e.g. "vestuario/camisetas"). */
1337
+ slug: Scalars['String']['output'];
1338
+ };
1339
+
1327
1340
  /** Collection meta information. Used for search. */
1328
1341
  export type StoreCollectionMeta = {
1329
1342
  /** List of selected collection facets. */
1330
1343
  selectedFacets: Array<StoreCollectionFacet>;
1331
1344
  };
1332
1345
 
1333
- /** Product collection type. Possible values are `Department`, `Category`, `Brand`, `Cluster`, `SubCategory` or `Collection`. */
1346
+ /**
1347
+ * Product collection type. Possible values are `Department`, `Category`, `Brand` or `Collection`.
1348
+ *
1349
+ * `SubCategory` and `Cluster` are still declared for backward compatibility but are
1350
+ * deprecated and never returned.
1351
+ */
1334
1352
  export type StoreCollectionType =
1335
1353
  /** Product brand. */
1336
1354
  | 'Brand'
1337
1355
  /** Second level of product categorization. */
1338
1356
  | 'Category'
1339
- /** Product cluster. */
1357
+ /**
1358
+ * Product cluster.
1359
+ *
1360
+ * Deprecated: never returned — clusters resolve as `Collection`.
1361
+ */
1340
1362
  | 'Cluster'
1341
1363
  /** Product collection. */
1342
1364
  | 'Collection'
1343
1365
  /** First level of product categorization. */
1344
1366
  | 'Department'
1345
- /** Third level of product categorization. */
1367
+ /**
1368
+ * Third level of product categorization.
1369
+ *
1370
+ * Deprecated: never returned — third-level categories resolve as `Category`.
1371
+ */
1346
1372
  | 'SubCategory';
1347
1373
 
1348
1374
  /** A commercial contract available to a buyer's Organization Unit. */
@@ -1604,6 +1630,11 @@ export type StoreProduct = {
1604
1630
  name: Scalars['String']['output'];
1605
1631
  /** Aggregate offer information. */
1606
1632
  offers: StoreAggregateOffer;
1633
+ /**
1634
+ * Localized versions of this product for all available locales.
1635
+ * Only populated when localization is enabled.
1636
+ */
1637
+ otherLocales: Maybe<Array<StoreProductLocale>>;
1607
1638
  /** Product ID, such as [ISBN](https://www.isbn-international.org/content/what-isbn) or similar global IDs. */
1608
1639
  productID: Scalars['String']['output'];
1609
1640
  /** The product's release date. Formatted using https://en.wikipedia.org/wiki/ISO_8601 */
@@ -1665,6 +1696,14 @@ export type StoreProductGroup = {
1665
1696
  skuVariants: Maybe<SkuVariants>;
1666
1697
  };
1667
1698
 
1699
+ /** Localized product data for a specific locale. */
1700
+ export type StoreProductLocale = {
1701
+ /** Locale code (e.g. "pt-BR", "it-IT"). */
1702
+ locale: Scalars['String']['output'];
1703
+ /** Localized product slug including the SKU ID suffix (e.g. "adidas-polo-uomo-65"). */
1704
+ slug: Scalars['String']['output'];
1705
+ };
1706
+
1668
1707
  /** Properties that can be associated with products and products groups. */
1669
1708
  export type StorePropertyValue = {
1670
1709
  /** Property name. */
@@ -2713,14 +2752,14 @@ export type ServerCollectionPageQueryQueryVariables = Exact<{
2713
2752
  }>;
2714
2753
 
2715
2754
 
2716
- export type ServerCollectionPageQueryQuery = { collection: { id: string, seo: { title: string, description: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, meta: { selectedFacets: Array<{ key: string, value: string }> } } };
2755
+ export type ServerCollectionPageQueryQuery = { collection: { id: string, seo: { title: string, description: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, meta: { selectedFacets: Array<{ key: string, value: string }> }, otherLocales: Array<{ locale: string, slug: string }> | null } };
2717
2756
 
2718
2757
  export type ServerProductQueryQueryVariables = Exact<{
2719
2758
  locator: Array<IStoreSelectedFacet> | IStoreSelectedFacet;
2720
2759
  }>;
2721
2760
 
2722
2761
 
2723
- export type ServerProductQueryQuery = { product: { sku: string, gtin: string, mpn: string, name: string, description: string, releaseDate: string, unitMultiplier: number | null, id: string, seo: { title: string, description: string, canonical: string }, brand: { name: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, image: Array<{ url: string, alternateName: string }>, offers: { lowPrice: number, highPrice: number, lowPriceWithTaxes: number, priceCurrency: string, offers: Array<{ availability: string, price: number, priceValidUntil: string, priceCurrency: string, itemCondition: string, priceWithTaxes: number, listPrice: number, listPriceWithTaxes: number, quantity: number, seller: { identifier: string } }> }, isVariantOf: { name: string, productGroupID: string, skuVariants: { activeVariations: any | null, slugsMap: any | null, availableVariations: any | null, allVariantProducts: Array<{ name: string, productID: string }> | null } | null }, additionalProperty: Array<{ propertyID: string, name: string, value: any, valueReference: any }> } };
2762
+ export type ServerProductQueryQuery = { product: { sku: string, gtin: string, mpn: string, name: string, description: string, releaseDate: string, unitMultiplier: number | null, id: string, seo: { title: string, description: string, canonical: string }, brand: { name: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, image: Array<{ url: string, alternateName: string }>, offers: { lowPrice: number, highPrice: number, lowPriceWithTaxes: number, priceCurrency: string, offers: Array<{ availability: string, price: number, priceValidUntil: string, priceCurrency: string, itemCondition: string, priceWithTaxes: number, listPrice: number, listPriceWithTaxes: number, quantity: number, seller: { identifier: string } }> }, isVariantOf: { name: string, productGroupID: string, skuVariants: { activeVariations: any | null, slugsMap: any | null, availableVariations: any | null, allVariantProducts: Array<{ name: string, productID: string }> | null } | null }, otherLocales: Array<{ locale: string, slug: string }> | null, additionalProperty: Array<{ propertyID: string, name: string, value: any, valueReference: any }> } };
2724
2763
 
2725
2764
  export type UserOrderItemsFragmentFragment = { id: string | null, name: string | null, quantity: number | null, sellingPrice: number | null, unitMultiplier: number | null, measurementUnit: string | null, imageUrl: string | null, detailUrl: string | null, refId: string | null, rewardValue: number | null };
2726
2765
 
@@ -3499,8 +3538,8 @@ export const SearchEvent_MetadataFragmentDoc = new TypedDocumentString(`
3499
3538
  `, {"fragmentName":"SearchEvent_metadata"}) as unknown as TypedDocumentString<SearchEvent_MetadataFragment, unknown>;
3500
3539
  export const ClientRecommendationsQueryDocument = {"__meta__":{"operationName":"ClientRecommendationsQuery","operationHash":"db61ca57203036d24d5e1e2c9e40d6d0906f0056"}} as unknown as TypedDocumentString<ClientRecommendationsQueryQuery, ClientRecommendationsQueryQueryVariables>;
3501
3540
  export const ServerAccountPageQueryDocument = {"__meta__":{"operationName":"ServerAccountPageQuery","operationHash":"9baae331b75848a310fecb457e8c971ae27897ff"}} as unknown as TypedDocumentString<ServerAccountPageQueryQuery, ServerAccountPageQueryQueryVariables>;
3502
- export const ServerCollectionPageQueryDocument = {"__meta__":{"operationName":"ServerCollectionPageQuery","operationHash":"4b33c5c07f440dc7489e55619dc2211a13786e72"}} as unknown as TypedDocumentString<ServerCollectionPageQueryQuery, ServerCollectionPageQueryQueryVariables>;
3503
- export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerProductQuery","operationHash":"f03d0963fed159ac4bbe11f90ea09c635a66b68c"}} as unknown as TypedDocumentString<ServerProductQueryQuery, ServerProductQueryQueryVariables>;
3541
+ export const ServerCollectionPageQueryDocument = {"__meta__":{"operationName":"ServerCollectionPageQuery","operationHash":"d46841b30ae1f6350021b5cf02f253d56c848664"}} as unknown as TypedDocumentString<ServerCollectionPageQueryQuery, ServerCollectionPageQueryQueryVariables>;
3542
+ export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerProductQuery","operationHash":"c51aaec5d4ed39e5b8d7d65f460fcd2bc8645346"}} as unknown as TypedDocumentString<ServerProductQueryQuery, ServerProductQueryQueryVariables>;
3504
3543
  export const ServerOrderDetailsQueryDocument = {"__meta__":{"operationName":"ServerOrderDetailsQuery","operationHash":"bdf677bbccce12186a5ef15aebdce46585a99782"}} as unknown as TypedDocumentString<ServerOrderDetailsQueryQuery, ServerOrderDetailsQueryQueryVariables>;
3505
3544
  export const ServerListOrdersQueryDocument = {"__meta__":{"operationName":"ServerListOrdersQuery","operationHash":"70d06de1da9c11f10ebde31b66fd74eccd456af5"}} as unknown as TypedDocumentString<ServerListOrdersQueryQuery, ServerListOrdersQueryQueryVariables>;
3506
3545
  export const ServerProfileQueryDocument = {"__meta__":{"operationName":"ServerProfileQuery","operationHash":"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f"}} as unknown as TypedDocumentString<ServerProfileQueryQuery, ServerProfileQueryQueryVariables>;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "db61ca57203036d24d5e1e2c9e40d6d0906f0056": "fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } advertisement { adId adResponseId } brand { brandName: name } brand { name } deliveryPromiseBadges { typeName } gtin hasSpecifications image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantsByName availableVariations slugsMap } } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku slug unitMultiplier unitMultiplier } query ClientRecommendationsQuery($campaignVrn: String!, $products: [String!], $userId: String) { recommendations(userId: $userId, campaignVrn: $campaignVrn, products: $products) { campaign { id title type } correlationId products { ...ProductSummary_product } } }",
3
3
  "9baae331b75848a310fecb457e8c971ae27897ff": "query ServerAccountPageQuery { accountProfile { name } }",
4
- "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 }",
5
- "f03d0963fed159ac4bbe11f90ea09c635a66b68c": "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 allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity 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 } mpn name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
4
+ "d46841b30ae1f6350021b5cf02f253d56c848664": "fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } otherLocales { locale slug } seo { description title } } ...ServerCollectionPage }",
5
+ "c51aaec5d4ed39e5b8d7d65f460fcd2bc8645346": "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 allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity 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 } mpn name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } otherLocales { locale slug } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
6
6
  "bdf677bbccce12186a5ef15aebdce46585a99782": "query ServerOrderDetailsQuery($orderId: String!) { accountProfile { name } userOrder(orderId: $orderId) { allowCancellation budgetData { budgets { allocations { id linkedEntity { id } reservations } balance { remaining } id name } } canProcessOrderAuthorization clientProfileData { corporateName email firstName isCorporate lastName phone } creationDate customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity sellingPrice tax taxPriceTagsTotal total uniqueId } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } ruleForAuthorization { dimensionId orderAuthorizationId rule { authorizationData { authorizers { authorizationDate email id type } requireAllApprovals } authorizedEmails doId id isUserAuthorized isUserNextAuthorizer name notification priority scoreInterval { accept deny } status timeout trigger { condition { conditionType description expression greatherThan lessThan } effect { description effectType funcPath } } } } shopper { email firstName lastName phone } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
7
7
  "70d06de1da9c11f10ebde31b66fd74eccd456af5": "query ServerListOrdersQuery($clientEmail: String, $dateFinal: String, $dateInitial: String, $page: Int, $pendingMyApproval: Boolean, $perPage: Int, $status: [String], $text: String) { accountProfile { name } listUserOrders( page: $page perPage: $perPage status: $status dateInitial: $dateInitial dateFinal: $dateFinal text: $text clientEmail: $clientEmail pendingMyApproval: $pendingMyApproval ) { list { ShippingEstimatedDate clientName creationDate currencyCode customFields { type value } items { description ean id price productId quantity refId seller sellingPrice } orderId status statusDescription totalValue } paging { currentPage pages perPage total } } }",
8
8
  "672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",
@@ -1268,6 +1268,11 @@ type StoreCollection {
1268
1268
  slug: String!
1269
1269
  """Collection type."""
1270
1270
  type: StoreCollectionType!
1271
+ """
1272
+ Localized versions of this collection for all available locales.
1273
+ Only populated when localization is enabled.
1274
+ """
1275
+ otherLocales: [StoreCollectionLocale!]
1271
1276
  }
1272
1277
 
1273
1278
  """
@@ -1302,6 +1307,14 @@ type StoreCollectionFacet {
1302
1307
  value: String!
1303
1308
  }
1304
1309
 
1310
+ """Localized collection data for a specific locale."""
1311
+ type StoreCollectionLocale {
1312
+ """Locale code (e.g. "pt-BR", "it-IT")."""
1313
+ locale: String!
1314
+ """Localized collection slug (e.g. "vestuario/camisetas")."""
1315
+ slug: String!
1316
+ }
1317
+
1305
1318
  """Collection meta information. Used for search."""
1306
1319
  type StoreCollectionMeta {
1307
1320
  """List of selected collection facets."""
@@ -1309,19 +1322,30 @@ type StoreCollectionMeta {
1309
1322
  }
1310
1323
 
1311
1324
  """
1312
- Product collection type. Possible values are `Department`, `Category`, `Brand`, `Cluster`, `SubCategory` or `Collection`.
1325
+ Product collection type. Possible values are `Department`, `Category`, `Brand` or `Collection`.
1326
+
1327
+ `SubCategory` and `Cluster` are still declared for backward compatibility but are
1328
+ deprecated and never returned.
1313
1329
  """
1314
1330
  enum StoreCollectionType {
1315
1331
  """First level of product categorization."""
1316
1332
  Department
1317
1333
  """Second level of product categorization."""
1318
1334
  Category
1319
- """Third level of product categorization."""
1320
- SubCategory
1335
+ """
1336
+ Third level of product categorization.
1337
+
1338
+ Deprecated: never returned — third-level categories resolve as `Category`.
1339
+ """
1340
+ SubCategory @deprecated(reason: "Never returned since the by-linkid migration: the category response only exposes `fatherCategoryId`, which distinguishes root from non-root but not tree depth, so third-level categories resolve as `Category`. Scheduled for removal in the next major.")
1321
1341
  """Product brand."""
1322
1342
  Brand
1323
- """Product cluster."""
1324
- Cluster
1343
+ """
1344
+ Product cluster.
1345
+
1346
+ Deprecated: never returned — clusters resolve as `Collection`.
1347
+ """
1348
+ Cluster @deprecated(reason: "Never returned since the by-linkid migration: clusters and curated collections are both served by `collection/by-linkid`, whose response carries no discriminator between them, so both resolve as `Collection`. Scheduled for removal in the next major.")
1325
1349
  """Product collection."""
1326
1350
  Collection
1327
1351
  }
@@ -1634,6 +1658,11 @@ type StoreProduct {
1634
1658
  specificationGroups: [SpecificationGroup!]!
1635
1659
  """Delivery Promise product's badge."""
1636
1660
  deliveryPromiseBadges: [DeliveryPromiseBadge]
1661
+ """
1662
+ Localized versions of this product for all available locales.
1663
+ Only populated when localization is enabled.
1664
+ """
1665
+ otherLocales: [StoreProductLocale!]
1637
1666
  }
1638
1667
 
1639
1668
  """
@@ -1682,6 +1711,16 @@ type StoreProductGroup {
1682
1711
  skuVariants: SkuVariants
1683
1712
  }
1684
1713
 
1714
+ """Localized product data for a specific locale."""
1715
+ type StoreProductLocale {
1716
+ """Locale code (e.g. "pt-BR", "it-IT")."""
1717
+ locale: String!
1718
+ """
1719
+ Localized product slug including the SKU ID suffix (e.g. "adidas-polo-uomo-65").
1720
+ """
1721
+ slug: String!
1722
+ }
1723
+
1685
1724
  """Properties that can be associated with products and products groups."""
1686
1725
  type StorePropertyValue {
1687
1726
  """
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.5.0-dev.4](https://github.com/vtex/faststore/compare/v4.5.0-dev.3...v4.5.0-dev.4) (2026-07-24)
7
+
8
+ ### Features
9
+
10
+ - **core:** localized product URLs, breadcrumbs PDP and PLPs ([#3402](https://github.com/vtex/faststore/issues/3402)) ([3c6b6ef](https://github.com/vtex/faststore/commit/3c6b6ef29ef902ccae3ff784297b24e6c6bc7802)), closes [#3352](https://github.com/vtex/faststore/issues/3352) [#3401](https://github.com/vtex/faststore/issues/3401)
11
+
6
12
  # [4.5.0-dev.3](https://github.com/vtex/faststore/compare/v4.5.0-dev.2...v4.5.0-dev.3) (2026-07-22)
7
13
 
8
14
  ### Features