@faststore/core 4.5.0 → 4.5.1-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.7 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.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.5.0-dev.7 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.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,7 +19,7 @@
19
19
  [COMPLETED] Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
20
20
  [COMPLETED] Generate outputs
21
21
 
22
- > @faststore/core@4.5.0-dev.7 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.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
@@ -1,11 +1,11 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.7 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.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/reconcileSessionLocale.browser.test.ts (5 tests) 27ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 62ms
9
9
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
10
10
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=8199d03debb0a6751ec53d8ee8987b78d0292acb
11
11
   at node:internal/deps/undici/undici:16416:13
@@ -35,11 +35,14 @@
35
35
  Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
36
36
  npx update-browserslist-db@latest
37
37
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
38
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 792ms
39
38
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
40
39
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
41
40
 
42
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 122ms
41
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 263ms
42
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2181ms
43
+ ✓ shows an error state when the list fails to load  654ms
44
+ ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  308ms
45
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 23ms
43
46
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
44
47
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
45
48
 
@@ -77,7 +80,6 @@ act(() => {
77
80
  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
78
81
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
79
82
 
80
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 16ms
81
83
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > defaults returnTo to root and shows API validation errors
82
84
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
83
85
 
@@ -270,11 +272,13 @@ act(() => {
270
272
  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
271
273
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
272
274
 
273
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1373ms
274
- ✓ renders the password protection form  697ms
275
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 55ms
276
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1214ms
277
- ✓ renders the menu view with contract details and manage footer  756ms
275
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2364ms
276
+ ✓ renders the password protection form  1042ms
277
+ ✓ posts the password and redirects to the requested return path  380ms
278
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 83ms
279
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2231ms
280
+ ✓ renders the menu view with contract details and manage footer  1175ms
281
+ ✓ opens the contract switcher and returns to the menu on back  423ms
278
282
  stderr | test/sdk/localization/store-url.browser.test.ts
279
283
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
280
284
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -282,8 +286,9 @@ This ensures that you're testing the behavior the user would see in the browser.
282
286
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
283
287
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
284
288
 
285
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 6ms
286
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 94ms
289
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 18ms
290
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 135ms
291
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 131ms
287
292
  stderr | test/components/account/doLogout.browser.test.ts
288
293
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
289
294
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -291,9 +296,7 @@ This ensures that you're testing the behavior the user would see in the browser.
291
296
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
292
297
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
293
298
 
294
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 47ms
295
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 17ms
296
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 195ms
299
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 33ms
297
300
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
298
301
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
299
302
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -301,11 +304,12 @@ This ensures that you're testing the behavior the user would see in the browser.
301
304
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
302
305
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
303
306
 
304
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 6ms
305
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 208ms
306
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 3ms
307
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 15ms
308
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 2ms
307
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 13ms
308
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 290ms
309
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 349ms
310
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 4ms
311
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 5ms
312
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 29ms
309
313
  stderr | test/sdk/account/refreshToken.browser.test.ts
310
314
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
311
315
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -313,12 +317,12 @@ This ensures that you're testing the behavior the user would see in the browser.
313
317
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
314
318
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
315
319
 
316
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 24ms
317
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 6ms
318
- ✓  node  test/utils/match-url.test.ts (10 tests) 5ms
319
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 7ms
320
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 149ms
321
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 5ms
320
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 34ms
321
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 5ms
322
+ ✓  node  test/utils/match-url.test.ts (10 tests) 12ms
323
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 309ms
324
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 16ms
325
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 11ms
322
326
  stderr | test/components/search/SearchInputComponent.test.tsx
323
327
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
324
328
 
@@ -382,23 +386,23 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
382
386
  at Suspense
383
387
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
384
388
 
385
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 60ms
386
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 7ms
387
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 32ms
388
- ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 4ms
389
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 20ms
389
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 81ms
390
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 16ms
391
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 44ms
392
+ ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 11ms
393
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 29ms
390
394
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
391
395
  Set password request failed: Bad Request
392
396
 
393
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 27ms
394
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 276ms
395
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 20ms
396
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 3ms
397
- ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 6ms
398
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 22ms
399
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 792ms
400
- ✓ navigates with the search term on blur  358ms
401
- ✓ navigates without a label param when the search is cleared  357ms
397
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 45ms
398
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 443ms
399
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 25ms
400
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
401
+ ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
402
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 30ms
403
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 854ms
404
+ ✓ navigates with the search term on blur  369ms
405
+ ✓ navigates without a label param when the search is cleared  361ms
402
406
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
403
407
  Graphql execution returned with error: [
404
408
  {
@@ -438,7 +442,6 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
438
442
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > omits the free-text message from the body in production
439
443
  Graphql execution returned with error: [ { message: 'invalid CEP', status: 400, type: 'BadRequestError' } ]
440
444
 
441
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 22ms
442
445
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > uses the first recoverable FastStoreError when several errors exist
443
446
  Graphql execution returned with error: [
444
447
  { message: 'plain error', status: undefined, type: undefined },
@@ -446,47 +449,49 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
446
449
  { message: 'bad', status: 400, type: 'BadRequestError' }
447
450
  ]
448
451
 
449
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 36ms
450
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 108ms
451
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 40ms
452
- ✓  node  test/proxy.localization.test.ts (5 tests) 46ms
453
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 6ms
454
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 28ms
455
- ✓  node  test/server/index.test.ts (7 tests) 816ms
456
- ✓ should handle options and execute  386ms
457
- ✓  node  test/proxy.test.ts (4 tests) 29ms
458
- ✓  node  test/server/webops-api.test.ts (9 tests) 20ms
459
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 62ms
460
- ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 6ms
461
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 24ms
462
- ✓  node  test/server/content/service.test.ts (5 tests) 4ms
452
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 29ms
453
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 61ms
454
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 41ms
455
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 161ms
456
+ ✓  node  test/proxy.localization.test.ts (5 tests) 43ms
457
+ ✓  node  test/server/index.test.ts (7 tests) 1015ms
458
+ ✓ should return a valid merged GraphQL schema  319ms
459
+ ✓ should handle options and execute  431ms
460
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 14ms
461
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 44ms
462
+ ✓  node  test/proxy.test.ts (4 tests) 20ms
463
+ ✓  node  test/server/webops-api.test.ts (9 tests) 21ms
464
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 108ms
465
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 42ms
466
+ ✓  node  test/server/content/service.test.ts (5 tests) 6ms
467
+ ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 8ms
463
468
  ✓  node  test/server/cms/global.test.ts (3 tests) 4ms
464
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 2ms
465
- ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 3ms
466
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 4ms
467
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 15ms
468
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 86ms
469
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 3ms
470
- ✓  node  test/pages/api/preview.test.ts (2 tests) 6ms
471
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 5ms
472
- ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 3ms
473
- ✓  node  test/server/cms/index.test.ts (2 tests) 4ms
474
- ✓  node  test/utils/retry.test.ts (5 tests) 10ms
475
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 26ms
476
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 180ms
477
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 4ms
478
- ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 4ms
479
- ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 2ms
480
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 3ms
481
- ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 2ms
482
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 32ms
469
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 5ms
470
+ ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
471
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
472
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 33ms
473
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 140ms
474
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 6ms
475
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 11ms
476
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
477
+ ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
478
+ ✓  node  test/server/cms/index.test.ts (2 tests) 5ms
479
+ ✓  node  test/utils/retry.test.ts (5 tests) 15ms
480
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 42ms
481
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 195ms
482
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
483
+ ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 5ms
484
+ ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
485
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
486
+ ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 5ms
487
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 38ms
483
488
  ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 3ms
484
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 27ms
485
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 7ms
486
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 16ms
489
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 42ms
490
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 12ms
491
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 26ms
487
492
 
488
493
   Test Files  73 passed (73)
489
494
   Tests  570 passed (570)
490
-  Start at  22:22:18
491
-  Duration  23.36s (transform 6.57s, setup 0ms, collect 19.79s, tests 7.36s, environment 29.70s, prepare 711ms)
495
+  Start at  15:41:47
496
+  Duration  38.79s (transform 9.13s, setup 0ms, collect 32.09s, tests 12.43s, environment 50.66s, prepare 1.37s)
492
497
 
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
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.1-dev.1](https://github.com/vtex/faststore/compare/v4.5.1-dev.0...v4.5.1-dev.1) (2026-08-04)
7
+
8
+ **Note:** Version bump only for package @faststore/core
9
+
10
+ ## [4.5.1-dev.0](https://github.com/vtex/faststore/compare/v4.5.0...v4.5.1-dev.0) (2026-08-03)
11
+
12
+ **Note:** Version bump only for package @faststore/core
13
+
6
14
  # [4.5.0](https://github.com/vtex/faststore/compare/v4.5.0-dev.7...v4.5.0) (2026-08-03)
7
15
 
8
16
  **Note:** Version bump only for package @faststore/core
@@ -1,6 +1,6 @@
1
1
  {
2
2
  // This should be automatically updated and point to Schema Registry.
3
- "$id": "vtex.faststore4",
3
+ "$id": "vtex.faststore",
4
4
  "title": "FastStore Schema",
5
5
  "description": "Collection of default schemas for FastStore.",
6
6
  // Default content-types available in FastStore can be added here.
@@ -1,126 +1,6 @@
1
1
  {
2
2
  "title": "FastStore Schema",
3
3
  "description": "Collection of default schemas for FastStore.",
4
- "$defs": {
5
- "base-component": {
6
- "$singleton": false,
7
- "$abstract": false,
8
- "properties": {},
9
- "definitions": {},
10
- "$recursiveAnchor": false,
11
- "uniqueItems": false,
12
- "required": [],
13
- "type": "object",
14
- "deprecated": false,
15
- "readOnly": false,
16
- "writeOnly": false
17
- },
18
- "base-page-template": {
19
- "$singleton": false,
20
- "$abstract": false,
21
- "properties": {
22
- "sections": {
23
- "$ref": "#/$defs/$ALLOW_ALL_COMPONENTS",
24
- "$singleton": false,
25
- "$abstract": false,
26
- "definitions": {},
27
- "$recursiveAnchor": false,
28
- "uniqueItems": false,
29
- "required": [],
30
- "deprecated": false,
31
- "readOnly": false,
32
- "writeOnly": false
33
- }
34
- },
35
- "definitions": {},
36
- "$recursiveAnchor": false,
37
- "uniqueItems": false,
38
- "required": [],
39
- "type": "object",
40
- "deprecated": false,
41
- "readOnly": false,
42
- "writeOnly": false
43
- },
44
- "$ALLOW_ALL_COMPONENTS": {
45
- "type": "array",
46
- "items": {
47
- "anyOf": [
48
- {
49
- "$ref": "#/components/Alert"
50
- },
51
- {
52
- "$ref": "#/components/BannerNewsletter"
53
- },
54
- {
55
- "$ref": "#/components/BannerText"
56
- },
57
- {
58
- "$ref": "#/components/Breadcrumb"
59
- },
60
- {
61
- "$ref": "#/components/CartSidebar"
62
- },
63
- {
64
- "$ref": "#/components/Children"
65
- },
66
- {
67
- "$ref": "#/components/CrossSellingShelf"
68
- },
69
- {
70
- "$ref": "#/components/EmptyState"
71
- },
72
- {
73
- "$ref": "#/components/Footer"
74
- },
75
- {
76
- "$ref": "#/components/Hero"
77
- },
78
- {
79
- "$ref": "#/components/Incentives"
80
- },
81
- {
82
- "$ref": "#/components/Navbar"
83
- },
84
- {
85
- "$ref": "#/components/Newsletter"
86
- },
87
- {
88
- "$ref": "#/components/ProductDetails"
89
- },
90
- {
91
- "$ref": "#/components/ProductGallery"
92
- },
93
- {
94
- "$ref": "#/components/ProductShelf"
95
- },
96
- {
97
- "$ref": "#/components/ProductTiles"
98
- },
99
- {
100
- "$ref": "#/components/RegionBar"
101
- },
102
- {
103
- "$ref": "#/components/RegionModal"
104
- },
105
- {
106
- "$ref": "#/components/RegionPopover"
107
- },
108
- {
109
- "$ref": "#/components/ScrollToTopButton"
110
- },
111
- {
112
- "$ref": "#/components/Search"
113
- },
114
- {
115
- "$ref": "#/components/ShoppingAssistant"
116
- },
117
- {
118
- "$ref": "#/components/RecommendationShelf"
119
- }
120
- ]
121
- }
122
- }
123
- },
124
4
  "content-types": {
125
5
  "404": {
126
6
  "$extends": ["#/components/base-page-template"],
@@ -3987,6 +3867,98 @@
3987
3867
  "deprecated": false,
3988
3868
  "$abstract": false
3989
3869
  },
3870
+ "RecommendationShelf": {
3871
+ "$extends": ["#/$defs/base-component"],
3872
+ "$componentKey": "RecommendationShelf",
3873
+ "$componentTitle": "Recommendation Shelf",
3874
+ "title": "Recommendation Shelf",
3875
+ "description": "Display a carousel of personalized product recommendations from a VTEX Recommendations campaign. Enable the shelf with the Enable recommendations toggle (off by default).",
3876
+ "type": "object",
3877
+ "required": ["campaignVrn"],
3878
+ "properties": {
3879
+ "enableRecommendations": {
3880
+ "title": "Enable recommendations?",
3881
+ "description": "When enabled, starts the VTEX Recommendations personalization session (once per browser session) and fetches personalized products for this shelf. Off by default so stores that do not use Recommendations never hit the Recommendations API.",
3882
+ "type": "boolean",
3883
+ "default": false
3884
+ },
3885
+ "title": {
3886
+ "title": "Title",
3887
+ "description": "Override the shelf title. If not set, the campaign title will be used.",
3888
+ "type": "string"
3889
+ },
3890
+ "campaignVrn": {
3891
+ "title": "Campaign VRN",
3892
+ "description": "Recommendation campaign VRN (e.g. vrn:recommendations:my-account:rec-persona-v2:abc123).",
3893
+ "type": "string",
3894
+ "pattern": "^vrn:recommendations:[^:]+:(rec-cross-v2|rec-similar-v2|rec-persona-v2|rec-last-v2|rec-top-items-v2|rec-search-v2|rec-next-v2|rec-visual-v2):[^:]+$"
3895
+ },
3896
+ "itemsContext": {
3897
+ "title": "Items context",
3898
+ "description": "Source of the products used as context for the recommendation request. 'Product page' uses the product currently being viewed; 'Cart' uses the items currently in the cart (useful for cross-sell shelves on the cart page). Only affects context-based campaigns such as cross-sell, similar items, visual similarity and next interaction.",
3899
+ "type": "string",
3900
+ "default": "PDP",
3901
+ "enum": ["PDP", "CART"],
3902
+ "enumNames": ["Product page", "Cart"]
3903
+ },
3904
+ "carouselConfiguration": {
3905
+ "title": "Carousel Configuration",
3906
+ "type": "object",
3907
+ "properties": {
3908
+ "itemsPerPageDesktop": {
3909
+ "title": "Items per page (desktop)",
3910
+ "description": "Number of products shown per page on desktop viewports.",
3911
+ "type": "number",
3912
+ "default": 4
3913
+ },
3914
+ "itemsPerPageMobile": {
3915
+ "title": "Items per page (mobile)",
3916
+ "description": "Number of products shown per page on mobile and tablet viewports.",
3917
+ "type": "number",
3918
+ "default": 2
3919
+ },
3920
+ "variant": {
3921
+ "title": "Carousel track variant",
3922
+ "description": "How the carousel navigates between items.",
3923
+ "type": "string",
3924
+ "default": "scroll",
3925
+ "enum": ["slide", "scroll"],
3926
+ "enumNames": ["Slide", "Scroll"]
3927
+ },
3928
+ "infiniteMode": {
3929
+ "title": "Infinite navigation?",
3930
+ "description": "Only applies to the 'slide' variant.",
3931
+ "type": "boolean",
3932
+ "default": false
3933
+ },
3934
+ "controls": {
3935
+ "title": "Navigation controls",
3936
+ "description": "Which navigation elements should be visible.",
3937
+ "type": "string",
3938
+ "default": "complete",
3939
+ "enum": ["complete", "navigationArrows", "paginationBullets"],
3940
+ "enumNames": ["Arrows and bullets", "Arrows only", "Bullets only"]
3941
+ }
3942
+ }
3943
+ },
3944
+ "productCardConfiguration": {
3945
+ "title": "Product Card Configuration",
3946
+ "type": "object",
3947
+ "properties": {
3948
+ "showDiscountBadge": {
3949
+ "title": "Show discount badge?",
3950
+ "type": "boolean",
3951
+ "default": true
3952
+ },
3953
+ "bordered": {
3954
+ "title": "Cards should be bordered?",
3955
+ "type": "boolean",
3956
+ "default": true
3957
+ }
3958
+ }
3959
+ }
3960
+ }
3961
+ },
3990
3962
  "RegionBar": {
3991
3963
  "$extends": ["#/$defs/base-component"],
3992
3964
  "$componentKey": "RegionBar",
@@ -4428,98 +4400,100 @@
4428
4400
  "writeOnly": false,
4429
4401
  "deprecated": false,
4430
4402
  "$abstract": false
4403
+ }
4404
+ },
4405
+ "$defs": {
4406
+ "base-component": {
4407
+ "type": "object",
4408
+ "required": [],
4409
+ "properties": {}
4431
4410
  },
4432
- "RecommendationShelf": {
4433
- "$extends": ["#/$defs/base-component"],
4434
- "$componentKey": "RecommendationShelf",
4435
- "$componentTitle": "Recommendation Shelf",
4436
- "title": "Recommendation Shelf",
4437
- "description": "Display a carousel of personalized product recommendations from a VTEX Recommendations campaign. Enable the shelf with the Enable recommendations toggle (off by default).",
4411
+ "base-page-template": {
4438
4412
  "type": "object",
4439
- "required": ["campaignVrn"],
4440
4413
  "properties": {
4441
- "enableRecommendations": {
4442
- "title": "Enable recommendations?",
4443
- "description": "When enabled, starts the VTEX Recommendations personalization session (once per browser session) and fetches personalized products for this shelf. Off by default so stores that do not use Recommendations never hit the Recommendations API.",
4444
- "type": "boolean",
4445
- "default": false
4446
- },
4447
- "title": {
4448
- "title": "Title",
4449
- "description": "Override the shelf title. If not set, the campaign title will be used.",
4450
- "type": "string"
4451
- },
4452
- "campaignVrn": {
4453
- "title": "Campaign VRN",
4454
- "description": "Recommendation campaign VRN (e.g. vrn:recommendations:my-account:rec-persona-v2:abc123).",
4455
- "type": "string",
4456
- "pattern": "^vrn:recommendations:[^:]+:(rec-cross-v2|rec-similar-v2|rec-persona-v2|rec-last-v2|rec-top-items-v2|rec-search-v2|rec-next-v2|rec-visual-v2):[^:]+$"
4457
- },
4458
- "itemsContext": {
4459
- "title": "Items context",
4460
- "description": "Source of the products used as context for the recommendation request. 'Product page' uses the product currently being viewed; 'Cart' uses the items currently in the cart (useful for cross-sell shelves on the cart page). Only affects context-based campaigns such as cross-sell, similar items, visual similarity and next interaction.",
4461
- "type": "string",
4462
- "default": "PDP",
4463
- "enum": ["PDP", "CART"],
4464
- "enumNames": ["Product page", "Cart"]
4465
- },
4466
- "carouselConfiguration": {
4467
- "title": "Carousel Configuration",
4468
- "type": "object",
4469
- "properties": {
4470
- "itemsPerPageDesktop": {
4471
- "title": "Items per page (desktop)",
4472
- "description": "Number of products shown per page on desktop viewports.",
4473
- "type": "number",
4474
- "default": 4
4475
- },
4476
- "itemsPerPageMobile": {
4477
- "title": "Items per page (mobile)",
4478
- "description": "Number of products shown per page on mobile and tablet viewports.",
4479
- "type": "number",
4480
- "default": 2
4481
- },
4482
- "variant": {
4483
- "title": "Carousel track variant",
4484
- "description": "How the carousel navigates between items.",
4485
- "type": "string",
4486
- "default": "scroll",
4487
- "enum": ["slide", "scroll"],
4488
- "enumNames": ["Slide", "Scroll"]
4489
- },
4490
- "infiniteMode": {
4491
- "title": "Infinite navigation?",
4492
- "description": "Only applies to the 'slide' variant.",
4493
- "type": "boolean",
4494
- "default": false
4495
- },
4496
- "controls": {
4497
- "title": "Navigation controls",
4498
- "description": "Which navigation elements should be visible.",
4499
- "type": "string",
4500
- "default": "complete",
4501
- "enum": ["complete", "navigationArrows", "paginationBullets"],
4502
- "enumNames": ["Arrows and bullets", "Arrows only", "Bullets only"]
4503
- }
4504
- }
4505
- },
4506
- "productCardConfiguration": {
4507
- "title": "Product Card Configuration",
4508
- "type": "object",
4509
- "properties": {
4510
- "showDiscountBadge": {
4511
- "title": "Show discount badge?",
4512
- "type": "boolean",
4513
- "default": true
4514
- },
4515
- "bordered": {
4516
- "title": "Cards should be bordered?",
4517
- "type": "boolean",
4518
- "default": true
4519
- }
4520
- }
4414
+ "sections": {
4415
+ "$ref": "#/$defs/$ALLOW_ALL_COMPONENTS"
4521
4416
  }
4522
4417
  }
4418
+ },
4419
+ "$ALLOW_ALL_COMPONENTS": {
4420
+ "type": "array",
4421
+ "items": {
4422
+ "anyOf": [
4423
+ {
4424
+ "$ref": "#/components/Alert"
4425
+ },
4426
+ {
4427
+ "$ref": "#/components/BannerNewsletter"
4428
+ },
4429
+ {
4430
+ "$ref": "#/components/BannerText"
4431
+ },
4432
+ {
4433
+ "$ref": "#/components/Breadcrumb"
4434
+ },
4435
+ {
4436
+ "$ref": "#/components/CartSidebar"
4437
+ },
4438
+ {
4439
+ "$ref": "#/components/Children"
4440
+ },
4441
+ {
4442
+ "$ref": "#/components/CrossSellingShelf"
4443
+ },
4444
+ {
4445
+ "$ref": "#/components/EmptyState"
4446
+ },
4447
+ {
4448
+ "$ref": "#/components/Footer"
4449
+ },
4450
+ {
4451
+ "$ref": "#/components/Hero"
4452
+ },
4453
+ {
4454
+ "$ref": "#/components/Incentives"
4455
+ },
4456
+ {
4457
+ "$ref": "#/components/Navbar"
4458
+ },
4459
+ {
4460
+ "$ref": "#/components/Newsletter"
4461
+ },
4462
+ {
4463
+ "$ref": "#/components/ProductDetails"
4464
+ },
4465
+ {
4466
+ "$ref": "#/components/ProductGallery"
4467
+ },
4468
+ {
4469
+ "$ref": "#/components/ProductShelf"
4470
+ },
4471
+ {
4472
+ "$ref": "#/components/ProductTiles"
4473
+ },
4474
+ {
4475
+ "$ref": "#/components/RecommendationShelf"
4476
+ },
4477
+ {
4478
+ "$ref": "#/components/RegionBar"
4479
+ },
4480
+ {
4481
+ "$ref": "#/components/RegionModal"
4482
+ },
4483
+ {
4484
+ "$ref": "#/components/RegionPopover"
4485
+ },
4486
+ {
4487
+ "$ref": "#/components/ScrollToTopButton"
4488
+ },
4489
+ {
4490
+ "$ref": "#/components/Search"
4491
+ },
4492
+ {
4493
+ "$ref": "#/components/ShoppingAssistant"
4494
+ }
4495
+ ]
4496
+ }
4523
4497
  }
4524
4498
  }
4525
4499
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "4.5.0",
3
+ "version": "4.5.1-dev.1",
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.5.0",
75
- "@faststore/lighthouse": "4.5.0",
76
- "@faststore/sdk": "4.5.0",
77
- "@faststore/ui": "4.5.0",
78
- "@faststore/diagnostics": "4.5.0"
74
+ "@faststore/api": "4.5.1-dev.1",
75
+ "@faststore/diagnostics": "4.5.1-dev.1",
76
+ "@faststore/sdk": "4.5.1-dev.1",
77
+ "@faststore/ui": "4.5.1-dev.1",
78
+ "@faststore/lighthouse": "4.5.1-dev.1"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@cypress/code-coverage": "^3.12.1",