@faststore/core 4.4.0 → 4.5.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 (39) hide show
  1. package/.turbo/turbo-generate.log +4 -4
  2. package/.turbo/turbo-test.log +63 -50
  3. package/@generated/cached-operations.json +2 -0
  4. package/@generated/gql.ts +12 -0
  5. package/@generated/graphql.ts +73 -0
  6. package/@generated/persisted-documents.json +2 -0
  7. package/@generated/schema.graphql +59 -0
  8. package/CHANGELOG.md +10 -0
  9. package/package.json +6 -6
  10. package/src/components/account/Drawer/OrganizationDrawer/OrganizationDrawer.tsx +5 -1
  11. package/src/components/account/Drawer/OrganizationDrawer/OrganizationDrawerBody.tsx +16 -6
  12. package/src/components/account/Layout/Layout.tsx +14 -5
  13. package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotes.tsx +170 -0
  14. package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotesTable/MyAccountListQuotesTable.tsx +194 -0
  15. package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotesTable/MyAccountQuoteStatusBadge.tsx +15 -0
  16. package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesFilterSlider/MyAccountQuotesFilterSlider.tsx +162 -0
  17. package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesFilterSlider/section.module.scss +49 -0
  18. package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesSelectedTags/MyAccountQuotesSelectedTags.tsx +125 -0
  19. package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesStatusSelector/MyAccountQuotesStatusSelector.tsx +107 -0
  20. package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesStatusSelector/styles.module.scss +144 -0
  21. package/src/components/account/quotes/MyAccountListQuotes/index.ts +2 -0
  22. package/src/components/account/quotes/MyAccountListQuotes/quoteFilters.ts +89 -0
  23. package/src/components/account/quotes/MyAccountListQuotes/styles.module.scss +174 -0
  24. package/src/customizations/src/myAccount/extensions/quotes/after.tsx +5 -0
  25. package/src/customizations/src/myAccount/extensions/quotes/before.tsx +5 -0
  26. package/src/pages/pvt/account/quotes/index.tsx +264 -0
  27. package/src/sdk/account/getMyAccountRoutes.ts +7 -0
  28. package/src/utils/quoteStatus.ts +27 -0
  29. package/test/components/account/Layout.test.tsx +62 -0
  30. package/test/components/account/OrganizationDrawerBody.test.tsx +52 -0
  31. package/test/components/quotes/MyAccountListQuotes.test.tsx +232 -0
  32. package/test/components/quotes/MyAccountListQuotesTable.test.tsx +240 -0
  33. package/test/components/quotes/MyAccountQuoteStatusBadge.test.tsx +28 -0
  34. package/test/components/quotes/MyAccountQuotesFilterSlider.test.tsx +152 -0
  35. package/test/components/quotes/MyAccountQuotesSelectedTags.test.tsx +122 -0
  36. package/test/components/quotes/MyAccountQuotesStatusSelector.test.tsx +85 -0
  37. package/test/components/quotes/quoteFilters.test.ts +185 -0
  38. package/test/sdk/account/getMyAccountRoutes.test.ts +90 -0
  39. package/test/server/index.test.ts +2 -0
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.4.0-dev.6 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.4.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.4.0-dev.6 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.4.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.4.0-dev.6 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.4.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, ServerSecurity, ServerUserDetailsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
29
+ Queries: ServerAccountPageQuery, ServerCollectionPageQuery, ServerProductQuery, ServerOrderDetailsQuery, ServerListOrdersQuery, ServerProfileQuery, ServerListQuotesQuery, ServerQuotesOrganizationMemberQuery, ServerSecurity, ServerUserDetailsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
@@ -1,12 +1,20 @@
1
1
 
2
- > @faststore/core@4.4.0-dev.6 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.4.1-dev.0 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/getInitialSession.browser.test.ts (6 tests) 31ms
9
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 52ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 36ms
9
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 46ms
10
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 18ms
11
+ stderr | test/sdk/localization/store-url.browser.test.ts
12
+ Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
13
+ at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
14
+ at onValidate (/home/runner/work/faststore/faststore/packages/core/src/sdk/useStore.ts:18:20)
15
+ at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
16
+  at processTicksAndRejections (node:internal/process/task_queues:103:5)
17
+
10
18
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
11
19
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
12
20
 
@@ -92,7 +100,6 @@ act(() => {
92
100
  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
93
101
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
94
102
 
95
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 20ms
96
103
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > uses the fallback invalid-password message when API omits an error
97
104
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
98
105
 
@@ -237,23 +244,16 @@ act(() => {
237
244
  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
238
245
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
239
246
 
240
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1288ms
241
- ✓ renders the password protection form  512ms
242
- stderr | test/sdk/localization/store-url.browser.test.ts
243
- Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
244
- at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
245
- at onValidate (/home/runner/work/faststore/faststore/packages/core/src/sdk/useStore.ts:18:20)
246
- at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
247
-  at processTicksAndRejections (node:internal/process/task_queues:103:5)
248
-
249
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 85ms
250
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 10ms
251
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 9ms
252
- ✓  node  test/utils/match-url.test.ts (10 tests) 37ms
253
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 164ms
254
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 38ms
255
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 782ms
256
- ✓ returns 405 for non-POST requests  572ms
247
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2105ms
248
+ ✓ renders the password protection form  967ms
249
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 26ms
250
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 11ms
251
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 149ms
252
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 144ms
253
+ ✓  node  test/utils/match-url.test.ts (10 tests) 32ms
254
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 32ms
255
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 801ms
256
+ ✓ returns 405 for non-POST requests  599ms
257
257
  stderr | test/components/search/SearchInputComponent.test.tsx
258
258
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
259
259
 
@@ -318,17 +318,23 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
318
318
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
319
319
 
320
320
  ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 303ms
321
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 22ms
322
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 68ms
323
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 132ms
324
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 61ms
321
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 62ms
322
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 39ms
323
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 253ms
324
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 65ms
325
325
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
326
326
  Set password request failed: Bad Request
327
327
 
328
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 109ms
329
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 8ms
330
- ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 12ms
331
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 53ms
328
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 39ms
329
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 424ms
330
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 25ms
331
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
332
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 837ms
333
+ ✓ navigates with the search term on blur  362ms
334
+ ✓ navigates without a label param when the search is cleared  358ms
335
+ ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 9ms
336
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 49ms
337
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 56ms
332
338
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
333
339
  Graphql execution returned with error: [
334
340
  {
@@ -375,31 +381,38 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
375
381
  { message: 'bad', status: 400, type: 'BadRequestError' }
376
382
  ]
377
383
 
378
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 26ms
379
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 46ms
380
- ✓  node  test/proxy.localization.test.ts (5 tests) 71ms
381
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 46ms
382
- ✓  node  test/proxy.test.ts (4 tests) 29ms
383
- ✓  node  test/server/webops-api.test.ts (9 tests) 17ms
384
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 27ms
385
- ✓  node  test/server/index.test.ts (7 tests) 906ms
386
- ✓ should handle options and execute  454ms
384
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 30ms
385
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 43ms
386
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 173ms
387
+ ✓  node  test/proxy.localization.test.ts (5 tests) 66ms
388
+ ✓  node  test/server/index.test.ts (7 tests) 919ms
389
+ ✓ should return a valid merged GraphQL schema  318ms
390
+ ✓ should handle options and execute  338ms
391
+ ✓  node  test/proxy.test.ts (4 tests) 27ms
392
+ ✓  node  test/server/webops-api.test.ts (9 tests) 27ms
393
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 113ms
394
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 36ms
387
395
  ✓  node  test/server/cms/global.test.ts (3 tests) 6ms
388
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
396
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (8 tests) 10ms
389
397
  ✓  node  test/server/content/service.test.ts (5 tests) 6ms
390
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
391
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 35ms
392
- ✓  node  test/pages/api/preview.test.ts (2 tests) 10ms
398
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 7ms
399
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 5ms
400
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 39ms
401
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 143ms
393
402
  ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 5ms
394
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 10ms
403
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 11ms
404
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 7ms
405
+ ✓  node  test/server/cms/index.test.ts (2 tests) 6ms
395
406
  ✓  node  test/utils/unlockResponse.test.ts (11 tests) 6ms
396
- ✓  node  test/server/cms/index.test.ts (2 tests) 5ms
397
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 4ms
407
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 77ms
408
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
409
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 55ms
398
410
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 4ms
399
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 27ms
411
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 39ms
412
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 27ms
400
413
 
401
-  Test Files  41 passed (41)
402
-  Tests  378 passed (378)
403
-  Start at  14:57:33
404
-  Duration  25.82s (transform 7.55s, setup 0ms, collect 19.82s, tests 4.58s, environment 34.44s, prepare 1.01s)
414
+  Test Files  51 passed (51)
415
+  Tests  458 passed (458)
416
+  Start at  20:08:00
417
+  Duration  32.38s (transform 8.20s, setup 0ms, collect 24.59s, tests 7.46s, environment 42.93s, prepare 1.38s)
405
418
 
@@ -5,6 +5,8 @@
5
5
  "ServerOrderDetailsQuery",
6
6
  "ServerListOrdersQuery",
7
7
  "ServerProfileQuery",
8
+ "ServerListQuotesQuery",
9
+ "ServerQuotesOrganizationMemberQuery",
8
10
  "ServerSecurity",
9
11
  "ServerUserDetailsQuery",
10
12
  "ValidateUser",
package/@generated/gql.ts CHANGED
@@ -35,6 +35,8 @@ type Documents = {
35
35
  "\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
36
  "\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,
37
37
  "\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n": typeof types.ServerProfileQueryDocument,
38
+ "\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n": typeof types.ServerListQuotesQueryDocument,
39
+ "\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n": typeof types.ServerQuotesOrganizationMemberQueryDocument,
38
40
  "\n query ServerSecurity {\n accountProfile {\n name\n }\n userDetails {\n email\n }\n }\n": typeof types.ServerSecurityDocument,
39
41
  "\n query ServerUserDetailsQuery {\n accountProfile {\n name\n }\n userDetails {\n username\n name\n email\n phone\n role\n orgUnit\n }\n }\n": typeof types.ServerUserDetailsQueryDocument,
40
42
  "\n mutation CancelOrderMutation($data: IUserOrderCancel!) {\n cancelOrder(data: $data) {\n data\n }\n }\n": typeof types.CancelOrderMutationDocument,
@@ -82,6 +84,8 @@ const documents: Documents = {
82
84
  "\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,
83
85
  "\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,
84
86
  "\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n": types.ServerProfileQueryDocument,
87
+ "\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n": types.ServerListQuotesQueryDocument,
88
+ "\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n": types.ServerQuotesOrganizationMemberQueryDocument,
85
89
  "\n query ServerSecurity {\n accountProfile {\n name\n }\n userDetails {\n email\n }\n }\n": types.ServerSecurityDocument,
86
90
  "\n query ServerUserDetailsQuery {\n accountProfile {\n name\n }\n userDetails {\n username\n name\n email\n phone\n role\n orgUnit\n }\n }\n": types.ServerUserDetailsQueryDocument,
87
91
  "\n mutation CancelOrderMutation($data: IUserOrderCancel!) {\n cancelOrder(data: $data) {\n data\n }\n }\n": types.CancelOrderMutationDocument,
@@ -189,6 +193,14 @@ export function gql(source: "\n query ServerListOrdersQuery ($page: Int,$perPag
189
193
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
190
194
  */
191
195
  export function gql(source: "\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n"): typeof import('./graphql').ServerProfileQueryDocument;
196
+ /**
197
+ * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
198
+ */
199
+ export function gql(source: "\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n"): typeof import('./graphql').ServerListQuotesQueryDocument;
200
+ /**
201
+ * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
202
+ */
203
+ export function gql(source: "\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n"): typeof import('./graphql').ServerQuotesOrganizationMemberQueryDocument;
192
204
  /**
193
205
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
194
206
  */
@@ -873,8 +873,12 @@ export type Query = {
873
873
  allProducts: StoreProductConnection;
874
874
  /** Returns the details of a collection based on the collection slug. */
875
875
  collection: StoreCollection;
876
+ /** Returns whether the current authenticated user belongs to a B2B organization unit. */
877
+ isOrganizationMember: Scalars['Boolean']['output'];
876
878
  /** Returns the list of Orders that the User can view. */
877
879
  listUserOrders: Maybe<UserOrderListMinimalResult>;
880
+ /** Returns the list of Quotes that the authenticated Buyer can view. */
881
+ listUserQuotes: Maybe<UserQuoteListResult>;
878
882
  /** Returns the status of an Order Entry Service operation by its ID. */
879
883
  orderEntryOperation: Maybe<StoreOrderEntryOperationStatus>;
880
884
  /** Returns the items in an orderForm by its ID. */
@@ -935,6 +939,18 @@ export type QueryListUserOrdersArgs = {
935
939
  };
936
940
 
937
941
 
942
+ export type QueryListUserQuotesArgs = {
943
+ createdAtFrom: InputMaybe<Scalars['String']['input']>;
944
+ createdAtTo: InputMaybe<Scalars['String']['input']>;
945
+ expiresAtFrom: InputMaybe<Scalars['String']['input']>;
946
+ expiresAtTo: InputMaybe<Scalars['String']['input']>;
947
+ label: InputMaybe<Scalars['String']['input']>;
948
+ page: InputMaybe<Scalars['Int']['input']>;
949
+ perPage: InputMaybe<Scalars['Int']['input']>;
950
+ status: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
951
+ };
952
+
953
+
938
954
  export type QueryOrderEntryOperationArgs = {
939
955
  operationId: Scalars['String']['input'];
940
956
  };
@@ -2560,6 +2576,42 @@ export type UserOrderTransactions = {
2560
2576
  transactionId: Maybe<Scalars['String']['output']>;
2561
2577
  };
2562
2578
 
2579
+ /** Pagination metadata for the quotes list. */
2580
+ export type UserQuoteListPaging = {
2581
+ /** Current page number (1-based). */
2582
+ currentPage: Scalars['Int']['output'];
2583
+ /** Number of items per page. */
2584
+ perPage: Scalars['Int']['output'];
2585
+ /** Total number of quotes matching the query. */
2586
+ total: Scalars['Int']['output'];
2587
+ };
2588
+
2589
+ /** Result returned by the listUserQuotes query. */
2590
+ export type UserQuoteListResult = {
2591
+ /** Array of quote summaries for the current page. */
2592
+ list: Array<UserQuoteSummary>;
2593
+ /** Pagination information. */
2594
+ paging: UserQuoteListPaging;
2595
+ };
2596
+
2597
+ /** Summary of a quote returned in list results. */
2598
+ export type UserQuoteSummary = {
2599
+ /** Total amount of the quote. */
2600
+ amount: Scalars['Float']['output'];
2601
+ /** ISO 8601 date-time when the quote was created. */
2602
+ createdAt: Scalars['String']['output'];
2603
+ /** Name or email of the user who created the quote. */
2604
+ createdBy: Maybe<Scalars['String']['output']>;
2605
+ /** ISO 8601 date-time when the quote expires. */
2606
+ expiresAt: Scalars['String']['output'];
2607
+ /** Unique identifier of the quote. */
2608
+ id: Scalars['String']['output'];
2609
+ /** Optional label assigned to the quote. */
2610
+ label: Maybe<Scalars['String']['output']>;
2611
+ /** Status of the quote. */
2612
+ status: Scalars['String']['output'];
2613
+ };
2614
+
2563
2615
  export type ValidateUserData = {
2564
2616
  /** Indicates if the user is valid. */
2565
2617
  isValid: Scalars['Boolean']['output'];
@@ -2645,6 +2697,25 @@ export type ServerProfileQueryQueryVariables = Exact<{ [key: string]: never; }>;
2645
2697
 
2646
2698
  export type ServerProfileQueryQuery = { accountProfile: { name: string | null, email: string | null, id: string | null } };
2647
2699
 
2700
+ export type ServerListQuotesQueryQueryVariables = Exact<{
2701
+ page: InputMaybe<Scalars['Int']['input']>;
2702
+ perPage: InputMaybe<Scalars['Int']['input']>;
2703
+ status: InputMaybe<Array<InputMaybe<Scalars['String']['input']>> | InputMaybe<Scalars['String']['input']>>;
2704
+ createdAtFrom: InputMaybe<Scalars['String']['input']>;
2705
+ createdAtTo: InputMaybe<Scalars['String']['input']>;
2706
+ expiresAtFrom: InputMaybe<Scalars['String']['input']>;
2707
+ expiresAtTo: InputMaybe<Scalars['String']['input']>;
2708
+ label: InputMaybe<Scalars['String']['input']>;
2709
+ }>;
2710
+
2711
+
2712
+ export type ServerListQuotesQueryQuery = { listUserQuotes: { list: Array<{ id: string, status: string, label: string | null, createdAt: string, expiresAt: string, amount: number, createdBy: string | null }>, paging: { total: number, currentPage: number, perPage: number } } | null };
2713
+
2714
+ export type ServerQuotesOrganizationMemberQueryQueryVariables = Exact<{ [key: string]: never; }>;
2715
+
2716
+
2717
+ export type ServerQuotesOrganizationMemberQueryQuery = { isOrganizationMember: boolean };
2718
+
2648
2719
  export type ServerSecurityQueryVariables = Exact<{ [key: string]: never; }>;
2649
2720
 
2650
2721
 
@@ -3367,6 +3438,8 @@ export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerPr
3367
3438
  export const ServerOrderDetailsQueryDocument = {"__meta__":{"operationName":"ServerOrderDetailsQuery","operationHash":"bdf677bbccce12186a5ef15aebdce46585a99782"}} as unknown as TypedDocumentString<ServerOrderDetailsQueryQuery, ServerOrderDetailsQueryQueryVariables>;
3368
3439
  export const ServerListOrdersQueryDocument = {"__meta__":{"operationName":"ServerListOrdersQuery","operationHash":"70d06de1da9c11f10ebde31b66fd74eccd456af5"}} as unknown as TypedDocumentString<ServerListOrdersQueryQuery, ServerListOrdersQueryQueryVariables>;
3369
3440
  export const ServerProfileQueryDocument = {"__meta__":{"operationName":"ServerProfileQuery","operationHash":"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f"}} as unknown as TypedDocumentString<ServerProfileQueryQuery, ServerProfileQueryQueryVariables>;
3441
+ export const ServerListQuotesQueryDocument = {"__meta__":{"operationName":"ServerListQuotesQuery","operationHash":"cce44921361a629c793364adb43319601cc0aa33"}} as unknown as TypedDocumentString<ServerListQuotesQueryQuery, ServerListQuotesQueryQueryVariables>;
3442
+ export const ServerQuotesOrganizationMemberQueryDocument = {"__meta__":{"operationName":"ServerQuotesOrganizationMemberQuery","operationHash":"9ba9119f2a361c83af8ecc703cb28f915df10ac8"}} as unknown as TypedDocumentString<ServerQuotesOrganizationMemberQueryQuery, ServerQuotesOrganizationMemberQueryQueryVariables>;
3370
3443
  export const ServerSecurityDocument = {"__meta__":{"operationName":"ServerSecurity","operationHash":"0890ba3456c40a426893b80b698df7a84cfdd6a1"}} as unknown as TypedDocumentString<ServerSecurityQuery, ServerSecurityQueryVariables>;
3371
3444
  export const ServerUserDetailsQueryDocument = {"__meta__":{"operationName":"ServerUserDetailsQuery","operationHash":"630ec1f47f2710ce3d7895e9131482641f30c837"}} as unknown as TypedDocumentString<ServerUserDetailsQueryQuery, ServerUserDetailsQueryQueryVariables>;
3372
3445
  export const CancelOrderMutationDocument = {"__meta__":{"operationName":"CancelOrderMutation","operationHash":"e2b06da6840614d3c72768e56579b9d3b8e80802"}} as unknown as TypedDocumentString<CancelOrderMutationMutation, CancelOrderMutationMutationVariables>;
@@ -5,6 +5,8 @@
5
5
  "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
6
  "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
7
  "672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",
8
+ "cce44921361a629c793364adb43319601cc0aa33": "query ServerListQuotesQuery($createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String, $page: Int, $perPage: Int, $status: [String]) { listUserQuotes( page: $page perPage: $perPage status: $status createdAtFrom: $createdAtFrom createdAtTo: $createdAtTo expiresAtFrom: $expiresAtFrom expiresAtTo: $expiresAtTo label: $label ) { list { amount createdAt createdBy expiresAt id label status } paging { currentPage perPage total } } }",
9
+ "9ba9119f2a361c83af8ecc703cb28f915df10ac8": "query ServerQuotesOrganizationMemberQuery { isOrganizationMember }",
8
10
  "0890ba3456c40a426893b80b698df7a84cfdd6a1": "query ServerSecurity { accountProfile { name } userDetails { email } }",
9
11
  "630ec1f47f2710ce3d7895e9131482641f30c837": "query ServerUserDetailsQuery { accountProfile { name } userDetails { email name orgUnit phone role username } }",
10
12
  "e2b06da6840614d3c72768e56579b9d3b8e80802": "mutation CancelOrderMutation($data: IUserOrderCancel!) { cancelOrder(data: $data) { data } }",
@@ -941,6 +941,25 @@ type Query {
941
941
  """Filter orders that are pending user approval."""
942
942
  pendingMyApproval: Boolean
943
943
  ): UserOrderListMinimalResult @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
944
+ """Returns the list of Quotes that the authenticated Buyer can view."""
945
+ listUserQuotes(
946
+ """Page number (1-based)."""
947
+ page: Int
948
+ """Number of items per page."""
949
+ perPage: Int
950
+ """Filter by quote status values."""
951
+ status: [String]
952
+ """Filter quotes created on or after this ISO 8601 date-time."""
953
+ createdAtFrom: String
954
+ """Filter quotes created on or before this ISO 8601 date-time."""
955
+ createdAtTo: String
956
+ """Filter quotes expiring on or after this ISO 8601 date-time."""
957
+ expiresAtFrom: String
958
+ """Filter quotes expiring on or before this ISO 8601 date-time."""
959
+ expiresAtTo: String
960
+ """Filter quotes by label (partial match)."""
961
+ label: String
962
+ ): UserQuoteListResult @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
944
963
  """Returns information about the current user details."""
945
964
  userDetails: StoreUserDetails! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
946
965
  """
@@ -949,6 +968,10 @@ type Query {
949
968
  accountProfile: StoreAccountProfile! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
950
969
  """Returns information about the user validation."""
951
970
  validateUser: ValidateUserData @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
971
+ """
972
+ Returns whether the current authenticated user belongs to a B2B organization unit.
973
+ """
974
+ isOrganizationMember: Boolean! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
952
975
  """Returns a list of pickup points near to the given geo coordinates."""
953
976
  pickupPoints(
954
977
  """Geo coordinates input."""
@@ -2588,6 +2611,42 @@ type UserOrderTransactions {
2588
2611
  payments: [UserOrderPayments]
2589
2612
  }
2590
2613
 
2614
+ """Pagination metadata for the quotes list."""
2615
+ type UserQuoteListPaging {
2616
+ """Total number of quotes matching the query."""
2617
+ total: Int!
2618
+ """Current page number (1-based)."""
2619
+ currentPage: Int!
2620
+ """Number of items per page."""
2621
+ perPage: Int!
2622
+ }
2623
+
2624
+ """Result returned by the listUserQuotes query."""
2625
+ type UserQuoteListResult {
2626
+ """Array of quote summaries for the current page."""
2627
+ list: [UserQuoteSummary!]!
2628
+ """Pagination information."""
2629
+ paging: UserQuoteListPaging!
2630
+ }
2631
+
2632
+ """Summary of a quote returned in list results."""
2633
+ type UserQuoteSummary {
2634
+ """Unique identifier of the quote."""
2635
+ id: String!
2636
+ """Status of the quote."""
2637
+ status: String!
2638
+ """Optional label assigned to the quote."""
2639
+ label: String
2640
+ """ISO 8601 date-time when the quote was created."""
2641
+ createdAt: String!
2642
+ """ISO 8601 date-time when the quote expires."""
2643
+ expiresAt: String!
2644
+ """Total amount of the quote."""
2645
+ amount: Float!
2646
+ """Name or email of the user who created the quote."""
2647
+ createdBy: String
2648
+ }
2649
+
2591
2650
  type ValidateUserData {
2592
2651
  """Indicates if the user is valid."""
2593
2652
  isValid: Boolean!
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
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.0](https://github.com/vtex/faststore/compare/v4.4.1-dev.0...v4.5.0-dev.0) (2026-07-03)
7
+
8
+ ### Features
9
+
10
+ - quotes list for B2B buyers in My Account ([#3388](https://github.com/vtex/faststore/issues/3388)) ([a6c1ef6](https://github.com/vtex/faststore/commit/a6c1ef6d13abd1f525832ccca9a5c0dc6a4b1a87)), closes [faststore-dx-spec-kit#13](https://github.com/faststore-dx-spec-kit/issues/13)
11
+
12
+ ## [4.4.1-dev.0](https://github.com/vtex/faststore/compare/v4.4.0...v4.4.1-dev.0) (2026-07-02)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
6
16
  # [4.4.0](https://github.com/vtex/faststore/compare/v4.4.0-dev.6...v4.4.0) (2026-07-02)
7
17
 
8
18
  **Note:** Version bump only for package @faststore/core
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "4.4.0",
3
+ "version": "4.5.0-dev.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -71,11 +71,11 @@
71
71
  "style-loader": "^3.3.1",
72
72
  "swr": "^2.2.5",
73
73
  "use-sync-external-store": "^1.6.0",
74
- "@faststore/api": "4.4.0",
75
- "@faststore/diagnostics": "4.4.0",
76
- "@faststore/sdk": "4.4.0",
77
- "@faststore/ui": "4.4.0",
78
- "@faststore/lighthouse": "4.4.0"
74
+ "@faststore/api": "4.5.0-dev.0",
75
+ "@faststore/diagnostics": "4.5.0-dev.0",
76
+ "@faststore/lighthouse": "4.5.0-dev.0",
77
+ "@faststore/sdk": "4.5.0-dev.0",
78
+ "@faststore/ui": "4.5.0-dev.0"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@cypress/code-coverage": "^3.12.1",
@@ -148,6 +148,7 @@ export const OrganizationDrawer = ({
148
148
  : null
149
149
 
150
150
  const isOrganizationManager = b2b?.organizationManager || false
151
+ const isOrgMember = Boolean(b2b?.unitId)
151
152
 
152
153
  return (
153
154
  <SlideOver
@@ -167,7 +168,10 @@ export const OrganizationDrawer = ({
167
168
  contractName={contractName}
168
169
  contractUrl={contractUrl}
169
170
  />
170
- <OrganizationDrawerBody isRepresentative={isRepresentative} />
171
+ <OrganizationDrawerBody
172
+ isRepresentative={isRepresentative}
173
+ isOrgMember={isOrgMember}
174
+ />
171
175
  <footer data-fs-organization-drawer-footer-wrapper>
172
176
  <ProfileSummary
173
177
  showManageLink={isOrganizationManager}
@@ -3,6 +3,7 @@ import Link from 'src/components/ui/Link'
3
3
  import menuRoutes from 'src/customizations/src/myAccount/navigation'
4
4
  import { useAccountNavigationLabels } from 'src/sdk/account/accountPageContext'
5
5
  import {
6
+ ROUTES_ONLY_FOR_B2B_MEMBERS,
6
7
  USER_DETAILS_ROUTE,
7
8
  getExtraMyAccountRoutes,
8
9
  getMyAccountRoutes,
@@ -12,7 +13,11 @@ const ROUTES_ONLY_FOR_REPRESENTATIVE = [USER_DETAILS_ROUTE]
12
13
 
13
14
  export const OrganizationDrawerBody = ({
14
15
  isRepresentative,
15
- }: { isRepresentative: boolean }) => {
16
+ isOrgMember,
17
+ }: {
18
+ isRepresentative: boolean
19
+ isOrgMember: boolean
20
+ }) => {
16
21
  const navigationLabels = useAccountNavigationLabels()
17
22
 
18
23
  const menuItems = getMyAccountRoutes({
@@ -20,11 +25,16 @@ export const OrganizationDrawerBody = ({
20
25
  labels: navigationLabels,
21
26
  })
22
27
 
23
- const routes = isRepresentative
24
- ? menuItems
25
- : menuItems.filter(
26
- ({ route }) => !ROUTES_ONLY_FOR_REPRESENTATIVE.includes(route)
27
- )
28
+ const routes = (
29
+ isRepresentative
30
+ ? menuItems
31
+ : menuItems.filter(
32
+ ({ route }) => !ROUTES_ONLY_FOR_REPRESENTATIVE.includes(route)
33
+ )
34
+ ).filter(
35
+ ({ route }) => isOrgMember || !ROUTES_ONLY_FOR_B2B_MEMBERS.includes(route)
36
+ )
37
+
28
38
  return (
29
39
  <div data-fs-organization-drawer-body>
30
40
  <div data-fs-organization-drawer-body-contents>