@faststore/core 4.5.1 → 4.6.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.
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.1-dev.2 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.4 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.1-dev.2 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.1-dev.4 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.1-dev.2 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.1-dev.4 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,12 +1,11 @@
1
1
 
2
- > @faststore/core@4.5.1-dev.2 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.4 test /home/runner/work/faststore/faststore/packages/core
3
3
  > vitest run
4
4
 
5
5
 
6
-  RUN  v4.0.7 /home/runner/work/faststore/faststore/packages/core
6
+  RUN  v4.0.18 /home/runner/work/faststore/faststore/packages/core
7
7
 
8
- Not implemented: navigation to another Document
9
- Not implemented: navigation to another Document
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 36ms
10
9
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
11
10
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=8199d03debb0a6751ec53d8ee8987b78d0292acb
12
11
   at node:internal/deps/undici/undici:16416:13
@@ -19,7 +18,7 @@ Not implemented: navigation to another Document
19
18
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:17) {
20
19
  [cause]: TypeError: Invalid URL
21
20
   at new URL (node:internal/url:828:25)
22
- at new URL$1 (file:///home/runner/work/faststore/faststore/node_modules/.pnpm/vitest@4.0.7_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sass@1.97.3_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vitest/dist/chunks/index.CWIFvlX5.js:469:9)
21
+ at new URL$1 (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/index.CyBMJtT7.js:556:9)
23
22
   at new Request (node:internal/deps/undici/undici:10971:25)
24
23
   at fetch (node:internal/deps/undici/undici:11891:25)
25
24
   at fetch (node:internal/deps/undici/undici:16414:10)
@@ -36,16 +35,12 @@ Not implemented: navigation to another Document
36
35
  Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
37
36
  npx update-browserslist-db@latest
38
37
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
39
- ✓  browser  test/sdk/ui/useScrollRestoration.browser.test.ts (43 tests) 1024ms
40
38
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
41
39
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
42
40
 
43
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 161ms
44
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2109ms
45
- ✓ shows an error state when the list fails to load  511ms
46
- ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  334ms
47
- ✓  browser  test/components/ui/ProductGallery/GalleryPageHeightLock.browser.test.tsx (8 tests) 148ms
48
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 32ms
41
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 283ms
42
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2139ms
43
+ ✓ shows an error state when the list fails to load  585ms
49
44
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
50
45
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
51
46
 
@@ -275,13 +270,12 @@ act(() => {
275
270
  This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
276
271
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
277
272
 
278
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1545ms
279
- ✓ renders the password protection form  594ms
280
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 27ms
281
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1942ms
282
- ✓ renders the menu view with contract details and manage footer  936ms
283
- ✓ opens the contract switcher and returns to the menu on back  452ms
284
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 55ms
273
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1851ms
274
+ ✓ renders the password protection form  789ms
275
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 29ms
276
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 80ms
277
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1109ms
278
+ ✓ renders the menu view with contract details and manage footer  577ms
285
279
  stderr | test/sdk/localization/store-url.browser.test.ts
286
280
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
287
281
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -289,10 +283,9 @@ This ensures that you're testing the behavior the user would see in the browser.
289
283
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
290
284
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
291
285
 
292
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 8ms
293
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 40ms
294
- ✓  browser  test/components/templates/SearchPage/SearchWrapper.browser.test.tsx (3 tests) 35ms
295
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 39ms
286
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 17ms
287
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 119ms
288
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 74ms
296
289
  stderr | test/components/account/doLogout.browser.test.ts
297
290
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
298
291
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -300,8 +293,9 @@ This ensures that you're testing the behavior the user would see in the browser.
300
293
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
301
294
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
302
295
 
303
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 20ms
304
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 265ms
296
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 31ms
297
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 251ms
298
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 306ms
305
299
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
306
300
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
307
301
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -309,13 +303,12 @@ This ensures that you're testing the behavior the user would see in the browser.
309
303
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
310
304
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
311
305
 
312
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 12ms
313
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 248ms
314
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 3ms
315
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 2ms
306
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 5ms
307
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 7ms
308
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 3ms
316
309
  ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 27ms
317
- ✓  browser  test/components/skeletons/ProductGridSkeleton.browser.test.tsx (2 tests) 38ms
318
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 30ms
310
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 35ms
311
+ ✓  node  test/utils/match-url.test.ts (10 tests) 9ms
319
312
  stderr | test/sdk/account/refreshToken.browser.test.ts
320
313
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
321
314
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -323,11 +316,10 @@ This ensures that you're testing the behavior the user would see in the browser.
323
316
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
324
317
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
325
318
 
326
- ✓  node  test/utils/match-url.test.ts (10 tests) 10ms
319
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 13ms
327
320
  ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 5ms
328
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 14ms
329
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 206ms
330
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 9ms
321
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 10ms
322
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 147ms
331
323
  stderr | test/components/search/SearchInputComponent.test.tsx
332
324
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
333
325
 
@@ -391,24 +383,12 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
391
383
  at Suspense
392
384
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
393
385
 
394
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 71ms
395
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 12ms
396
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 58ms
397
- ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 9ms
398
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 27ms
399
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 419ms
400
- stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
401
- Set password request failed: Bad Request
402
-
403
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 34ms
404
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 24ms
405
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
406
- ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
407
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 804ms
408
- ✓ navigates with the search term on blur  359ms
409
- ✓ navigates without a label param when the search is cleared  358ms
410
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 42ms
411
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 56ms
386
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 84ms
387
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 9ms
388
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 54ms
389
+ ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 10ms
390
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 29ms
391
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 386ms
412
392
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
413
393
  Graphql execution returned with error: [
414
394
  {
@@ -455,47 +435,107 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
455
435
  { message: 'bad', status: 400, type: 'BadRequestError' }
456
436
  ]
457
437
 
458
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 25ms
459
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 59ms
460
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 131ms
461
- ✓  node  test/server/index.test.ts (7 tests) 799ms
462
- ✓ should return a valid merged GraphQL schema  301ms
463
- ✓  node  test/proxy.localization.test.ts (5 tests) 71ms
464
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 8ms
465
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 47ms
466
- ✓  node  test/proxy.test.ts (4 tests) 21ms
467
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 107ms
468
- ✓  node  test/server/webops-api.test.ts (9 tests) 23ms
469
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 40ms
470
- ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 7ms
438
+ stderr | test/pages/api/graphql.test.ts > /api/graphql request handling > maps BadRequestError thrown by execute to its status
439
+ Something unexpected occurred querying Graphql endpoint:
440
+ _ [FastStoreError]: malformed
441
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:190:31
442
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:196:39
443
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1024:60
444
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:145:11
445
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:915:26
446
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1243:20
447
+ at new Promise (<anonymous>)
448
+ at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1209:10)
449
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1653:37
450
+ 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) {
451
+ extensions: { status: 400, type: 'BadRequestError' }
452
+ }
453
+
454
+ stderr | test/pages/api/graphql.test.ts > /api/graphql request handling > maps UnauthorizedError thrown by execute to its status
455
+ Something unexpected occurred querying Graphql endpoint:
456
+ te [FastStoreError]: expired
457
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:191:33
458
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:196:39
459
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1024:60
460
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:145:11
461
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:915:26
462
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1243:20
463
+ at new Promise (<anonymous>)
464
+ at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1209:10)
465
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1653:37
466
+ 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) {
467
+ extensions: { status: 401, type: 'UnauthorizedError' }
468
+ }
469
+
470
+ stderr | test/pages/api/graphql.test.ts > /api/graphql request handling > maps an unexpected failure thrown by execute to its status
471
+ Something unexpected occurred querying Graphql endpoint:
472
+ Error: socket hang up
473
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:192:37
474
+ at /home/runner/work/faststore/faststore/packages/core/test/pages/api/graphql.test.ts:196:39
475
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1024:60
476
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:145:11
477
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:915:26
478
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1243:20
479
+ at new Promise (<anonymous>)
480
+ at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1209:10)
481
+ at file:///home/runner/work/faststore/faststore/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:1653:37
482
+ 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)
483
+
484
+ ✓  node  test/pages/api/graphql.test.ts (17 tests) 20ms
485
+ stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
486
+ Set password request failed: Bad Request
487
+
488
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 29ms
489
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 842ms
490
+ ✓ navigates with the search term on blur  362ms
491
+ ✓ navigates without a label param when the search is cleared  364ms
492
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 35ms
493
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 6ms
494
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 30ms
495
+ ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
496
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 71ms
497
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 125ms
498
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 45ms
499
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 40ms
500
+ ✓  node  test/proxy.localization.test.ts (5 tests) 45ms
501
+ ✓  node  test/server/index.test.ts (7 tests) 830ms
502
+ ✓ should handle options and execute  313ms
503
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 9ms
504
+ ✓  node  test/proxy.test.ts (4 tests) 14ms
505
+ ✓  node  test/server/webops-api.test.ts (9 tests) 15ms
506
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 46ms
507
+ ✓  node  test/server/content/service.test.ts (5 tests) 5ms
508
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 103ms
509
+ ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 9ms
471
510
  ✓  node  test/server/cms/global.test.ts (3 tests) 5ms
472
- ✓  node  test/server/content/service.test.ts (5 tests) 4ms
473
511
  ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
474
- ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 4ms
475
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
476
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 20ms
477
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 144ms
512
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 27ms
513
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 120ms
514
+ ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
515
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
516
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 9ms
478
517
  ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 5ms
479
- ✓  node  test/pages/api/preview.test.ts (2 tests) 7ms
480
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 6ms
481
- ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
482
- ✓  node  test/server/cms/index.test.ts (2 tests) 7ms
483
- ✓  node  test/utils/retry.test.ts (5 tests) 14ms
484
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 47ms
485
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 191ms
486
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 6ms
487
- ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 6ms
488
- ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 3ms
489
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
518
+ ✓  node  test/server/rootSpan.test.ts (4 tests) 31ms
519
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
520
+ ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 4ms
521
+ ✓  node  test/server/cms/index.test.ts (2 tests) 6ms
522
+ ✓  node  test/utils/retry.test.ts (5 tests) 13ms
523
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 39ms
524
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 193ms
525
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 4ms
526
+ ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 5ms
527
+ ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
528
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 6ms
529
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 39ms
490
530
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 4ms
491
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 49ms
492
- ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 4ms
531
+ ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 3ms
532
+ ✓  node  test/instrumentation.test.ts (3 tests) 6ms
493
533
  ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 27ms
494
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 11ms
495
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 24ms
534
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 12ms
535
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 22ms
496
536
 
497
-  Test Files  77 passed (77)
498
-  Tests  626 passed (626)
499
-  Start at  14:30:25
500
-  Duration  37.93s (transform 8.83s, setup 0ms, collect 30.97s, tests 11.57s, environment 49.14s, prepare 1.21s)
537
+  Test Files  75 passed (75)
538
+  Tests  584 passed (584)
539
+  Start at  22:51:57
540
+  Duration  33.94s (transform 8.01s, setup 0ms, import 27.87s, tests 10.10s, environment 44.06s)
501
541
 
package/CHANGELOG.md CHANGED
@@ -3,23 +3,25 @@
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](https://github.com/vtex/faststore/compare/v4.5.1-dev.2...v4.5.1) (2026-08-11)
7
-
8
- ### Bug Fixes
9
-
10
- - **core:** address scroll restoration review feedback ([a5fe6a3](https://github.com/vtex/faststore/commit/a5fe6a35c54e6095f81c7995a815ce6ef3b4dd4e))
11
- - **core:** align beforePopState callback with NextHistoryState ([10719e5](https://github.com/vtex/faststore/commit/10719e5eca199385d9fe18bdd6d7da290716a1d5))
12
- - **core:** compare window to undefined directly for Sonar ([bf05a54](https://github.com/vtex/faststore/commit/bf05a54bb014d120b7bdc95ff7c01a4e9b35b485))
13
- - **core:** harden scroll restore path matching and hydration-safe heights ([34efa6b](https://github.com/vtex/faststore/commit/34efa6bda7549895a4531277c2fe55bd6bbe98a7))
14
- - **core:** hash gallery height keys to avoid truncation collisions ([9e98043](https://github.com/vtex/faststore/commit/9e980438d74e457fa33aa77900438339463a078c))
15
- - **core:** prevent IS redirect hang and improve scroll restoration ([5f30778](https://github.com/vtex/faststore/commit/5f30778161eec2e4381b3fe971479dd7cbe53b08))
16
- - **core:** reset infinite scroll on forward listing navigations ([249226a](https://github.com/vtex/faststore/commit/249226a3acbe4cb26d687cf962125b2593d5949e))
17
- - **core:** resolve Sonar new-code smells for scroll restoration ([59b41ed](https://github.com/vtex/faststore/commit/59b41ed1d2a30ba693726b19895a0279eb1ba464))
18
- - **core:** restore PLP infinite-scroll pages on back navigation ([92b2efa](https://github.com/vtex/faststore/commit/92b2efa1d4d0895a10b5a0e71a4d9bf37cae1686))
19
- - **core:** resync gallery height lock when children change ([5058089](https://github.com/vtex/faststore/commit/50580898d97baf800b97c8a876f7967529859c61))
20
- - **core:** satisfy Sonar on gallery height key hash ([3a6ce47](https://github.com/vtex/faststore/commit/3a6ce47485c26be75d6d76906df3af64c9e34fd6))
21
- - **core:** type scroll restore paint timer for DOM/Node setTimeout ([940c903](https://github.com/vtex/faststore/commit/940c90376f8d2eb77665e73a6fb0ea53c9786c8e))
22
- - **core:** use replaceAll for infinite-scroll session key ([4f52048](https://github.com/vtex/faststore/commit/4f520482a9ba9661782fcf25a286b8f2e6c6b922))
6
+ # [4.6.0-dev.0](https://github.com/vtex/faststore/compare/v4.5.1-dev.4...v4.6.0-dev.0) (2026-08-11)
7
+
8
+ ### Features
9
+
10
+ - removing vtex/diagnostics-nodejs ([#3389](https://github.com/vtex/faststore/issues/3389)) ([74e2d50](https://github.com/vtex/faststore/commit/74e2d503a44903929b90af7701956536690d4e41))
11
+
12
+ ## [4.5.1-dev.4](https://github.com/vtex/faststore/compare/v4.5.1-dev.3...v4.5.1-dev.4) (2026-08-10)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
16
+ ## [4.5.1-dev.3](https://github.com/vtex/faststore/compare/v4.5.1-dev.2...v4.5.1-dev.3) (2026-08-10)
17
+
18
+ ### Bug Fixes
19
+
20
+ - **core:** add twitter card meta tag to default next seo config ([720f3e6](https://github.com/vtex/faststore/commit/720f3e6d04ef523f2fcf0e146c3741b7e5af70fa))
21
+ - **core:** add twittermeta tags validaton for tests ([c8f5872](https://github.com/vtex/faststore/commit/c8f5872e42b69ddae5b2abfa0e8d3140e2bc7163))
22
+ - **core:** lint error ([d07460f](https://github.com/vtex/faststore/commit/d07460f890ba712c9aecbec25bda5de96bf3e4ef))
23
+ - **core:** remove duplicated twitter meta tag ([f388288](https://github.com/vtex/faststore/commit/f388288731ff75fceedba3cd7449ef1088b0b0c2))
24
+ - **metaTags:** add twitter meta tags to nextSeo ([9c2439b](https://github.com/vtex/faststore/commit/9c2439b4a668dd81b7bfe5bdc44df575725067ec))
23
25
 
24
26
  ## [4.5.1-dev.2](https://github.com/vtex/faststore/compare/v4.5.1-dev.1...v4.5.1-dev.2) (2026-08-04)
25
27
 
package/README.md CHANGED
@@ -31,7 +31,7 @@ packages/core/
31
31
  │ ├── server/ # Server-side utilities (CMS content fetching)
32
32
  │ ├── customizations/ # Store-level overrides: styles, fonts, components, fragments
33
33
  │ ├── styles/ # Global SCSS styles
34
- │ └── instrumentation.ts # Next.js instrumentation hook (boots @faststore/diagnostics when otelEnabled)
34
+ │ └── instrumentation.ts # Next.js instrumentation hook (boots @faststore/diagnostics — see docs/observability.md)
35
35
  ├── cms/faststore/ # CMS configuration: sections.json, content-types.json, schemas
36
36
  ├── @generated/ # Auto-generated GraphQL types — do not edit
37
37
  ├── discovery.config.default.js # Committed base store configuration (platform, sales channel, locale)
@@ -47,7 +47,7 @@ describe('Home Page Seo', () => {
47
47
  })
48
48
  })
49
49
 
50
- it('has OpenGraph tags', () => {
50
+ it('has OpenGraph and Twitter tags', () => {
51
51
  cy.visit(pages.home, options)
52
52
  cy.waitForHydration()
53
53
 
@@ -68,6 +68,12 @@ describe('Home Page Seo', () => {
68
68
  .should(($el) => {
69
69
  expect($el.attr('content')).to.be.a('string')
70
70
  })
71
+
72
+ cy.get('meta[name="twitter:card"]')
73
+ .should('exist')
74
+ .should(($el) => {
75
+ expect($el.attr('content')).to.eq('summary_large_image')
76
+ })
71
77
  })
72
78
  })
73
79
 
@@ -117,7 +123,7 @@ describe('Product Page Seo', () => {
117
123
  })
118
124
  })
119
125
 
120
- it('has OpenGraph tags', () => {
126
+ it('has OpenGraph and Twitter tags', () => {
121
127
  cy.visit(pages.pdp, options)
122
128
  cy.waitForHydration()
123
129
 
@@ -156,6 +162,12 @@ describe('Product Page Seo', () => {
156
162
  .should(($el) => {
157
163
  expect($el.attr('content')).to.be.a('string')
158
164
  })
165
+
166
+ cy.get('meta[name="twitter:card"]')
167
+ .should('exist')
168
+ .should(($el) => {
169
+ expect($el.attr('content')).to.eq('summary_large_image')
170
+ })
159
171
  })
160
172
  })
161
173
 
@@ -201,7 +213,7 @@ describe('Collection Page Seo', () => {
201
213
  })
202
214
  })
203
215
 
204
- it('has OpenGraph tags', () => {
216
+ it('has OpenGraph and Twitter tags', () => {
205
217
  cy.visit(pages.collection, options)
206
218
  cy.waitForHydration()
207
219
 
@@ -222,6 +234,12 @@ describe('Collection Page Seo', () => {
222
234
  .should(($el) => {
223
235
  expect($el.attr('content')).to.be.a('string')
224
236
  })
237
+
238
+ cy.get('meta[name="twitter:card"]')
239
+ .should('exist')
240
+ .should(($el) => {
241
+ expect($el.attr('content')).to.eq('summary_large_image')
242
+ })
225
243
  })
226
244
  })
227
245
 
@@ -256,7 +274,7 @@ describe('Filtered Collection Page Seo', () => {
256
274
  })
257
275
  })
258
276
 
259
- it('has OpenGraph tags', () => {
277
+ it('has OpenGraph and Twitter tags', () => {
260
278
  cy.visit(pages.collection_filtered, options)
261
279
  cy.waitForHydration()
262
280
 
@@ -277,6 +295,12 @@ describe('Filtered Collection Page Seo', () => {
277
295
  .should(($el) => {
278
296
  expect($el.attr('content')).to.be.a('string')
279
297
  })
298
+
299
+ cy.get('meta[name="twitter:card"]')
300
+ .should('exist')
301
+ .should(($el) => {
302
+ expect($el.attr('content')).to.eq('summary_large_image')
303
+ })
280
304
  })
281
305
  })
282
306
 
@@ -295,7 +319,7 @@ describe('Search Page Seo', () => {
295
319
  cy.get('link[rel="canonical"]').should('not.exist')
296
320
  })
297
321
 
298
- it('has OpenGraph tags', () => {
322
+ it('has OpenGraph and Twitter tags', () => {
299
323
  cy.visit(pages.search, options)
300
324
  cy.waitForHydration()
301
325
 
@@ -316,5 +340,11 @@ describe('Search Page Seo', () => {
316
340
  .should(($el) => {
317
341
  expect($el.attr('content')).to.be.a('string')
318
342
  })
343
+
344
+ cy.get('meta[name="twitter:card"]')
345
+ .should('exist')
346
+ .should(($el) => {
347
+ expect($el.attr('content')).to.eq('summary_large_image')
348
+ })
319
349
  })
320
350
  })
@@ -166,8 +166,7 @@ module.exports = {
166
166
  analytics: {
167
167
  // https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,
168
168
  gtmContainerId: 'GTM-PGHZ95N',
169
- serviceName: 'faststore-proxy',
170
- otelEnabled: true,
169
+ serviceName: 'faststore',
171
170
  },
172
171
 
173
172
  cms: {
@@ -8,6 +8,9 @@ const config: DefaultSeoProps = {
8
8
  norobots: storeConfig.experimental.noRobots,
9
9
  dangerouslySetAllPagesToNoFollow: storeConfig.experimental.nofollow,
10
10
  dangerouslySetAllPagesToNoIndex: storeConfig.experimental.noindex,
11
+ twitter: {
12
+ cardType: 'summary_large_image',
13
+ },
11
14
  additionalMetaTags: [
12
15
  {
13
16
  name: 'generated-at',
package/next.config.js CHANGED
@@ -14,7 +14,6 @@ const getRootFolder = () => {
14
14
  console.log(`
15
15
  Root folder at: ${getRootFolder()}
16
16
  AccountID: ${storeConfig.api?.storeId ?? 'Unknown'}
17
- Analytics Enabled: ${storeConfig.analytics?.otelEnabled ?? false}
18
17
  `)
19
18
 
20
19
  /**
@@ -22,8 +21,6 @@ console.log(`
22
21
  * */
23
22
  const nextConfig = {
24
23
  /* config options here */
25
- /* Replaces terser by swc for minifying. It's the default in NextJS 13 */
26
- swcMinify: true,
27
24
  ...(Array.isArray(storeConfig.experimental?.transpilePackages) &&
28
25
  storeConfig.experimental.transpilePackages.length > 0 && {
29
26
  transpilePackages: storeConfig.experimental.transpilePackages,
@@ -55,9 +52,7 @@ const nextConfig = {
55
52
  sassOptions: {
56
53
  silenceDeprecations: ['if-function', 'legacy-js-api'],
57
54
  },
58
- // TODO: We won't need to enable this experimental feature when migrating to Next.js 13
59
55
  experimental: {
60
- instrumentationHook: true,
61
56
  scrollRestoration: !storeConfig.experimental.scrollRestoration,
62
57
  },
63
58
  /*
@@ -68,6 +63,27 @@ const nextConfig = {
68
63
  * */
69
64
  outputFileTracingRoot: getRootFolder(),
70
65
  webpack: (config, { isServer, dev }) => {
66
+ // `@opentelemetry/sdk-node` (pulled in by @faststore/diagnostics) does an
67
+ // optional `require('@opentelemetry/shim-opencensus')` guarded by a try/catch.
68
+ // The module is an optional peer that isn't installed, so webpack reports a
69
+ // "Module not found" error it can't see is intentional. Aliasing it to `false`
70
+ // resolves it to an empty module, matching the graceful degradation the SDK
71
+ // already expects at runtime (Turbopack handles this case on its own).
72
+ config.resolve.alias = {
73
+ ...config.resolve.alias,
74
+ '@opentelemetry/shim-opencensus': false,
75
+ }
76
+
77
+ // `require-in-the-middle` (used by OpenTelemetry instrumentation) patches
78
+ // modules through a dynamic `require` that webpack can't statically analyze,
79
+ // emitting a benign "Critical dependency" warning. `serverExternalPackages`
80
+ // handles this for Turbopack, but the webpack builder still traces into it,
81
+ // so we silence the warning for this module specifically.
82
+ config.ignoreWarnings = [
83
+ ...(config.ignoreWarnings ?? []),
84
+ { module: /require-in-the-middle/ },
85
+ ]
86
+
71
87
  // https://github.com/vercel/next.js/discussions/11267#discussioncomment-2479112
72
88
  // camel-case style names from css modules
73
89
  config.module.rules