@faststore/core 4.6.1-dev.0 → 4.7.0-dev.0

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 (32) hide show
  1. package/.turbo/turbo-generate.log +4 -4
  2. package/.turbo/turbo-test.log +104 -92
  3. package/@generated/cached-operations.json +1 -0
  4. package/@generated/gql.ts +6 -0
  5. package/@generated/graphql.ts +61 -0
  6. package/@generated/persisted-documents.json +1 -0
  7. package/@generated/schema.graphql +56 -0
  8. package/CHANGELOG.md +6 -0
  9. package/cms/faststore/my-account/components/cms_component__accountlistcards.jsonc +90 -0
  10. package/cms/faststore/my-account/pages/cms_content_type__myaccountcards.jsonc +18 -0
  11. package/package.json +6 -6
  12. package/public/icons.svg +1 -1
  13. package/src/components/account/Layout/Layout.tsx +4 -0
  14. package/src/components/account/cards/MyAccountListCards/MyAccountListCards.tsx +409 -0
  15. package/src/components/account/cards/MyAccountListCards/index.ts +11 -0
  16. package/src/components/account/cards/MyAccountListCards/myAccountListCardsLabels.ts +44 -0
  17. package/src/components/account/cards/MyAccountListCards/styles.module.scss +126 -0
  18. package/src/components/cms/account/Components.ts +2 -0
  19. package/src/components/sections/Account/AccountListCards.tsx +69 -0
  20. package/src/pages/pvt/account/cards/index.tsx +244 -0
  21. package/src/sdk/account/accountPageContext.ts +16 -0
  22. package/src/sdk/account/getB2BSessionClaims.ts +42 -0
  23. package/src/sdk/account/getMyAccountRoutes.ts +7 -0
  24. package/src/server/cms/myAccountDefaultSections.ts +2 -0
  25. package/src/utils/getCookie.ts +8 -1
  26. package/test/components/account/cards/MyAccountListCards.browser.test.tsx +301 -0
  27. package/test/components/sections/Account/AccountListCards.browser.test.tsx +57 -0
  28. package/test/pages/pvt/account/cards/index.test.ts +202 -0
  29. package/test/sdk/account/getB2BSessionClaims.test.ts +48 -0
  30. package/test/sdk/account/getMyAccountRoutes.test.ts +10 -0
  31. package/test/server/index.test.ts +2 -0
  32. package/test/utils/getCookie.test.ts +23 -0
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.6.0 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.6.1-dev.0 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.6.0 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.6.1-dev.0 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,11 +19,11 @@
19
19
  [COMPLETED] Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
20
20
  [COMPLETED] Generate outputs
21
21
 
22
- > @faststore/core@4.6.0 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.6.1-dev.0 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
26
26
  [Info] - Persisted documents at: /home/runner/work/faststore/faststore/packages/core/@generated/persisted-documents.json
27
27
  [Info] - Cached operations output: /home/runner/work/faststore/faststore/packages/core/@generated/cached-operations.json
28
28
  [Success] - GraphQL queries cached with success: 🎉
29
- Queries: ServerAccountPageQuery, ServerCollectionPageQuery, ServerProductQuery, ServerOrderDetailsQuery, ServerListOrdersQuery, ServerProfileQuery, ServerListQuotesQuery, ServerQuotesOrganizationMemberQuery, ServerSecurity, ServerUserDetailsQuery, AvailableContractsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientRecommendationsQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
29
+ Queries: ServerAccountPageQuery, ServerCollectionPageQuery, ServerProductQuery, ServerListCardsQuery, ServerOrderDetailsQuery, ServerListOrdersQuery, ServerProfileQuery, ServerListQuotesQuery, ServerQuotesOrganizationMemberQuery, ServerSecurity, ServerUserDetailsQuery, AvailableContractsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientRecommendationsQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
@@ -1,5 +1,5 @@
1
1
 
2
- > @faststore/core@4.6.0 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.6.1-dev.0 test /home/runner/work/faststore/faststore/packages/core
3
3
  > vitest run
4
4
 
5
5
 
@@ -7,13 +7,19 @@
7
7
 
8
8
  Not implemented: navigation to another Document
9
9
  Not implemented: navigation to another Document
10
- ✓  browser  test/components/ui/ProductGallery/GalleryPageHeightLock.browser.test.tsx (8 tests) 353ms
11
- ✓  browser  test/sdk/ui/useScrollRestoration.browser.test.ts (43 tests) 934ms
12
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2957ms
13
- ✓ shows an error state when the list fails to load  936ms
14
- ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  348ms
15
- ✓ keeps Confirm disabled when the selected contract is filtered out  321ms
16
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 23ms
10
+ Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
11
+ npx update-browserslist-db@latest
12
+ Why you should do it regularly: https://github.com/browserslist/update-db#readme
13
+ ✓  browser  test/sdk/ui/useScrollRestoration.browser.test.ts (43 tests) 1003ms
14
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2752ms
15
+ ✓ shows an error state when the list fails to load  800ms
16
+ ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  326ms
17
+ ✓ keeps Confirm disabled when switching is unavailable  306ms
18
+ ✓  browser  test/components/account/cards/MyAccountListCards.browser.test.tsx (14 tests) 2097ms
19
+ ✓ shows the tab bar and renders Personal cards by default  983ms
20
+ ✓ paginates when there are more than 25 cards  355ms
21
+ ✓  browser  test/components/ui/ProductGallery/GalleryPageHeightLock.browser.test.tsx (8 tests) 288ms
22
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 19ms
17
23
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
18
24
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=3c71b0d3fc2bade14df68abfa271858beb361b12
19
25
   at node:internal/deps/undici/undici:16416:13
@@ -40,14 +46,11 @@ Not implemented: navigation to another Document
40
46
  }
41
47
  }
42
48
 
43
- Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
44
- npx update-browserslist-db@latest
45
- Why you should do it regularly: https://github.com/browserslist/update-db#readme
46
49
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
47
50
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
48
51
 
49
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 295ms
50
- ✓  browser  test/sdk/recommendations/useRecommendationShelf.browser.test.tsx (10 tests) 226ms
52
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 228ms
53
+ ✓  browser  test/sdk/recommendations/useRecommendationShelf.browser.test.tsx (10 tests) 170ms
51
54
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
52
55
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
53
56
 
@@ -133,6 +136,7 @@ act(() => {
133
136
  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
134
137
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
135
138
 
139
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 10ms
136
140
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > uses the fallback invalid-password message when API omits an error
137
141
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
138
142
 
@@ -277,12 +281,11 @@ act(() => {
277
281
  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
278
282
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
279
283
 
280
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1477ms
281
- ✓ renders the password protection form  700ms
282
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 12ms
283
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1472ms
284
- ✓ renders the menu view with contract details and manage footer  941ms
285
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 33ms
284
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1289ms
285
+ ✓ renders the password protection form  498ms
286
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1063ms
287
+ ✓ renders the menu view with contract details and manage footer  678ms
288
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 26ms
286
289
  stderr | test/sdk/localization/store-url.browser.test.ts
287
290
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
288
291
  at waitForSessionValidated (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/waitForSessionValidated.ts:16:32)
@@ -291,10 +294,10 @@ This ensures that you're testing the behavior the user would see in the browser.
291
294
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
292
295
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
293
296
 
294
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 8ms
295
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 45ms
296
- ✓  browser  test/components/templates/SearchPage/SearchWrapper.browser.test.tsx (3 tests) 41ms
297
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 44ms
297
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 5ms
298
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 27ms
299
+ ✓  browser  test/components/templates/SearchPage/SearchWrapper.browser.test.tsx (3 tests) 27ms
300
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 40ms
298
301
  stderr | test/components/account/doLogout.browser.test.ts
299
302
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
300
303
  at waitForSessionValidated (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/waitForSessionValidated.ts:16:32)
@@ -303,9 +306,10 @@ This ensures that you're testing the behavior the user would see in the browser.
303
306
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
304
307
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
305
308
 
306
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 25ms
307
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 250ms
308
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 306ms
309
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 27ms
310
+ ✓  browser  test/components/sections/Account/AccountListCards.browser.test.tsx (3 tests) 85ms
311
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 289ms
312
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 268ms
309
313
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
310
314
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
311
315
  at waitForSessionValidated (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/waitForSessionValidated.ts:16:32)
@@ -314,10 +318,10 @@ This ensures that you're testing the behavior the user would see in the browser.
314
318
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
315
319
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
316
320
 
317
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 8ms
318
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 5ms
319
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 4ms
320
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 28ms
321
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 7ms
322
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 6ms
323
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 3ms
324
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 26ms
321
325
  stderr | test/sdk/account/refreshToken.browser.test.ts
322
326
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
323
327
  at waitForSessionValidated (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/waitForSessionValidated.ts:16:32)
@@ -326,13 +330,13 @@ This ensures that you're testing the behavior the user would see in the browser.
326
330
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
327
331
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
328
332
 
329
- ✓  browser  test/components/skeletons/ProductGridSkeleton.browser.test.tsx (2 tests) 48ms
330
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 4ms
331
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 62ms
332
- ✓  node  test/utils/match-url.test.ts (10 tests) 9ms
333
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 16ms
334
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 151ms
335
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 10ms
333
+ ✓  browser  test/components/skeletons/ProductGridSkeleton.browser.test.tsx (2 tests) 43ms
334
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 5ms
335
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 42ms
336
+ ✓  node  test/utils/match-url.test.ts (10 tests) 11ms
337
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 232ms
338
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 11ms
339
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 11ms
336
340
  stderr | test/components/search/SearchInputComponent.test.tsx
337
341
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
338
342
 
@@ -396,11 +400,19 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
396
400
  at Suspense
397
401
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
398
402
 
399
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 92ms
400
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 17ms
401
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 60ms
402
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 25ms
403
- ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 13ms
403
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 76ms
404
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 53ms
405
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 18ms
406
+ stderr | test/pages/pvt/account/cards/index.test.ts > Cards page getServerSideProps > redirects to /pvt/account/403 when the query fails with 401/403
407
+ { extensions: { status: 401 } }
408
+
409
+ stderr | test/pages/pvt/account/cards/index.test.ts > Cards page getServerSideProps > renders the error state (no redirect) when the query fails with a non-auth status
410
+ { extensions: { status: 502 } }
411
+
412
+ ✓  node  test/pages/pvt/account/cards/index.test.ts (8 tests) 12ms
413
+ ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 7ms
414
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 28ms
415
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 407ms
404
416
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
405
417
  Graphql execution returned with error: [
406
418
  {
@@ -449,7 +461,7 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
449
461
 
450
462
  stderr | test/pages/api/graphql.test.ts > /api/graphql request handling > maps BadRequestError thrown by execute to its status
451
463
  Something unexpected occurred querying Graphql endpoint:
452
- T [FastStoreError]: malformed
464
+ E [FastStoreError]: malformed
453
465
  at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:190:31
454
466
  at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:196:39
455
467
  at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1024:60
@@ -493,65 +505,65 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
493
505
  at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1653:37
494
506
  at Traces.$ (file:///home/runner/work/faststore/faststore/node_modules/.pnpm/vitest@4.0.18_@opentelemetry+api@1.9.0_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sas_13be941c57d55f08f06eeaf1c180ddfe/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js:142:27)
495
507
 
496
- ✓  node  test/pages/api/graphql.test.ts (17 tests) 32ms
497
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 424ms
498
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 823ms
508
+ ✓  node  test/pages/api/graphql.test.ts (17 tests) 33ms
509
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 831ms
499
510
  ✓ navigates with the search term on blur  362ms
500
- ✓ navigates without a label param when the search is cleared  358ms
511
+ ✓ navigates without a label param when the search is cleared  357ms
501
512
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
502
513
  Set password request failed: Bad Request
503
514
 
504
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 41ms
505
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 43ms
515
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 51ms
506
516
  ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 42ms
507
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 8ms
508
- ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 8ms
509
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 61ms
510
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 180ms
511
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 40ms
512
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 35ms
513
- ✓  node  test/server/index.test.ts (7 tests) 904ms
514
- ✓ should return a valid merged GraphQL schema  318ms
515
- ✓ should handle options and execute  303ms
516
- ✓  node  test/proxy.localization.test.ts (5 tests) 42ms
517
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 9ms
518
- ✓  node  test/sdk/session/syncSalesChannelFromOrderForm.test.ts (6 tests) 10ms
519
- ✓  node  test/proxy.test.ts (4 tests) 23ms
520
- ✓  node  test/server/webops-api.test.ts (9 tests) 11ms
521
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 107ms
522
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 38ms
523
- ✓  node  test/server/content/service.test.ts (5 tests) 5ms
524
- ✓  node  test/sdk/cart/waitForSessionValidated.test.ts (5 tests) 12ms
517
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 49ms
518
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 6ms
519
+ ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 7ms
520
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 64ms
521
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (11 tests) 10ms
522
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 165ms
523
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 58ms
524
+ ✓  node  test/server/index.test.ts (7 tests) 866ms
525
+ ✓ should return a valid merged GraphQL schema  314ms
526
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 40ms
527
+ ✓  node  test/proxy.localization.test.ts (5 tests) 50ms
528
+ ✓  node  test/sdk/session/syncSalesChannelFromOrderForm.test.ts (6 tests) 8ms
529
+ ✓  node  test/proxy.test.ts (4 tests) 18ms
530
+ ✓  node  test/server/webops-api.test.ts (9 tests) 14ms
531
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 112ms
532
+ ✓  node  test/server/content/service.test.ts (5 tests) 7ms
533
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 63ms
534
+ ✓  node  test/sdk/cart/waitForSessionValidated.test.ts (5 tests) 11ms
525
535
  ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 9ms
526
536
  ✓  node  test/server/cms/global.test.ts (3 tests) 6ms
527
537
  ✓  node  test/sdk/localization/store-url.test.ts (1 test) 5ms
528
538
  ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 36ms
529
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 152ms
530
- ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 4ms
531
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 8ms
532
- ✓  node  test/pages/api/preview.test.ts (2 tests) 10ms
539
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 146ms
540
+ ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
541
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
542
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 9ms
543
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
533
544
  ✓  node  test/server/rootSpan.test.ts (4 tests) 32ms
534
545
  ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 6ms
535
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
536
- ✓  node  test/sdk/recommendations/vrn.test.ts (5 tests) 6ms
537
- ✓  node  test/server/cms/index.test.ts (2 tests) 4ms
538
- ✓  node  test/utils/retry.test.ts (5 tests) 14ms
539
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 45ms
540
- ✓  node  test/sdk/recommendations/useRecommendationUserId.test.ts (4 tests) 182ms
541
- ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 5ms
542
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 6ms
543
- ✓  node  test/sdk/recommendations/useRecommendations.test.ts (2 tests) 6ms
544
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
545
- ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 3ms
546
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 58ms
546
+ ✓  node  test/sdk/recommendations/vrn.test.ts (5 tests) 5ms
547
+ ✓  node  test/server/cms/index.test.ts (2 tests) 7ms
548
+ ✓  node  test/utils/retry.test.ts (5 tests) 20ms
549
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 39ms
550
+ ✓  node  test/sdk/recommendations/useRecommendationUserId.test.ts (4 tests) 201ms
551
+ ✓  node  test/sdk/account/getB2BSessionClaims.test.ts (4 tests) 6ms
552
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
553
+ ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 7ms
554
+ ✓  node  test/sdk/recommendations/useRecommendations.test.ts (2 tests) 4ms
555
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 6ms
556
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 56ms
557
+ ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 5ms
558
+ ✓  node  test/utils/getCookie.test.ts (4 tests) 5ms
547
559
  ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 4ms
548
- ✓  node  test/instrumentation.test.ts (3 tests) 5ms
549
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 40ms
550
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 16ms
551
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 25ms
552
-
553
-  Test Files  82 passed (82)
554
-  Tests  661 passed (661)
555
-  Start at  18:11:33
556
-  Duration  41.29s (transform 8.25s, setup 0ms, import 32.53s, tests 12.65s, environment 55.04s)
560
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 45ms
561
+ ✓  node  test/instrumentation.test.ts (3 tests) 7ms
562
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 18ms
563
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 24ms
564
+
565
+  Test Files  87 passed (87)
566
+  Tests  695 passed (695)
567
+  Start at  12:28:43
568
+  Duration  43.06s (transform 10.71s, setup 0ms, import 37.10s, tests 13.95s, environment 54.21s)
557
569
 
@@ -2,6 +2,7 @@
2
2
  "ServerAccountPageQuery",
3
3
  "ServerCollectionPageQuery",
4
4
  "ServerProductQuery",
5
+ "ServerListCardsQuery",
5
6
  "ServerOrderDetailsQuery",
6
7
  "ServerListOrdersQuery",
7
8
  "ServerProfileQuery",
package/@generated/gql.ts CHANGED
@@ -31,6 +31,7 @@ type Documents = {
31
31
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": typeof types.ServerAccountPageQueryDocument,
32
32
  "\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,
33
33
  "\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 priceToken\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,
34
+ "\n query ServerListCardsQuery {\n listCreditCards {\n list {\n accountId\n bin\n cardNumber\n cardLabel\n paymentSystem\n paymentSystemName\n isDefault\n isActive\n origin\n }\n }\n accountProfile {\n name\n }\n hasAdHocCardAccess\n }\n": typeof types.ServerListCardsQueryDocument,
34
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,
35
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,
36
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,
@@ -83,6 +84,7 @@ const documents: Documents = {
83
84
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": types.ServerAccountPageQueryDocument,
84
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,
85
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 priceToken\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
+ "\n query ServerListCardsQuery {\n listCreditCards {\n list {\n accountId\n bin\n cardNumber\n cardLabel\n paymentSystem\n paymentSystemName\n isDefault\n isActive\n origin\n }\n }\n accountProfile {\n name\n }\n hasAdHocCardAccess\n }\n": types.ServerListCardsQueryDocument,
86
88
  "\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,
87
89
  "\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,
88
90
  "\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,
@@ -183,6 +185,10 @@ export function gql(source: "\n query ServerCollectionPageQuery($slug: String!)
183
185
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
184
186
  */
185
187
  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 priceToken\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;
188
+ /**
189
+ * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
190
+ */
191
+ export function gql(source: "\n query ServerListCardsQuery {\n listCreditCards {\n list {\n accountId\n bin\n cardNumber\n cardLabel\n paymentSystem\n paymentSystemName\n isDefault\n isActive\n origin\n }\n }\n accountProfile {\n name\n }\n hasAdHocCardAccess\n }\n"): typeof import('./graphql').ServerListCardsQueryDocument;
186
192
  /**
187
193
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
188
194
  */
@@ -141,6 +141,15 @@ export type BusinessHour = {
141
141
  openingTime: Maybe<Scalars['String']['output']>;
142
142
  };
143
143
 
144
+ /**
145
+ * Whether a saved card is personally owned by the buyer or shared by their
146
+ * Organization/Contract. Resolved server-side by the Saved-cards service from
147
+ * the buyer's `useAdHocCard` role — never inferred client-side.
148
+ */
149
+ export type CardOrigin =
150
+ | 'personal'
151
+ | 'shared';
152
+
144
153
  /** Commercial Authorization dimension status. */
145
154
  export type CommercialAuthorizationDimensionStatus = {
146
155
  /** Creation date. */
@@ -883,8 +892,19 @@ export type Query = {
883
892
  availableContracts: Array<StoreContract>;
884
893
  /** Returns the details of a collection based on the collection slug. */
885
894
  collection: StoreCollection;
895
+ /**
896
+ * Whether the current user holds the ad-hoc card platform permission, which
897
+ * gates personal card management for Unit/Contract-affiliated buyers.
898
+ *
899
+ * Resolved from the user's roles by License Manager — it is not a session token
900
+ * claim. Fails open (`true`) when the permission service is unreachable, so an
901
+ * outage never locks buyers out of their own cards.
902
+ */
903
+ hasAdHocCardAccess: Scalars['Boolean']['output'];
886
904
  /** Returns whether the current authenticated user belongs to a B2B organization unit. */
887
905
  isOrganizationMember: Scalars['Boolean']['output'];
906
+ /** Returns the list of saved credit cards for the current user. */
907
+ listCreditCards: Maybe<SavedCardListResult>;
888
908
  /** Returns the list of Orders that the User can view. */
889
909
  listUserOrders: Maybe<UserOrderListMinimalResult>;
890
910
  /** Returns the list of Quotes that the authenticated Buyer can view. */
@@ -1070,6 +1090,41 @@ export type SkuSpecificationValue = {
1070
1090
  originalName: Maybe<Scalars['String']['output']>;
1071
1091
  };
1072
1092
 
1093
+ /** A saved payment card returned by the Saved-cards service. */
1094
+ export type SavedCard = {
1095
+ /** Account identifier that owns the card. */
1096
+ accountId: Maybe<Scalars['String']['output']>;
1097
+ /** First digits of the card (BIN). */
1098
+ bin: Maybe<Scalars['String']['output']>;
1099
+ /**
1100
+ * Buyer- or admin-assigned nickname for the card (e.g. "Team lunch card"), when
1101
+ * the Saved-cards service has one on file. Absent for most cards — callers
1102
+ * should fall back to `paymentSystemName` for display.
1103
+ */
1104
+ cardLabel: Maybe<Scalars['String']['output']>;
1105
+ /** Masked card number, per PCI display rules. */
1106
+ cardNumber: Maybe<Scalars['String']['output']>;
1107
+ /** Whether this card is active. */
1108
+ isActive: Maybe<Scalars['Boolean']['output']>;
1109
+ /** Whether this card is the account default. */
1110
+ isDefault: Maybe<Scalars['Boolean']['output']>;
1111
+ /**
1112
+ * Whether this card is personally owned by the buyer or shared by their
1113
+ * Organization/Contract.
1114
+ */
1115
+ origin: CardOrigin;
1116
+ /** Numeric payment system identifier. */
1117
+ paymentSystem: Maybe<Scalars['String']['output']>;
1118
+ /** Human-readable payment system name (e.g. Visa, Mastercard). */
1119
+ paymentSystemName: Maybe<Scalars['String']['output']>;
1120
+ };
1121
+
1122
+ /** Result of listing the current user's saved credit cards. */
1123
+ export type SavedCardListResult = {
1124
+ /** The list of saved credit cards. */
1125
+ list: Maybe<Array<SavedCard>>;
1126
+ };
1127
+
1073
1128
  /** Search result. */
1074
1129
  export type SearchMetadata = {
1075
1130
  /** Indicates how the search engine corrected the misspelled word by using fuzzy logic. */
@@ -2766,6 +2821,11 @@ export type ServerProductQueryQueryVariables = Exact<{
2766
2821
 
2767
2822
  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, priceToken: string | null, 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 }> } };
2768
2823
 
2824
+ export type ServerListCardsQueryQueryVariables = Exact<{ [key: string]: never; }>;
2825
+
2826
+
2827
+ export type ServerListCardsQueryQuery = { hasAdHocCardAccess: boolean, listCreditCards: { list: Array<{ accountId: string | null, bin: string | null, cardNumber: string | null, cardLabel: string | null, paymentSystem: string | null, paymentSystemName: string | null, isDefault: boolean | null, isActive: boolean | null, origin: CardOrigin }> | null } | null, accountProfile: { name: string | null } };
2828
+
2769
2829
  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 };
2770
2830
 
2771
2831
  export type ServerOrderDetailsQueryQueryVariables = Exact<{
@@ -3558,6 +3618,7 @@ export const SearchEvent_MetadataFragmentDoc = new TypedDocumentString(`
3558
3618
  export const ServerAccountPageQueryDocument = {"__meta__":{"operationName":"ServerAccountPageQuery","operationHash":"9baae331b75848a310fecb457e8c971ae27897ff"}} as unknown as TypedDocumentString<ServerAccountPageQueryQuery, ServerAccountPageQueryQueryVariables>;
3559
3619
  export const ServerCollectionPageQueryDocument = {"__meta__":{"operationName":"ServerCollectionPageQuery","operationHash":"d46841b30ae1f6350021b5cf02f253d56c848664"}} as unknown as TypedDocumentString<ServerCollectionPageQueryQuery, ServerCollectionPageQueryQueryVariables>;
3560
3620
  export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerProductQuery","operationHash":"b89e93519be01aebc01c402489a0ae640d38675a"}} as unknown as TypedDocumentString<ServerProductQueryQuery, ServerProductQueryQueryVariables>;
3621
+ export const ServerListCardsQueryDocument = {"__meta__":{"operationName":"ServerListCardsQuery","operationHash":"392cf85d18d66b94d6ea8d6b2a3c6ffb5c94683d"}} as unknown as TypedDocumentString<ServerListCardsQueryQuery, ServerListCardsQueryQueryVariables>;
3561
3622
  export const ServerOrderDetailsQueryDocument = {"__meta__":{"operationName":"ServerOrderDetailsQuery","operationHash":"bdf677bbccce12186a5ef15aebdce46585a99782"}} as unknown as TypedDocumentString<ServerOrderDetailsQueryQuery, ServerOrderDetailsQueryQueryVariables>;
3562
3623
  export const ServerListOrdersQueryDocument = {"__meta__":{"operationName":"ServerListOrdersQuery","operationHash":"70d06de1da9c11f10ebde31b66fd74eccd456af5"}} as unknown as TypedDocumentString<ServerListOrdersQueryQuery, ServerListOrdersQueryQueryVariables>;
3563
3624
  export const ServerProfileQueryDocument = {"__meta__":{"operationName":"ServerProfileQuery","operationHash":"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f"}} as unknown as TypedDocumentString<ServerProfileQueryQuery, ServerProfileQueryQueryVariables>;
@@ -2,6 +2,7 @@
2
2
  "9baae331b75848a310fecb457e8c971ae27897ff": "query ServerAccountPageQuery { accountProfile { name } }",
3
3
  "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 }",
4
4
  "b89e93519be01aebc01c402489a0ae640d38675a": "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 priceToken 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 priceToken priceValidUntil seller { identifier } } priceCurrency } otherLocales { locale slug } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
5
+ "392cf85d18d66b94d6ea8d6b2a3c6ffb5c94683d": "query ServerListCardsQuery { accountProfile { name } hasAdHocCardAccess listCreditCards { list { accountId bin cardLabel cardNumber isActive isDefault origin paymentSystem paymentSystemName } } }",
5
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 } } }",
6
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 } } }",
7
8
  "672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",