@faststore/core 4.4.0-dev.1 → 4.4.0-dev.3

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.4.0-dev.0 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.4.0-dev.2 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.0 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.4.0-dev.2 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.4.0-dev.0 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.4.0-dev.2 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,13 +1,13 @@
1
1
 
2
- > @faststore/core@4.4.0-dev.0 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.4.0-dev.2 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) 26ms
9
- ✓  browser  test/sdk/session/installLocaleCorrector.browser.test.ts (7 tests) 58ms
10
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 18ms
8
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 32ms
9
+ ✓  browser  test/sdk/session/installLocaleCorrector.browser.test.ts (7 tests) 74ms
10
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 14ms
11
11
  stderr | test/sdk/localization/store-url.browser.test.ts
12
12
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
13
13
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -100,7 +100,7 @@ act(() => {
100
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
101
101
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
102
102
 
103
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 91ms
103
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 38ms
104
104
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > uses the fallback invalid-password message when API omits an error
105
105
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
106
106
 
@@ -245,14 +245,14 @@ act(() => {
245
245
  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
246
246
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
247
247
 
248
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1662ms
249
- ✓ renders the password protection form  770ms
250
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 20ms
251
- ✓  node  test/utils/match-url.test.ts (10 tests) 44ms
252
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 187ms
253
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 27ms
254
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 617ms
255
- ✓ returns 405 for non-POST requests  488ms
248
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1502ms
249
+ ✓ renders the password protection form  667ms
250
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 22ms
251
+ ✓  node  test/utils/match-url.test.ts (10 tests) 34ms
252
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 145ms
253
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 34ms
254
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 790ms
255
+ ✓ returns 405 for non-POST requests  528ms
256
256
  stderr | test/components/search/SearchInputComponent.test.tsx
257
257
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
258
258
 
@@ -316,17 +316,17 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
316
316
  at Suspense
317
317
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
318
318
 
319
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 268ms
320
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 199ms
321
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 43ms
322
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 46ms
323
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 81ms
324
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 55ms
325
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 8ms
319
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 198ms
320
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 40ms
321
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 37ms
322
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 218ms
323
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 99ms
324
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 17ms
326
325
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
327
326
  Set password request failed: Bad Request
328
327
 
329
328
  ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 48ms
329
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 73ms
330
330
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
331
331
  Graphql execution returned with error: [
332
332
  {
@@ -373,29 +373,29 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
373
373
  { message: 'bad', status: 400, type: 'BadRequestError' }
374
374
  ]
375
375
 
376
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 28ms
377
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 39ms
378
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 37ms
379
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 47ms
380
- ✓  node  test/proxy.test.ts (4 tests) 52ms
381
- ✓  node  test/server/webops-api.test.ts (9 tests) 22ms
382
- ✓  node  test/server/index.test.ts (7 tests) 647ms
383
- ✓  node  test/server/cms/global.test.ts (3 tests) 11ms
384
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 3ms
385
- ✓  node  test/server/content/service.test.ts (5 tests) 7ms
386
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
387
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 35ms
388
- ✓  node  test/pages/api/preview.test.ts (2 tests) 8ms
389
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 8ms
390
- ✓  node  test/components/search/SearchInput.test.ts (6 tests) 12ms
391
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
392
- ✓  node  test/server/cms/index.test.ts (2 tests) 5ms
393
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 4ms
376
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 22ms
377
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 59ms
378
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 37ms
379
+ ✓  node  test/proxy.test.ts (4 tests) 50ms
380
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 52ms
381
+ ✓  node  test/server/webops-api.test.ts (9 tests) 18ms
382
+ ✓  node  test/server/index.test.ts (7 tests) 667ms
383
+ ✓  node  test/server/cms/global.test.ts (3 tests) 7ms
384
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
385
+ ✓  node  test/server/content/service.test.ts (5 tests) 4ms
386
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
387
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 32ms
388
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 6ms
389
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 4ms
390
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 5ms
391
+ ✓  node  test/components/search/SearchInput.test.ts (6 tests) 7ms
392
+ ✓  node  test/server/cms/index.test.ts (2 tests) 6ms
393
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 7ms
394
394
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 3ms
395
395
  ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 25ms
396
396
 
397
397
   Test Files  38 passed (38)
398
398
   Tests  363 passed (363)
399
-  Start at  14:05:14
400
-  Duration  22.78s (transform 6.06s, setup 0ms, collect 17.64s, tests 4.50s, environment 28.62s, prepare 956ms)
399
+  Start at  13:16:14
400
+  Duration  23.17s (transform 6.25s, setup 0ms, collect 17.58s, tests 4.44s, environment 28.99s, prepare 945ms)
401
401
 
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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.4.0-dev.3](https://github.com/vtex/faststore/compare/v4.4.0-dev.2...v4.4.0-dev.3) (2026-06-29)
7
+
8
+ ### Bug Fixes
9
+
10
+ - sync IS locale with URL and selectedFacets on navigation ([#3405](https://github.com/vtex/faststore/issues/3405)) ([90d644d](https://github.com/vtex/faststore/commit/90d644dcf7a232c3f2bea316658580b10108b502)), closes [#3401](https://github.com/vtex/faststore/issues/3401) [#3401](https://github.com/vtex/faststore/issues/3401)
11
+
12
+ # [4.4.0-dev.2](https://github.com/vtex/faststore/compare/v4.4.0-dev.1...v4.4.0-dev.2) (2026-06-25)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **core:** version authenticator routes to v1 ([#3398](https://github.com/vtex/faststore/issues/3398)) ([a4ac863](https://github.com/vtex/faststore/commit/a4ac863f35b91d3980f9a11e81aede3606f92efe))
17
+
6
18
  # [4.4.0-dev.1](https://github.com/vtex/faststore/compare/v4.4.0-dev.0...v4.4.0-dev.1) (2026-06-24)
7
19
 
8
20
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "4.4.0-dev.1",
3
+ "version": "4.4.0-dev.3",
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/diagnostics": "4.4.0-dev.1",
75
- "@faststore/lighthouse": "4.4.0-dev.1",
76
- "@faststore/sdk": "4.4.0-dev.1",
77
- "@faststore/api": "4.4.0-dev.1",
78
- "@faststore/ui": "4.4.0-dev.1"
74
+ "@faststore/api": "4.4.0-dev.3",
75
+ "@faststore/diagnostics": "4.4.0-dev.3",
76
+ "@faststore/sdk": "4.4.0-dev.3",
77
+ "@faststore/lighthouse": "4.4.0-dev.3",
78
+ "@faststore/ui": "4.4.0-dev.3"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@cypress/code-coverage": "^3.12.1",
@@ -57,7 +57,7 @@ export const useSetPassword = (accountName?: string) => {
57
57
  }
58
58
 
59
59
  const response = await fetch(
60
- `/api/authenticator/pub/authentication/classic/setpassword?expireSessions=true&an=${an}`,
60
+ `/api/authenticator/v1/pub/authentication/classic/setpassword?expireSessions=true&an=${an}`,
61
61
  {
62
62
  method: 'POST',
63
63
  body: buildFormData(body),
@@ -139,7 +139,7 @@ const startLogin = async ({
139
139
  const scope = accountName ?? config.api.storeId
140
140
 
141
141
  const response = await fetch(
142
- `/api/authenticator/pub/authentication/start?an=${an}`,
142
+ `/api/authenticator/v1/pub/authentication/start?an=${an}`,
143
143
  {
144
144
  method: 'POST',
145
145
  credentials: 'include',
@@ -1,7 +1,9 @@
1
1
  import { useMemo } from 'react'
2
2
 
3
3
  import type { ClientManyProductsQueryQueryVariables } from '@generated/graphql'
4
+ import { useRouter } from 'next/router'
4
5
 
6
+ import storeConfig from 'discovery.config'
5
7
  import { ITEMS_PER_SECTION } from 'src/constants'
6
8
  import { useSession } from 'src/sdk/session'
7
9
  import { toArray } from 'src/utils/utilities'
@@ -14,7 +16,18 @@ export const useLocalizedVariables = ({
14
16
  selectedFacets,
15
17
  sponsoredCount,
16
18
  }: Partial<ClientManyProductsQueryQueryVariables>) => {
17
- const { channel, locale } = useSession()
19
+ const { channel, locale: sessionLocale } = useSession()
20
+ const router = useRouter()
21
+
22
+ // Prefer router.locale over session.locale: Next.js i18n exposes the locale
23
+ // prefix as router.locale (always current), while session.locale can lag on
24
+ // navigation.
25
+ const locale = useMemo(() => {
26
+ if (storeConfig.localization?.enabled) {
27
+ return router.locale ?? sessionLocale
28
+ }
29
+ return sessionLocale
30
+ }, [router.locale, sessionLocale])
18
31
 
19
32
  return useMemo(() => {
20
33
  return {
@@ -72,7 +72,7 @@ describe('useSetPassword', () => {
72
72
 
73
73
  const url = String(call?.[0])
74
74
  expect(url).toContain(
75
- '/api/authenticator/pub/authentication/classic/setpassword'
75
+ '/api/authenticator/v1/pub/authentication/classic/setpassword'
76
76
  )
77
77
  expect(url).not.toContain('/api/vtexid/')
78
78
  expect(url).toContain('expireSessions=true')
@@ -94,7 +94,7 @@ describe('useSetPassword', () => {
94
94
  expect(call).toBeDefined()
95
95
 
96
96
  const url = String(call?.[0])
97
- expect(url).toContain('/api/authenticator/pub/authentication/start')
97
+ expect(url).toContain('/api/authenticator/v1/pub/authentication/start')
98
98
  expect(url).not.toContain('/api/vtexid/')
99
99
  expect(url).toContain('an=myaccount')
100
100